Why this matters more than people think
Every personalized-product business eventually hits one of these: a customer engraves a slur as a 'prank gift', someone tries to print a politician's name as a joke, or a kid types 69 instead of their actual age. By the time you see it in the order, you've already invested setup time — or worse, you've already shipped.
Validation rules catch these at checkout, not production. The customer either fixes the input or doesn't complete the order. Either is better than sending out a product you'll have to refund and apologize for.
Step-by-step setup
- Install Print It My Way. Validation rules live on each text field in the personalizer. Install the app and open the product you want to validate.
- Set a hard character limit. Every text field should have a maximum character count that matches the physical engraving area — typically 20-30 for jewelry, 10-15 for rings, 50+ for signs. The field rejects input beyond the limit.
- Enable the profanity blocklist. Toggle 'Reject offensive language' on the text field. Print It My Way uses a curated multi-language blocklist; you can extend it with custom terms (e.g. competitor names, your own brand-restricted words).
- Add a format pattern if needed. For dates, phone numbers, or coordinates, set a format pattern (e.g. MM/DD/YYYY, or a regex like ^[A-Za-z\\s]+$ for letters-only). The field shows a real-time error if the input doesn't match.
- Configure the manual review queue (optional). For high-risk products (memorial, religious, gifts to minors), enable manual approval. Orders with custom text go to a review queue in admin and don't ship until you approve the text.
- Test edge cases. Try entering profanity, leetspeak ('a$$'), padded text ('a a a a'), empty input, and the exact character limit. Confirm each is handled the way you intended before going live.
Blocklists vs. allow-anything-and-moderate
Two philosophies:
- Automated blocklist — fast, runs at checkout, catches ~95% of common offensive terms. Misses creative misspellings ('phuck', 'fck', leetspeak). Best for high-volume stores where manual review isn't feasible.
- Manual review queue — every custom-text order pauses until a human approves. Catches everything but slows fulfillment. Best for memorial products, gifts to minors, or low-volume luxury where each order is high-value.
Most stores layer both — automated blocklist catches the obvious stuff, manual review for products where the cost of a mistake is high (memorial plaques, baby gifts).
Common validation patterns to copy
Name fields: Letters, spaces, apostrophes, hyphens. Regex: ^[A-Za-z\s'\-]{1,30}$
Initials: 2-3 letters only. Regex: ^[A-Za-z]{2,3}$
Phone numbers: Digits plus optional formatting. Regex: ^[\d\s()+\-]{7,20}$
Dates: Use a date picker field instead of free text — it forces a valid date and lets you set min/max ranges.
Coordinates (for star-map or city-map products): Format ^-?\d+\.\d+,\s*-?\d+\.\d+$
International characters and accents
If you sell internationally, don't validate name fields as ASCII-only. 'José', 'Müller', 'O'Brien' and 'François' are all valid and your validation should accept them. Use Unicode-aware regex (e.g. \p{L} for any letter) or use Print It My Way's built-in 'Name (international)' field which handles this automatically.
Likewise for non-Latin scripts — Cyrillic, Arabic, CJK — make sure the chosen font supports the character set you accept. There's no point validating Arabic input if your engraving font only has Latin glyphs.
Stop bad text input before it hits production
Print It My Way ships with profanity filters, format validation, length limits, and a manual review queue out of the box. Install free and protect your fulfillment queue.
Install Print It My Way — Free See the profanity validation comparison →Frequently asked questions
Does the profanity filter work in languages other than English?
Yes. The built-in blocklist covers common offensive terms in English, Spanish, French, German, Portuguese, and Italian as of 2026. You can extend it with custom terms in any language.
What if a real customer has a name on the blocklist?
Set the blocklist to 'warn' rather than 'block' for name fields, or whitelist specific terms. The customer sees a warning but can confirm and proceed if the term is legitimate.
Can I require approval only for certain products?
Yes. Manual review is configured per product, so you can require approval on memorial products while letting standard engraving orders auto-process.
How does manual review handle order timing?
The order is placed and paid for normally. It moves into a 'pending review' state in Shopify admin until approved. Customers see 'Order received — pending review' on the confirmation page; you can customize the message.
Does this work with Shopify Markets and multi-language stores?
Yes. Validation rules are per-field, not per-storefront, so they apply across all markets and language storefronts.