# POD Integration Plan

Prepared for Paris Phosphène on April 9, 2026.

## Executive recommendation

Use **Gelato** as the primary POD partner for launch.

Why:

- It is the strongest fit for a France-based brand that wants local or near-local EU fulfillment, automated production and shipping, and a real API for custom integration.
- Its network model is built around local production, which is strategically better for France and EU delivery times than a US-first workflow.
- It keeps the stack simpler than Printify because the production network is unified behind one API and one operational layer.
- It is a safer long-term choice than T-Pop for a custom Next.js storefront because Gelato has a clearer self-serve developer surface.

**Recommended fallback:** Printful if the team decides API maturity and operational predictability matter more than EU-local fulfillment optimization.

**Recommended pricing stance:** launch with one core tee at **EUR34**, then add a **EUR39** premium capsule only after returns, print quality, and delivery performance are validated.

## Top 3 comparison

Pricing below is a public-price snapshot from official vendor pages captured on April 9, 2026. Actual landed cost will vary by print region, print area, VAT handling, and shipping method. Confirm final account-level quotes before launch.

| Platform | Representative pricing | Shipping to France | Quality / blank options | API / automation |
| --- | --- | --- | --- | --- |
| **Gelato** | Public catalog examples show premium tees in roughly the **low-to-mid USD teens** before VAT; pricing is region-dependent and final quotes are surfaced in the merchant workflow. | Strong France/EU fit. Gelato markets local production in **32 countries**, says **90% of orders are produced locally**, and says local orders can be delivered in about **5 days**. | Strong for premium blanks and EU-friendly quality positioning; organic and premium apparel options are available. | **Strong**. REST-style developer platform plus webhooks and automated order submission. Best balance of EU fulfillment and modern API support. |
| **Printful** | Stanley/Stella **Creator 2.0 / STTU169** organic tee listed from **USD14.25**. | Good Europe coverage. Printful says economy and standard delivery in Europe typically land around **5-20 business days after fulfillment** depending on destination and route. | Very good apparel quality and one of the clearest organic blank selections, especially Stanley/Stella. | **Excellent**. Mature API, webhooks, product sync, mockups, order creation, and order status endpoints. |
| **Printify** | Price leader. Example tee pricing starts around **USD10.98** for a standard Bella+Canvas 3001, with eco options like Bella+Canvas 3001RCY around **USD16.95**. | Viable for France if you deliberately choose EU print providers. Example Polish provider **HFT71** lists delivery to France in **5-8 business days**. | Quality varies by provider. Broad catalog, but consistency depends on disciplined supplier selection and QA. | **Strong**, but more fragmented operationally because quality, stock, and delivery vary by print provider. |

## Why Gelato is the best fit

Gelato is the best strategic match for Paris Phosphène because the business is France-based and wants fulfillment that feels local, not imported. That matters for both customer perception and unit economics: shorter delivery routes reduce transit time risk and make it easier to justify a premium retail price without the brand looking overpriced.

It also fits the technical requirement cleanly. Gelato offers a real API and webhook model, so we can keep the website as the source of truth for catalog, checkout, and customer communication while the POD partner handles production and shipment automatically after each paid order.

Printful is the strongest technical fallback and probably the easiest vendor to trust operationally. The tradeoff is that it is not as tightly aligned with the France/EU-local positioning that Paris Phosphène should use as a brand advantage.

Printify is attractive on price, but it behaves more like a marketplace of print providers than a single tightly controlled fulfillment layer. That can be useful later for cost optimization, but it adds QA overhead too early.

T-Pop is strategically interesting because it is France-based and eco-oriented, but its public developer surface is not as clear as Gelato or Printful. It is a strong candidate for a future capsule line or for a secondary supplier conversation, not the safest primary integration choice today.

## Platforms evaluated but not shortlisted

- **T-Pop:** Best story for French and eco branding. Public pricing is strong and organic options are attractive, but public API documentation is less discoverable than Gelato or Printful. Use only after vendor API scope is confirmed.
- **SPOD:** Operationally fast and API-capable through Spreadconnect, but it is less compelling for a premium France-first apparel strategy.
- **Gooten:** Real API and automation exist, but public information is less transparent for EU apparel positioning, France delivery, and premium organic tee strategy.

## Integration plan for the Next.js storefront

The launch goal should be a single product family with a small variant set, not a large catalog. That keeps QA, returns, and SKU mapping manageable.

### Phase 1: vendor setup and SKU decisions

1. Open a Gelato merchant account and generate live API credentials.
2. Pick **one launch blank** only. Recommended: one premium unisex tee with 4-5 sizes and 2-3 colors.
3. Order physical samples to a France address before any public launch.
4. Lock the print area, packaging expectations, and size chart content.
5. Document a single internal SKU map: `website_sku -> gelato_product_variant_id`.

### Phase 2: app integration

1. Add server-side environment variables for `GELATO_API_KEY`, webhook secret, and any merchant or store identifiers.
2. Create a server-only client module such as `lib/pod/gelato.ts`.
3. Implement these actions first:
   - create order
   - get order status
   - cancel order when still possible
4. Store order mappings in the database:
   - local order ID
   - customer email
   - shipping address
   - platform order ID
   - fulfillment status
   - tracking number
5. Keep all POD calls server-side. Do not expose POD credentials to the browser.

### Phase 3: checkout and order flow

1. Customer completes checkout on the Paris Phosphène storefront.
2. The website records the paid order first.
3. After payment confirmation, the server creates the Gelato fulfillment order.
4. If Gelato order creation fails, mark the order as `manual_review` instead of dropping it.
5. Send the customer a branded order confirmation immediately from the storefront, not from the POD vendor.

### Phase 4: webhook and tracking

1. Add a route handler such as `app/api/webhooks/gelato/route.ts`.
2. Verify webhook signatures.
3. Persist status transitions like `accepted`, `in_production`, `shipped`, `cancelled`, and `failed`.
4. Store carrier and tracking data when shipment events arrive.
5. Surface tracking on the order status page and in transactional email.

### Phase 5: launch controls

1. Start with France shipping only, or France plus a short EU country list.
2. Disable sizes or colors that do not have clean sample results.
3. Monitor three numbers weekly:
   - fulfillment cost per order
   - delivery time to France
   - reprint / complaint rate
4. Only after 20-30 clean orders should the team expand the catalog or add a second POD vendor.

## Pricing strategy

### Recommended commercial model

Launch with one hero product:

- **Core tee:** EUR34 retail
- **Premium / capsule tee:** EUR39 retail

Avoid launching the core product at EUR29 unless Paris Phosphène deliberately uses a lower-cost blank or is willing to accept weaker margin after shipping, payment fees, and support overhead.

### Cost model assumptions

For launch planning, use these ranges:

- **Standard premium tee from a POD partner:** about **EUR9-EUR13** base cost before shipping
- **Organic or eco-positioned tee:** about **EUR12-EUR16** base cost before shipping
- **Shipping to France:** roughly **EUR4-EUR6** on a single-shirt order
- **Reserve for payment fees, support, and occasional reprint exposure:** **EUR1-EUR2** per order

That produces these practical landed-cost ranges:

| Scenario | Estimated landed cost | Suggested retail | Gross profit per shirt | Gross margin |
| --- | --- | --- | --- | --- |
| Cost-focused standard tee | **EUR14-EUR18** | **EUR29** | **EUR11-EUR15** | **38%-52%** |
| Premium everyday tee | **EUR16-EUR20** | **EUR34** | **EUR14-EUR18** | **41%-53%** |
| Premium / eco capsule | **EUR18-EUR23** | **EUR39** | **EUR16-EUR21** | **41%-54%** |

### Practical pricing decision

The cleanest launch offer is:

- Sell the main shirt at **EUR34**
- Offer free shipping only above a bundle threshold, not on a single-shirt order
- Keep **EUR39** for heavyweight, organic-forward, or made-in-France capsule drops

This protects margin while keeping the brand in a credible premium streetwear range.

## Risks and mitigation

- **API and catalog drift:** vendor product IDs, availability, or pricing can change. Mitigation: store explicit SKU mappings and nightly sync checks.
- **Provider variability:** especially relevant with Printify. Mitigation: stay single-provider per SKU and do not route dynamically at launch.
- **Returns pressure from sizing:** T-shirt returns can erase margin fast. Mitigation: sample every size block and publish a clear fit guide.
- **Unclear true landed cost before launch:** public pricing is directionally useful, not final. Mitigation: place 2-3 sample orders to France and measure actual tax, shipping, and delivery performance.

## Source notes

Official sources reviewed for this plan:

- Gelato: <https://dashboard.gelato.com/docs/> , <https://www.gelato.com/print-on-demand/france> , <https://www.gelato.com/blog/gelato-network-100-locally-produced-orders>
- Printful: <https://developers.printful.com/docs/> , <https://www.printful.com/ca/custom/brands/stanley-stella> , <https://support.printful.com/hc/en-us/articles/41396648644497-What-are-Printful-s-shipping-options>
- Printify: <https://developers.printify.com/> , <https://printify.com/france-print-on-demand/> , <https://printify.com/shipping-rates/hft71/> , <https://printify.com/app/products/mens-clothing/t-shirts/unisex-jersey-short-sleeve-tee-bella-canvas-3001>
- T-Pop: <https://www.tpop.com/print-on-demand-t-shirt/> , <https://www.tpop.com/print-on-demand-delivery/> , <https://developers.tpop.com/>
- SPOD / Spreadconnect: <https://www.spreadconnect.app/en/api-documentation/> , <https://www.spreadconnect.app/en/faq-items/how-many-countries-can-i-ship-to-with-spod/>
- Gooten: <https://www.gooten.com/api/> , <https://www.gooten.com/what-is-print-on-demand-france-how-to-start-and-where-to-sell/>

Before implementation, the next step should be to open vendor accounts and pull **account-level quotes for one exact launch SKU** so the final margin model is based on Paris Phosphène’s actual configuration rather than public catalog snapshots.
