The blank matters more than the design
A 30% higher-quality blank turns a $18 t-shirt into a $28 one at the same design cost. Before configuring options, pick your blank(s) — this drives your variant structure downstream.
| Blank | Weight | Fit | POD wholesale | Best for |
|---|---|---|---|---|
| Bella + Canvas 3001 | 4.2 oz (light) | Retail fit, unisex | $5-9 | Fashion-forward brands; premium positioning |
| Gildan 5000 | 5.3 oz (mid) | Classic loose fit | $3-5 | Bulk / promotional; value-focused |
| Next Level 3600 | 4.3 oz (light) | Slim modern fit | $5-8 | Streetwear; younger demo |
| Champion T425 | 5.2 oz (mid) | Classic athletic | $8-12 | Athleisure; sports branding |
| American Apparel 2001 | 4.3 oz (light) | Slim USA-made | $9-13 | Premium USA-made positioning |
Recommendation for most new stores: Bella + Canvas 3001 as your default. Higher perceived value than Gildan, universally stocked by Printful/Printify/CustomCat, and the customer expectations match a $22-28 retail price point (vs $15-18 for Gildan).
Variant structure (uses all 3 option slots)
The optimal t-shirt catalog uses all three of Shopify's option slots:
| Option | Values | Notes |
|---|---|---|
| Size | XS, S, M, L, XL, 2XL, 3XL | 7 values covers 95% of buyers. Add 4XL if your niche skews plus-size. |
| Color | 8-15 values (White, Black, Heather Gray, Navy, Red, etc.) | Start with 5-6 top sellers; add colors after 90 days of order data |
| Fit or Style | Regular / Slim / Athletic, or Crew / V-neck | Only include if you actually offer both — don't manufacture optionality |
Total variants: 7 × 12 × 3 = 252. Well under Shopify's 2,048-per-product cap since October 2025.
Sizing chart — non-negotiable
Half of t-shirt returns are sizing complaints. Ship a sizing chart on every product page:
- Store size chart as a variant metafield or product-level metafield
- Render in product template as a table + link ("View sizing chart" opens modal)
- Include: chest width (in), body length (in), sleeve length (in) per size
- Add "Fits true to size" or "Runs small — order up a size" note if applicable per blank
Bella + Canvas 3001 size chart (chest width × body length):
| Size | Chest (in) | Body length (in) |
|---|---|---|
| XS | 16½ | 27 |
| S | 18 | 28 |
| M | 20 | 29 |
| L | 22 | 30 |
| XL | 24 | 31 |
| 2XL | 26 | 32 |
| 3XL | 28 | 33 |
DTG vs screen print — which print method as option?
Two dominant print methods for POD t-shirts. Both can coexist on your store as separate products (not the same product with a method variant):
| Method | Cost per unit | Setup fee | Color count | Best for |
|---|---|---|---|---|
| DTG (Direct-to-Garment) | $6-12 | $0 | Unlimited (full-color) | Personalized (per-order), photo designs, small runs |
| Screen Print | $2-6 | $30-100 per design | 1-6 colors typical | Bulk (50+ units same design), simple graphics |
For personalization (customer's name, photo, custom design per shirt), DTG is the only viable method. No setup fee per design; each shirt printed on demand. This is what Printful, Printify, CustomCat all default to.
Personalization fields (line-item properties)
Layer these on top of variants via a personalizer app:
- Custom text (name, message) — 20-40 char limit typical for chest print
- Number (jersey number, year) — validated numeric input, 1-99 typical
- Photo / graphic upload — DPI-validated, aspect-ratio locked to your print area
- Print location (Front / Back / Sleeve / Both) — as option or personalizer field with Cart Transform fee for multi-location
- Font selection (3-5 fonts) — Athletic (Anton, Impact), Modern (Inter, Poppins), Playful (Fredoka, Chewy)
Print-area specs by POD partner
Front chest area on standard adult tee (all values approximate — verify with your specific partner):
| POD partner | Front print area | Resolution target | File format |
|---|---|---|---|
| Printful | 12 × 16 in | 3600 × 4800 px (300 DPI) | PNG (RGB, transparent) |
| Printify | 12 × 16 in (varies by provider) | 3600 × 4800 px (300 DPI) | PNG (RGB) |
| CustomCat | 13 × 16 in | 3900 × 4800 px (300 DPI) | PNG (RGB) |
| Gelato | 12 × 15.7 in | 3600 × 4710 px (300 DPI) | PNG or PDF |
| Teelaunch | 12 × 14 in | 3600 × 4200 px (300 DPI) | PNG (RGB) |
Pricing structure
| Component | Merchant cost | Retail typical |
|---|---|---|
| Bella + Canvas 3001 (blank + DTG print) | $8-11 | — |
| Shipping (US, standard) | $4-6 | — |
| Base retail | — | $22-28 |
| Personalization (name print) | — | Included or +$3 |
| Multi-location print (front + back) | — | +$5-8 |
| Rush production (24hr) | — | +$10-15 |
| Gift wrap | — | +$5 (30% take rate on gift orders) |
15-20 minute end-to-end setup
- Install Print It My Way from Shopify App Store
- Enable app embed in your theme
- Products → New product → Import from Printful/Printify catalog OR create manually with Size + Color + Fit options
- Add sizing chart as product metafield; render in template
- Dashboard → New Personalizer → drag in fields (Text + Photo Upload + optionally Print Location)
- Attach personalizer to your t-shirt product
- Dashboard → Integrations → Connect POD partner (OAuth)
- Map each variant (Small White Regular) to POD catalog SKU
- Test order: personalize, checkout at $0.01, verify POD dashboard receives correct print file
- Sample print first 5 orders per new blank to catch quality issues early
Common issues + fixes
| Issue | Cause | Fix |
|---|---|---|
| Colors print washed out (DTG on dark shirts) | DTG requires white underbase on darks | Enable white underbase in POD partner settings; slight cost bump but essential for dark shirts |
| Design cropped at print area edge | Customer upload exceeds print area | Enforce aspect-ratio-locked crop matching partner's print area |
| Print off-center after wash | Fabric shrinks 3-5% on first wash | Not fixable at print stage; disclose in product description |
| Sizing complaints | Missing or wrong sizing chart | Add chart with real measurements + note "Fits true to size" or otherwise |
| Print cracks after 10+ washes | DTG on wrong fabric (100% polyester) | Use 100% cotton or 50/50 blend; polyester needs sublimation, not DTG |
| Multi-location fee not applied | Cart Transform not configured | Verify personalizer app's Cart Transform rule active + priced correctly |
What sells best in custom t-shirts
Based on aggregate POD platform data (2025-2026):
- Family / matching tees — 24% of custom apparel orders (family reunion, matching couple)
- Fandom / hobby designs — 18% (band merch, gaming, sports fan)
- Custom name / birthday — 15% (kids birthday parties, adult milestone)
- Corporate / event merch — 14% (bulk company events, conferences)
- Meme / joke tees — 12% (viral moments)
- Photo tees (pet, family) — 10%
Frequently asked questions
Best Shopify options for custom t-shirts?
Size (XS-3XL) + Color (8-15 values) + Fit (Regular/Slim/Athletic) as variants. Text, photo, print location as personalizer line-item properties.
DTG vs screen print — which option?
DTG for personalized (per-order, unique per shirt). Screen print for bulk (50+ same design). They're different products, not the same product with a method variant.
Best blank for POD t-shirts?
Bella + Canvas 3001 as default (retail-quality, universally stocked). Gildan 5000 for bulk/value. Next Level 3600 for slim modern fit. Champion T425 for athletic.
What DPI for t-shirt print files?
300 DPI at print size (3600 × 4800 px for standard front print area). Same for all major POD partners.
Best POD partner for personalized t-shirts?
Printful (Bella+Canvas quality + reliability). Printify (widest blank variety + cost). CustomCat (competitive DTG pricing). Gelato (best global shipping).
How to handle multi-location print?
Cart Transform +$5-8 fee when customer selects front + back. Personalizer app generates two print files (one per location) attached to the same line item.
Should I offer plus sizes (4XL+)?
Depends on niche. Body-positive brands + family reunion tees see 15-25% orders in 4XL+. General streetwear caps at 2-3XL. Add 4XL after 90 days of size data.
Sizing chart placement on product page?
Above the size picker, with "View sizing chart" link opening a modal. Include chest width + body length. Add fit note ("Fits true to size" or "Runs small").
Return policy for personalized t-shirts?
Final sale except defects. Sizing exchanges allowed for standard (non-personalized) blanks; not for personalized items with printed text/photo.
Standard retail markup for POD t-shirts?
2.5-3x on Bella+Canvas ($8-11 cost → $22-28 retail). 3-4x on Gildan ($4-7 cost → $15-20 retail). Higher for personalized ($3-5 add-on).
Related setup guides
- Best Print-on-Demand for T-Shirts — Provider comparison
- How to Build a T-Shirt Designer in Shopify Without Code
- Adding Image Upload Fields to Shopify Products
- Best Shopify Apparel Personalizer App
Ship your first custom t-shirt in 20 minutes
Print It My Way Pro ($13.99/mo) includes text + photo personalization + POD partner mapping for Printful, Printify, CustomCat, and Gelato. Free plan available for testing.
Install Print It My Way