Skip to content

Powered by Grav CMS + Helios Theme

Settings reference

Every key the add-on reads, in user/config/plugins/kahunacart-print-on-demand.yaml, with its default. Most have a field on KahunaCart → Print on demand → Settings (the same form as Plugins → KahunaCart Print on Demand in the Grav admin), on four tabs: General, Printful, Gelato and Printify. The keys marked written by the store have no field; the add-on fills them in and you leave them alone. The demo provider's keys have no fields either.

Tokens, API keys and webhook secrets are encrypted when the form is saved, and no screen shows them again.

Where these are edited

KahunaCart → Print on demand → Settings. This is Grav's own configuration form, built from the plugin's blueprint, and the Save button in the admin's header saves it. The switches on each provider's card under Providers (on or off, review or auto, auto-sync, and Printify's Manual approval tick) write the same keys, with the same rules.

Important

Settings save where the admin's environment picker says. With the picker on Default that is the base config; with a named environment chosen it is that environment's copy.

The master switch

Key Default Field What it does
enabled true Plugin status Off, and the add-on does nothing: no provider, no rates, no jobs. Products made by a provider are refused at the cart by KahunaCart itself, because nobody would make them.

General

Key Default Field What it does
import.markup_percent 100 Markup The suggested selling price on the import sheet, when the provider's retail price is not in your store's currency: cost plus this many percent. 100 doubles the cost. Only a suggestion; nothing is imported without your prices.
shipping.provider_rates_only true Printed goods ship at the printer's rates On, and your own shipping methods are turned down for a parcel the provider makes and carries. Off, and they are offered for printed goods too. See Shipping.
artwork.max_mb 100 Largest print file The largest print file accepted, in megabytes, for an upload and for a file a links CSV points at. Checked before the file is read.
timeout 15 Provider timeout Seconds allowed for a call to a provider. Checkout's shipping quotes use KahunaCart's own carrier timeout instead.

Orders and tracking

Key Default Field What it does
tracking.poll_hours 4 Check orders every How often, in hours, every open provider order is read back from its provider.
tracking.poll_until_days 60 Stop checking after Days after sending when an order still not delivered stops being asked about.
notify.waiting_after_hours 24 Remind me after Hours an order may wait in review before you get a daily reminder.

Printful

Key Default Field What it does
printful.enabled false Use Printful Off, and Printful is not used at all, whatever is pasted.
printful.token empty Private token A store-level private token with the orders, sync_products/read and webhooks scopes. Encrypted.
printful.store_id empty Store id Only for an account-level token: the Printful store to use. Empty for a store-level token.
printful.mode review Orders review waits for you to press Send; auto sends as soon as Printful has worked out the cost.
printful.production_days 3 Production days Days added to Printful's delivery estimate at checkout for printing.
printful.auto_sync off Products made in Printful off, or draft to bring products you publish at Printful in as drafts. Register the webhook again after changing it.
printful.token_expires empty Token expires on The date Printful showed when you made the token, as YYYY-MM-DD. The daily reminder in the fortnight before needs it.
printful.webhook_secret empty written by the store The secret part of the webhook address. Encrypted.
printful.webhook_signing_secret empty written by the store The secret Printful signs deliveries with. Encrypted.

Gelato

Key Default Field What it does
gelato.enabled false Use Gelato Off, and Gelato is not used at all.
gelato.api_key empty API key From Gelato's Developer → API Keys. Encrypted.
gelato.mode review Orders review keeps each draft waiting for Send; auto sends it at once.
gelato.production_days 0 Production days Days added to Gelato's estimate, which already counts printing.
gelato.webhook_secret empty written by the store The secret part of the address you paste into Gelato's dashboard. Gelato signs nothing, so this is the whole check. Encrypted.

Printify

Key Default Field What it does
printify.enabled false Use Printify Cannot be switched on until printify.manual_approval_confirmed is true for the shop in printify.shop_id.
printify.manual_approval_confirmed false My Printify shop is set to Manual approval Your word that the shop's Order approval is Manual in Printify. See Printify.
printify.manual_approval_shop empty written by the store The shop the tick above was given for. Any other shop counts as not confirmed.
printify.token empty Personal access token With shops.read, products.read, products.write, orders.read, orders.write, webhooks.read and webhooks.write. Encrypted.
printify.shop_id empty Shop id The Printify API shop orders go to.
printify.currency USD Billing currency The currency Printify bills you in. Printify's shipping is offered only on orders in it.
printify.mode review Orders review makes each order on hold and waits for Send; auto sends it once the cost is known.
printify.production_days 5 Production days Days added to the delivery estimate for printing. Printify's providers take two to seven.
printify.auto_sync off Products made in Printify off, or draft to bring products in from Printify and answer its Publish button. Register the webhook again after changing it.
printify.token_set_at empty written by the store The day the token was pasted.
printify.token_expires empty Token expires on A year after printify.token_set_at, filled in for you.
printify.webhook_secret empty written by the store The secret part of the webhook address. Encrypted.
printify.webhook_signing_secret empty written by the store The secret the webhooks were made with. Encrypted.
printify.webhook_signed empty written by the store signed, not_signed, or waiting until the test delivery arrives.

The demo provider

No fields on the settings screen, so write these into the config file yourself, mode included. See The demo provider.

Key Default What it does
demo_provider.enabled false Registers Kahuna Print Co. Never on a store that sells for real.
demo_provider.mode auto auto sends each order as soon as it is paid, which a read-only demo needs. review waits for a person.
demo_provider.tick_seconds 60 How long one tick of the demo printer's clock is.
demo_provider.production_days 3 Days added to the delivery estimate at checkout.