Orders
When a customer pays for something a provider makes, the add-on creates a provider order for it: one per provider per KahunaCart order. A sale with a Printful shirt and a Gelato poster has two. Each one has its own status, cost and parcels, and you see them on the order's Print on demand panel and on KahunaCart → Print on demand → Orders.
Before you begin
kahunacart.orders.viewto see provider orders and press Check again.kahunacart.pod.ordersto send, send again or cancel. Sending spends money, so give it only to whoever decides that.- The job worker running. Every order goes to the provider from the queue.
What costs money, and when
| Step | Costs anything? |
|---|---|
| A draft (Printful, Gelato) or an order on hold (Printify) | No. The provider makes nothing and charges nothing. |
| Deleting or cancelling a draft | No. |
| Send to … for …, or auto mode sending it | Yes. The provider charges your account for the order and its shipping. |
| Cancelling after sending, before the provider starts | Usually refunded. Printful puts the money back in your Printful Wallet. |
| Cancelling once the provider has started | Not possible. The cost stands, and the order says so. |
| Shipping quotes at checkout, connection checks, imports, refreshes | No. |
Review or auto
Every provider starts in review mode, and stays there until you change it. Orders on the provider's settings tab, or the switch on its card, picks one:
- Wait for me to send them (review). A paid order is made at the provider as a free draft (on hold at Printify) and waits for you. Nothing is printed until you press Send.
- Send them automatically (auto). The order goes to production by itself, as soon as the provider has worked out the cost.
Review is the default because sending spends your money, and the first orders through any new setup are the ones most likely to be wrong. Once you trust it, switch to auto. Review or auto is the only thing that decides when an order is sent.
How an order goes
- The order counts as paid. A card payment is paid at checkout. A bank transfer waits until you mark it paid, and only then does anything happen at the provider.
- Queued. The add-on writes the provider order and puts the work on the job queue, so a payment never waits on a printer.
- Being sent. The worker looks the provider up for an order under this order's reference first. Only when there is none does it make one. A timeout, a killed worker or a second job can never make two orders.
- Waiting for you (review mode). The draft exists at the provider, named by your order number. Once the provider has worked out the cost, the panel shows it beside what the customer paid for those items and their shipping, and the margin when both are in one currency.
- Send. Press Send to Printful for $18.40 (the provider and amount are yours). Before it goes, Printify and Gelato orders are read back from the provider and checked against the order as it stands. In auto mode this step happens by itself.
- Sent, Being made, Partly shipped, Shipped, Delivered, as the provider reports them. See Tracking.
An order the provider cannot go ahead with, or that could not be sent at all, is Needs attention, with the provider's own words on the panel and a notification on your channels.
The reference
Each provider order is made under a reference like kc3f9a12c0-1042-1-printful: this install, the KahunaCart order id, the attempt, and the provider. The first part comes from the store's own secret, so a staging copy of your store and the live store never share a reference, even on the same provider account.
The buttons
| Button | What it does | Permission |
|---|---|---|
| Send to … for … | Sends an order waiting in review. Not offered while the provider is still working out the cost. | kahunacart.pod.orders |
| Send again | For an order that needs attention, once you have fixed the cause. An order the provider never made goes through submission again (and is looked up first). One it has is rewritten from the order as it stands, then sent. | kahunacart.pod.orders |
| Check again | Reads the order back from the provider now: status, cost, its words, new parcels, deliveries. | kahunacart.orders.view |
| Cancel at … | Cancels the provider order (below). Does not cancel or refund the KahunaCart order. | kahunacart.pod.orders |
| Open in … | The order in the provider's own dashboard, for returns, reprints and anything else this add-on does not do. |
Two people pressing buttons on the same order, or a button and a background job, take turns. Nothing acts on a provider order twice at once.
Cancelling
Cancel at … on the panel, or bin/plugin kahunacart-print-on-demand orders --cancel=<id>:
- A draft is deleted. Free.
- An order the provider has not started is cancelled. Printful returns the cost to your Printful Wallet.
- An order the provider has started is not cancelled. The answer, a notice on the order and a notification say its cost stands.
Cancelling or fully refunding the KahunaCart order queues the same cancel at every provider for you.
A part refund changes nothing at the provider. The order's history says the provider order is unchanged, because a part refund does not tell the add-on which item not to make.
When an order changes
When you edit a placed order (KahunaCart's order changes), the provider order follows only if nothing has been sent:
- Printful rewrites the draft in place.
- Gelato and Printify cannot change a draft's items, so the old draft is thrown away (only after reading it back and finding it still unsent) and the new version is made as the next attempt.
- An order already sent is never touched. The order tells you the provider still has the old version, so you can sort it out in the provider's dashboard.
The Review tab and reminders
KahunaCart → Print on demand → Review is everything waiting on a person, with counts, and an alert at the top of every KahunaCart admin screen says how many:
- Needs attention, with the provider's words
- Waiting to send, with the cost
- New from provider, drafts auto-sync brought in
- Cost went up, products you sell that now cost more to make
- Product needs work, a variant no longer made or a print file missing
On KahunaCart 1.5.3 or later the queue also has its own row under Notifications → Store owner, so you hear when it first has something in it and again when it is empty, without opening the admin.
While orders have waited for you longer than Remind me after (notify.waiting_after_hours, 24 hours), you get one reminder a day on the channels you chose in Notifications. An order whose cost turns out higher than what the customer paid gets a notification of its own.
From the command line
bin/plugin kahunacart-print-on-demand orders # every provider order
bin/plugin kahunacart-print-on-demand orders --status=review # only those waiting for you
bin/plugin kahunacart-print-on-demand orders 1042 --sync # one order, read back first
bin/plugin kahunacart-print-on-demand orders --cancel=17 # cancel provider order 17
There is no command that sends an order. Sending is a person's decision in review mode, or the provider's mode in auto.