Pricing setup

Shopify Per-Character Pricing — Complete Setup Guide

Per-character pricing captures value from customers who want longer engravings without penalizing customers who want short ones. Standard formula: first 10 characters free, $0.50-1.00 per character after. Here's the real setup on Shopify — Cart Transform via personalizer app, formulas by product category, UX best practices.

Last updated: August 14, 2026~9 min readBy the Print It My Way team

Why per-character pricing works

Compare three pricing approaches for a $60 engraved bracelet:

ApproachCustomer wanting 8 chars ("Sarah!")Customer wanting 25 chars ("For my dearest sister")Merchant margin capture
Free engraving unlimitedBase $60, pays $60Base $60, pays $60Weak — long-engraving customers get free labor
Flat $10 engraving feeBase $60 + $10, pays $70 — feels expensive for short textBase $60 + $10, pays $70 — bargain for long textOK — but short-text customers may abandon
Per-character (first 10 free, $1/char after)Base $60, pays $60 — under threshold, no frictionBase $60 + 15 × $1 = $75, pays $75 — proportionalBest — captures value proportionally

Per-character psychology: customers with short engravings feel like they got a deal (free upgrade). Customers with long engravings feel the fee is fair (they used more of the surface + more labor). Both segments convert.

Standard formulas by product category

Product categoryTypical surface sizeFree charsFee per extra charHard max chars
Rings (inside band)~15mm × 3mm10$1.0025
Necklaces (pendant back)~20mm × 15mm15$0.7540
Cufflinks (face)~15mm square6$1.5010 (3 letters × 3 lines)
Coffee mugs (wrap)~215mm × 90mm25$0.2580
Wine glasses~50mm × 30mm15$0.5040
Tumblers (wrap)~215mm × 200mm30$0.20150
Cutting boards (front)~300mm × 200mm40$0.15200
Doormats~700mm × 400mm60$0.10300
Custom signsVaries60$0.10-0.25500

Rule of thumb: smaller surface = fewer free chars + higher per-char fee (labor is more precise). Larger surface = more free chars + lower per-char fee (more forgiving).

Setup with Print It My Way (5 minutes)

  1. Install Print It My Way (Basic tier $7.99/mo — per-character pricing is native)
  2. Dashboard → New Personalizer
  3. Add a Text field, name it (e.g. "Engraving Text")
  4. Click the field → Pricing tab
  5. Select pattern "Per-character"
  6. Enter: Free chars 10, Per-char fee $1.00, Max chars 25
  7. Enable "Show live fee counter" toggle
  8. Attach personalizer to product
  9. Test order — the fee auto-computes at cart and shows as clean cart line

Live counter UX (critical for conversion)

Show the customer the exact fee as they type. Without live feedback, they discover the fee only at checkout — confusion + potential abandon.

Print It My Way renders below the text input:

"Chars: 15 / 25 • Fee: +$5.00 (10 chars free, 5 extra × $1.00)"

Updates on every keystroke. Customer decides in real time whether the extra chars are worth the extra cost. Higher conversion + higher AOV vs. delayed-fee display.

The Cart Transform under the hood

Cart Transform runs when the cart loads at checkout. It reads the Engraving Text line-item property and computes the fee:

const FREE_CHARS = 10;
const PER_CHAR_FEE = 1.00;

for (const line of cart.lines) {
  const text = line.attribute?.value;
  if (!text) continue;
  const extra = Math.max(0, text.length - FREE_CHARS);
  if (extra === 0) continue;
  const feeAmount = extra * PER_CHAR_FEE;
  // Add fee to line price
  addOperation({ lineUpdate: { cartLineId: line.id, priceDelta: feeAmount }});
}

Print It My Way ships this as a native function. On non-Plus stores, the equivalent runs app-side with the same customer experience.

Tiered per-character (advanced)

Some merchants use graduated tiers instead of flat per-char:

Rationale: longer text requires more precision from the engraver (labor cost rises non-linearly with length). Tiered pricing captures this. Print It My Way Pro tier supports tiered per-character; Basic tier is flat-only.

Per-character with font upgrade

Combine per-character with per-font pricing:

Combined: 15 chars in Great Vibes = 5 extra × $1 + $2 font = $7 add-on fee. Cart Transform handles both.

Space + special character handling

Question that comes up in every implementation: do spaces count as characters? Special characters (é, ñ, emoji)?

Standard convention:

Tax on per-character fees

Fees inherit the parent product's tax rate. Sales tax rules:

No separate tax configuration needed. Cart Transform fees show as tax-inclusive or tax-exclusive matching store settings.

Displaying "starting at" pricing

Product page should show the base price, not a "starting at $X" hedge:

Being explicit about the free threshold + fee structure builds trust. Hiding it until checkout = cart abandonment spike.

Reporting + analytics

Cart Transform fees are attached to the parent product line, not separate SKUs. Reports show:

Print It My Way dashboard breaks this down per personalizer field. Typical result on jewelry: 25-35% of revenue from base variant, 10-20% from engraving fees, 5-10% from font upgrades. Total fees add 15-30% to product AOV.

Common issues + fixes

IssueCauseFix
Fee counter shows wrong amountFree char threshold + per-char fee misconfiguredVerify Print It My Way field pricing settings match product surface
Fee not appearing at checkoutCart Transform inactive or wrong field nameDashboard → Cart Transform logs → verify runs
Customer complains "you charged for engraving I didn't want"Text field auto-populated by browser autofillSet field type to prevent autofill (autocomplete="off")
Emoji breaks fee calculationEmoji is multi-byte; counted as 2+ charsReject emoji at input; personalizer regex blocks non-ASCII if configured
Discount code makes fee negativePercentage discount exceeds base + feeCart Transform + Discount Function coordination; set minimum thresholds

Frequently asked questions

How do I charge per character on Shopify?

Cart Transform via personalizer app (Print It My Way, Bold, Zepto). Configure text field with free-char threshold + per-char fee. Fee auto-computes at checkout as clean cart line.

Standard per-character fee for engraving?

$0.50-$1.00 per char on small surfaces (rings, necklaces). $0.10-0.25 on large surfaces (mugs, cutting boards). Adjust to your labor cost.

Should first N characters be free?

Yes — 10 chars free is standard. Removes friction for short-name customers; captures value from long-message customers.

Do spaces count as characters?

Standard: yes. "Emma Rose" = 9 chars including the space. Some merchants exclude; make sure your display counter matches your fee calculation.

Best app for per-character pricing?

Print It My Way Basic ($7.99/mo) — native per-character pricing on all fields. Bold Product Options + Zepto also support at higher price points.

Can per-character be tiered?

Yes on Pro tier: 1-10 free, 11-20 $0.50/char, 21-30 $1.00/char, 31+ $1.50/char. Print It My Way Pro supports.

How to show the fee to customer as they type?

Enable "Show live fee counter" in Print It My Way field settings. Renders "Chars: 15 / 25 • Fee: +$5.00" below the input.

Do fees include tax?

Cart Transform fees inherit parent product's tax rate. Shopify Tax handles automatically for US, EU VAT, UK, Canada GST/HST, Australia GST.

How do emoji + special characters count?

Reject emoji (engravers can't reliably produce). Latin special chars (é, ñ) count as 1 each — verify engraver support.

Can per-character be combined with font upgrade?

Yes. Cart Transform combines both — per-char fee + flat font fee. Cart line shows breakdown.

Related setup guides

Per-character pricing — free on Shopify

Print It My Way's Free plan includes per-character pricing on 1 personalizer field. Test the feature before upgrading.

Install Print It My Way