If you run a print-on-demand or made-to-order business through WooCommerce — apparel, prints, custom-printed goods — you’ll recognise a problem standard product options don’t solve well: different customer selections often need to route to different suppliers, print files, or production processes, and there’s no clean built-in way to make that happen automatically.
A customer picking “Canvas, A3” and one picking “Poster, A3” might need to go to entirely different fulfilment partners or use different source files — but from WooCommerce’s perspective, without extra setup, both are just “options selected on a product,” with nothing to tell your fulfilment process which path to take.
This guide covers how to attach fulfilment-routing data directly to product options, so the right job goes to the right place automatically.
Why print-on-demand needs structured routing data, not just pricing
Standard product options (or even variations) are built to answer “what does this cost,” not “where should this job go.” For print-on-demand specifically:
- Material and finish combinations often map to different suppliers — one partner might print canvas, another does posters, and a customer’s combined selection needs to resolve to the correct one
- Print files differ by product type and size, so the fulfilment system needs to know which source file to pull, not just which product was ordered
- Routing decisions ideally happen automatically at order time, rather than requiring someone to manually read each order and decide where it should go — that manual step is exactly what limits how many orders a small print-on-demand operation can handle
How this works in practice
Rather than relying on product titles or manual order review, each option (material, size, finish) can carry its own routing meta — for example:
Option: "Canvas" → meta: fulfilment_partner: partner_a, file_type: canvas_print
Option: "Poster" → meta: fulfilment_partner: partner_b, file_type: poster_print
When a customer selects “Canvas” at “A3”, both selections’ meta data travels with the order as structured data (this is the same underlying mechanism covered in our guide to configurator custom order meta). A script or automation hooking into WooCommerce’s order events can then read that data and route the job to partner_a automatically, with the correct file type flagged, rather than needing manual review.
Setting this up in WooCommerce
The usual approaches:
1. Manual order review. Works at very low volume, but doesn’t scale — every order needs a person to read the selections and manually forward the job to the right supplier or process.
2. Separate products per fulfilment path. Technically works, but multiplies your catalogue significantly, and doesn’t handle combinations well (material × size × finish quickly becomes an unmanageable number of separate products).
3. A configurator with per-option custom meta, where routing data is attached to the relevant options directly, and read automatically by your fulfilment automation.
This is what Woo State Configurator is built for — custom meta fields set per option are captured and attached to the order automatically, ready for a fulfilment script or automation platform to read and act on. It’s built on State.js, so the frontend selection experience itself is instant, with prices and previews updating live as material, size, and finish are chosen.
What to check before you build a print-on-demand routing setup like this
- Does each option support its own independent set of meta fields, so material and finish can each carry different routing data?
- Is that meta reliably attached to the order as structured data your automation can parse, not just a display label?
- Does pricing still get recalculated server-side regardless of the meta submitted, so routing data can’t be used to manipulate price?
- Is there a clear point in the WooCommerce order lifecycle (a hook or event) your automation can reliably listen to, to trigger routing once an order is placed?
FAQ
Does the configurator send the order to the fulfilment partner automatically? No — it attaches the routing data to the order; actually sending the job to a partner (via an API call, an automation platform like Zapier/Make, or custom code) is a separate integration listening for that order data.
Can one option affect routing while another only affects price? Yes — meta fields and price adjustments are independent per option, so a size option could purely affect price while a material option carries the routing data, or both together.
What if a combination of options (not just one) determines the correct routing? Since each selected option’s meta travels with the order, your automation logic can combine multiple options’ data (e.g. material + size together) to determine the correct routing path, rather than relying on a single option alone.
Running a print-on-demand or made-to-order business on WooCommerce? Woo State Configurator attaches the structured data your fulfilment automation needs, directly to the order.


Leave a Reply