How POD differs from stocked-inventory stores
| Attribute | Stocked inventory | Print-on-Demand |
|---|---|---|
| Inventory | Physical count per SKU | Virtual (infinite until POD partner shortage) |
| Fulfillment | Merchant ships from warehouse | POD partner ships direct |
| Fulfillment SLA | Same-day to 2 days typical | 3-7 days production + shipping |
| Options | Limited by physical space + SKU count | Unlimited combinations via personalization |
| Print file requirement | N/A | Print-ready file per order (300 DPI PNG typical) |
| Return handling | Merchant receives return | POD partner + merchant coordination; personalized = final sale |
The core insight: POD stores treat variants as "template placeholders" that customer personalizes, not as pre-produced SKUs. Structure options around this.
Variant + personalization structure
POD variant matrix stays lean. Base variants define the physical product (blank apparel + color + size); personalization layers on top:
Standard POD variant structure
- Size as variant (POD partner's catalog sizes)
- Color as variant (POD partner's blank colors)
- Style/Fit as variant (only if POD partner offers)
- Set all variants to
continue selling when out of stock(POD has virtual inventory)
Personalization layer (line-item properties)
- Custom text (name, quote, dates)
- Photo upload with DPI validation + HEIC support
- Design template selection (customer picks from N pre-designed templates)
- Print location (front / back / both) — Cart Transform fee for multi-location
- Font, color, positioning options
Setup: 1 product = 1 base + unlimited personalizations
Example: "Custom Text T-Shirt" as single Shopify product. Base variants: Size (XS-XXXL) × Color (8 values) = 56 variants. Personalization: text + font + placement via personalizer app. Each of 56 variants can be personalized infinitely different ways.
This is a huge advantage over stocked stores. One SKU produces thousands of unique-looking orders. Google indexes the base URL; product page ranks on generic query ("custom t-shirt online") + personalization drives conversion at page level.
Multi-partner routing
Different products fulfill best from different POD partners. Route accordingly:
| Product | Best POD partner | Why |
|---|---|---|
| T-shirts (Bella + Canvas) | Printful | Premium blank + US/EU warehouses + reliability |
| Mugs | Printify | Widest mug catalog via provider network + cost |
| Canvas / wall art | Gelato | Best global shipping via 130+ hubs |
| Hoodies (mid-market) | Printify | Cost-competitive on Gildan blanks |
| Phone cases | Printify or Printful | Wide phone model catalog |
| Embroidered items | Printful or CustomInk | Higher quality embroidery specialization |
| Wall decor / posters | Gooten or Gelato | Print quality on paper products |
Print It My Way + Kickflip support per-product partner mapping. Set once per product in the app dashboard; orders auto-route.
Virtual inventory management
POD partners have virtual inventory — infinite supply until they run out of a specific blank. Set variant policy:
- Variant edit → Inventory →
Continue selling when out of stock= YES - Do NOT track inventory quantity (POD partner handles it)
Exception: when POD partner marks a blank as discontinued or out-of-stock long-term. Then either:
- Substitute with equivalent blank (Bella 3001 discontinued → switch to Bella 3005)
- Hide variant (Bella 3001 White XL out until further notice)
Print It My Way + POD integration syncs partner stock status to your Shopify variants; hides unavailable variants automatically.
Print file automation flow
The magic of POD: customer places order → print file generates + ships to POD partner → prints → ships to customer. Zero merchant intervention.
- Customer configures product (variant + personalization)
- Adds to cart → checkout → payment succeeds
- Personalizer app generates print file:
- Renders customer's text + photo onto POD partner's print template
- Outputs at partner's spec (typically PNG 300 DPI sRGB at exact print area dimensions)
- Uploads to app cloud storage
- Attaches URL as line-item property on order
- Shopify order syncs to POD partner via app integration
- POD partner reads print file URL from line-item property
- POD partner prints + ships to customer
- Tracking syncs back to Shopify → customer notified
Print It My Way + Printful/Printify/Gelato work this way natively. 0 merchant clicks per order.
Print file specs by POD partner
| POD partner | File format | DPI | Color profile | Bleed |
|---|---|---|---|---|
| Printful | PNG (transparent) | 300 DPI at print size | sRGB | None required |
| Printify | PNG | 300 DPI | sRGB (some providers CMYK — check) | Varies by provider |
| Gelato | PNG or PDF | 300 DPI | sRGB | 3mm bleed for canvas + wall art |
| Gooten | PNG | 300 DPI | sRGB | 0.125" bleed for wall art |
| CustomCat | PNG | 300 DPI | sRGB | None required |
Personalizer auto-generates at correct spec per POD partner. Multi-partner store's personalizer must know which product routes to which partner + generate accordingly.
Pricing structure for POD
Standard markup on POD:
| Product type | POD cost typical | Retail markup | Gross margin |
|---|---|---|---|
| T-shirt (Bella + Canvas) | $8-11 | 2.5-3× → $22-32 | 60-70% |
| Hoodie (Gildan) | $14-18 | 2× → $30-40 | 50-60% |
| Mug (11oz) | $4-7 | 3-4× → $18-25 | 70-80% |
| Canvas 16×20 | $18-28 | 2.5-3× → $60-90 | 65-75% |
| Phone case | $8-14 | 2× → $22-30 | 50-60% |
| Sticker (die-cut) | $1-2 | 3-4× → $4-8 | 70-80% |
Personalization surcharges add 15-30% to base AOV. Rush production +20% for time-sensitive orders. Gift wrap +$3-5 with 30-40% take rate on gift-oriented products.
Shipping strategy for POD
POD partners ship direct to customer. Merchant shipping cost is what customer pays; POD partner charges shipping to merchant.
Common patterns:
- Pass-through: Merchant charges customer exact POD shipping cost. Simple.
- Flat rate: Merchant charges flat $5-8 US shipping, absorbs difference on heavy items. Predictable for customer.
- Free shipping over $X: Merchant absorbs shipping on orders over threshold. Boosts AOV.
Configure via Shopify Shipping rules or Cart Transform (dynamic based on cart contents).
15-minute end-to-end setup
- Install Print It My Way (Basic $7.99/mo — Pro $13.99/mo for photo upload)
- Install POD partner app (Printful, Printify, or Gelato)
- Connect POD partner account via OAuth
- Import or create product with variants matched to POD partner's catalog
- Set all variants to "continue selling when out of stock"
- Personalizer → New Personalizer → drag in fields (text, photo, print location, etc.)
- Attach personalizer to product
- Dashboard → Integrations → verify POD partner + variant mapping
- Test order at $0.01 — verify Shopify order → POD partner receives with print file URL → tracking syncs back
- Repeat product creation for your catalog (bulk import via CSV for 100+ products)
Fyul context (Printful + Printify merger)
Printful + Printify merged under Fyul parent brand in November 2024. Both apps remain separately branded on Shopify App Store; underlying operations consolidating gradually. Your integration + workflow don't change. Continue treating them as independent POD partners for now.
Common issues + fixes
| Issue | Cause | Fix |
|---|---|---|
| Order stuck in Shopify, not sent to POD | POD partner integration lost auth | Reconnect POD app; check API token expiry |
| POD partner receives order without print file | Personalizer app not generating or attaching URL | Personalizer dashboard → recent orders → check print file generation logs |
| Print quality issue after fulfillment | DPI too low or wrong color profile | Enable DPI validation at upload; verify personalizer outputs sRGB not CMYK |
| Variant sold out at POD but still selling | Stock sync delay | POD app should sync hourly; check integration status |
| Wrong POD partner routed for product | Product-partner mapping wrong | Personalizer dashboard → product mapping → verify + update |
| Return request for personalized product | Customer buyer's remorse | Final sale policy on personalized; final sale communicated at add-to-cart |
Frequently asked questions
Best Shopify options structure for POD?
Size + Color as variants (from POD catalog). Personalization (text, photo) as line-item properties via personalizer app. Set variants to "continue selling out of stock."
Do POD variants need inventory tracking?
No. POD has virtual inventory. Set variants to "continue selling when out of stock" and don't track quantity.
Multi-partner routing on Shopify?
Print It My Way + Kickflip support per-product partner mapping. Route mugs to Printify, apparel to Printful, canvas to Gelato.
Best personalizer app for POD?
Print It My Way (Basic $7.99, Pro $13.99), Customily (POD-focused workflow), Teeinblue (~$7.99 entry). All integrate with major POD partners.
Print file automation flow?
Personalizer generates PNG at 300 DPI on order → attaches as line-item property → POD partner reads via Shopify Order API → prints → ships. Zero merchant clicks.
Pricing markup for POD products?
2-4× on POD cost typical. T-shirts 2.5-3×, mugs 3-4×, canvas 2.5-3×, stickers 3-4×.
How to handle POD variant sold out?
POD partner marks blank discontinued or short — sync to Shopify via app; hide variant or substitute with equivalent blank.
Fyul (Printful + Printify) impact?
Both remain separate on Shopify App Store post-merger. Integration + workflow unchanged. Continue treating as independent POD partners.
Return policy for POD personalized products?
Final sale except defects (Printful, Printify insure shipping). Communicate at add-to-cart to prevent chargeback risk.
Best shipping strategy for POD?
Flat rate ($5-8 US) or pass-through actual POD shipping cost. Free shipping over threshold ($75+) boosts AOV.
Related setup guides
- Integrating Shopify with POD Services
- Shopify Options + Printful Integration
- Automating Print-Ready Files
- Best Shopify Print-on-Demand Apps
POD personalization on Shopify — free to start
Print It My Way + your favorite POD app = fully automated print-on-demand from customer upload to POD partner. Free plan available.
Install Print It My Way