Skip to content

Powered by Grav CMS + Helios Theme

Print on demand providers (add-on)

The providers a store can connect, their connection check and card switches, webhooks, and the shipping methods they add.

Provided by the KahunaCart Print on Demand plugin. Everything here takes kahunacart.pod.manage. No token or secret is ever returned: a read says whether one has been pasted, and the one route that answers a whole webhook address has no MCP tool. The card switch never writes a token, and refuses to switch Printify on until manual_approval_confirmed is true for the shop picked now. See Getting started.

List the print-on-demand providers

GET /api/v1/kahunacart/pod/providers Permission kahunacart.pod.manage

Every print-on-demand provider this store can use (Printful, Printify, Gelato, and the demo printer when it is on) with whether it is switched on, whether a key is pasted, whether orders go out for review first, and the capability matrix of what the driver can do.

Check a provider connection

POST /api/v1/kahunacart/pod/providers/{code}/check Permission kahunacart.pod.manage

Make a real call to the provider with the pasted token and report whether it works: which store it reached, which scopes the token has, and which of the ones the add-on needs are missing. A token the provider refuses is reported as expired or revoked.

Parameters

Name Type Description
code required string The provider's code, such as `printful`.

Register a provider webhook

POST /api/v1/kahunacart/pod/providers/{code}/webhook Permission kahunacart.pod.manage

Register this store's webhook address with the provider, so it says when an order is costed, sent, shipped, delivered, cancelled or put on hold, and when a blank goes out of stock. The provider's signing secret is stored encrypted. Replaces any webhook the token had. reset: true makes a new address too, retiring the old one. Refused when the store's address is not public https.

Parameters

Name Type Description
code required string The provider's code, such as `printful`.
reset optional boolean Make a new address as well. Default false.

Change a provider's switches

PATCH /api/v1/kahunacart/pod/providers/{code} Permission kahunacart.pod.manage

Change the switches on a provider's card: switch it on or off, choose whether paid orders wait for review or are sent automatically, and whether products made at the provider come in by themselves as drafts. Printify cannot be switched on until manual_approval_confirmed is true, the store owner's word that the Printify shop is set to Manual order approval. Never writes a token.

Parameters

Name Type Description
code required string The provider's code, such as `printful`.
enabled optional boolean Switch the provider on or off.
mode optional string review waits for Send on every order; auto sends once the cost is known.
One of: review, auto
auto_sync optional string draft brings products published at the provider in as drafts. Printful and Printify only.
One of: off, draft
manual_approval_confirmed optional boolean Printify only. The owner's word that the shop is set to Manual order approval.

Add a provider's shipping methods

POST /api/v1/kahunacart/pod/providers/{code}/shipping-methods Permission kahunacart.pod.manage

Add the provider's shipping methods to shipping zones. The provider is first asked which services it offers the store's own products in each zone's first country (Printful may offer Standard and a carbon-offset Standard to the US and Standard and Express to Germany), then one method is added per service offered there, bound to the provider so checkout prices it from the provider's live rates. Never edits a method that exists; a zone that already has a method for a service is skipped and listed. Answers what it created and what it skipped, and says when live carrier rates are switched off in the shipping settings.

Parameters

Name Type Description
code required string The provider's code, such as `printful`.
zone_ids required array of integer The shipping zones to add the methods to, by id.
services optional array of string Only these services, by the provider's code, such as `STANDARD`. Every service offered when left out.

Show a provider's whole webhook address

POST /api/v1/kahunacart/pod/providers/{code}/webhook/address Permission kahunacart.pod.manage

The whole webhook address with its secret, for a provider whose webhook is added by hand (Gelato): the card's Show address button. A POST so nothing caches it, and 409 when the provider is not connected. No tool: the address is a credential, and an agent never needs it.