Connect WooCommerce with the Printen.eu plugin
11 min readUpdated
With the WordPress plugin **Printen.eu Print on Demand**, your WooCommerce store sends paid orders to us automatically. We print and ship under your name, and the tracking comes back to your order. You manage everything from WordPress: connecting, linking or importing products and following the status of each order.
In this article
How do you install the plugin?
| Requirement | Why |
|---|---|
| WooCommerce, active | The plugin runs inside WooCommerce and uses its Action Scheduler to send orders in the background. |
| WordPress 6.0 or later, PHP 7.4 or later | Older versions are not supported. |
| Publicly reachable over https | Only then can we send tracking updates to your site. Without https, orders are still forwarded, but you fetch the status yourself. |
| HPOS on or off | The plugin works with WooCommerce High-Performance Order Storage and with the legacy order storage. |
Open Plugins
In WordPress, go to Plugins > Add New Plugin.
Search for the plugin
Search for Printen.eu Print on Demand.
Install and activate
Click Install Now and then Activate. Printen.eu now appears in the WooCommerce menu.
How do you connect the plugin to your account?
The plugin connects with an API key from your Printen.eu dashboard. Start with a test key: it lets you run through the whole flow without anything being charged or printed.
Create a test key
In your Printen.eu dashboard, go to API keys. Enter a Key name (for example “WooCommerce test”), tick Test key and click Create key.
Copy the key
The key starts with
prk_test_. Click Copy. You only see it once.Paste it in WordPress
In WordPress, go to WooCommerce > Printen.eu, paste the key under API key and click Connect.
Check the connection
You see Connected to Printen.eu. with your company, your Wallet balance, your Tier (your discount percentage) and Tracking updates: Active. With a test key, it also says that orders are not charged and not produced.
Place a test order
Link a product (see below) and place an order in your own store. As soon as it is Processing, the order notes show it was placed at Printen.eu, with the addition (sandbox: not charged, not produced).
Switch to live
In your dashboard, create a key without Test key (it starts with
prk_live_), paste it under Replace API key and click Connect. From now on, orders are really charged and printed.
How do you link your products?
A WooCommerce product comes to us when it is linked to one of your active Printen.eu products. That link runs through your Printen.eu SKU. There are two ways: import or link yourself.
Option 1: import
On WooCommerce > Printen.eu, click Import my Printen products. We create a draft WooCommerce product for each product, with title, description, your selling price, the SKU and mockup images (if you added them through the API).
Wait a minute
The import runs in the background. Refresh the Products screen after a minute. Products that already exist (same SKU or already linked) are skipped.
Review and publish
Open the drafts, check the text, price and shipping class, and click Publish.
Option 2: link yourself
Open an existing product in WooCommerce. On the General tab, choose the right product under Printen.eu product (you see SKU and title). Click Update.
Variations
For a variable product, you can link the parent product, or give each variation its own Printen.eu product. Leave a variation on - Same as parent product - to use the parent’s link. A variation’s own link always takes precedence.
Which settings does the plugin have?
On WooCommerce > Printen.eu you find three settings under Orders. After a change, click Save settings.
| Setting | What it does | Advice |
|---|---|---|
| Forward paid orders | Sends linked order lines to Printen.eu as soon as the order becomes Processing (paid). | Keep it on. Only switch it off temporarily if you want nothing printed for a while. |
| Complete orders | Marks the order Completed as soon as we ship it and all lines are Printen.eu products. | On if you only sell Printen.eu products. With mixed orders, you complete them yourself. |
| Debug log | Writes extra information to WooCommerce > Status > Logs. Keys and addresses are not logged. | Only switch it on while investigating a problem or when we ask you to. |
How are orders forwarded?
- Paid orders only. Sending starts as soon as an order becomes Processing. An order On hold (for example a bank transfer) is sent once it is paid.
- In the background. Sending runs through WooCommerce’s Action Scheduler. Your checkout is never slowed down.
- Linked lines only. In a mixed order we only take the lines with a Printen.eu product. You ship the rest yourself. The same SKU in several lines is added up.
- Refunded quantities are left out. If you refunded part of the order before it was sent, those quantities are left out.
- Never twice. Every order is sent to us with a fixed key. A retry therefore never creates a second order.
On the order screen in WooCommerce, the Printen.eu box on the right shows the Printen.eu order number, the State, the Production status and the Tracking.
| State in the box | Meaning |
|---|---|
| Not sent yet | The order has not been sent to us yet, for example because it is not paid. |
| Queued for sending | The order is in the queue and will reach us shortly. |
| Sending failed, retrying | A temporary error. The plugin tries again automatically. |
| Waiting for wallet funds | Your balance is too low. After a top-up, the order continues automatically. |
| Waiting for print file | The product has no design file. See the error messages below. |
| Payment failed | The card payment failed. Retry it from your dashboard. |
| Placed | Paid and on its way to production. |
| Cancelled | The order has been cancelled at Printen.eu. |
How does your customer get the tracking?
We ship
The parcel leaves with your name as the sender. See White label.
Customer note on the order
The plugin adds a customer note to the order with the carrier and tracking code, for example “Your order has been shipped with ...” and “Tracking code: ...”. WooCommerce emails customer notes to your customer by default.
Also for tracking plugins
The tracking is also stored in the format of the Advanced Shipment Tracking plugin. If you use it, the tracking appears there too.
Completion
If Complete orders is on and all lines are Printen.eu products, the plugin marks the order Completed.
Seen an error message? Here is how to fix it
The plugin retries temporary errors (for example when we are briefly unreachable) automatically: after 1, 5, 15, 60 and 180 minutes. If it still fails after that, the order gets a note and you see a notice in your WordPress dashboard. Fix the cause and click Send to Printen.eu on the order.
| Message | What to do |
|---|---|
| “That does not look like a Printen.eu reseller API key. It starts with prk_live_ or prk_test_.” | Copy the key again, completely and without spaces, and paste it once more. |
| “The API key is invalid or has been revoked.” | Create a new key under API keys and paste it under Replace API key. |
| “Attempt 1 failed (...). Trying again in 5 minutes.” | Nothing: the plugin tries again automatically. |
| “The delivery address is incomplete (missing: ...)” | Complete the missing part of the address on the order, save, and click Send to Printen.eu. |
| “Order ... is waiting for funds. It continues automatically after you top up your wallet.” | Top up under Balance & payment. The order then continues automatically. |
| “Your wallet balance is too low for this order.” | Top up, then click Send to Printen.eu on the order. |
| “Order ... is waiting for a print file.” | The product has no design. Cancel the order under Orders in your dashboard and place it again with a product that does have a design. See Tracking orders. |
| “Payment for order ... failed.” | In your dashboard, click Retry under Orders, or save a different card. |
| “There is a problem with the print file of order ...” | Check your dashboard. We will contact you about the file. |
| “Too many requests to Printen.eu.” | Nothing: the plugin tries again later. |
| “Printen.eu already had this order; no second order was created.” | Nothing: this is the protection against duplicate orders. |
| “This order has no products linked to Printen.eu.” | Link the product via Printen.eu product and click Send to Printen.eu. |
How do you disconnect?
Disconnect in WordPress
Go to WooCommerce > Printen.eu, click Disconnect and confirm. The key is removed from your site and we stop sending updates.
Revoke the key
In your dashboard, go to API keys and click Revoke next to the key. It can then no longer be used anywhere.
Can it work without the plugin?
Yes. Instead of the plugin, we can also connect your store from our side using WooCommerce REST API keys. You then install nothing in WordPress.
- We create the webhooks for new and updated orders in your store ourselves.
- We only fetch orders with the status Processing (paid), and only lines with your SKUs.
- When shipped, we add the tracking as a customer note on the order (also in the Advanced Shipment Tracking format) and mark orders with only our lines Completed.
- When disconnecting, we remove our webhooks. You revoke the REST key yourself in WordPress.
Open the REST API settings
In WordPress, go to WooCommerce > Settings > Advanced > REST API and click Add key.
Create the key
Enter a description (for example “Printen.eu”), choose your own user and set Permissions to Read/Write. Click Generate API key.
Keep the details
Note the Consumer key (starts with
ck_) and the Consumer secret (starts withcs_), together with your store’s https URL.
Why not both at the same time?
Use either the plugin or the REST key connection, never both. Otherwise every order reaches us twice.
The plugin protects you against that. If it sees that your store is also connected through REST API keys, it shows a warning (“This shop is also connected to Printen.eu through WooCommerce REST API keys...”) and stops forwarding orders itself. The box on the order screen then shows Sent through the server-side connection.
| Feature | Plugin | REST API keys |
|---|---|---|
| Install in WordPress | Yes | No |
| Import and link products in WordPress | Yes | No, matching by SKU |
| Status box and buttons on the order screen | Yes | No |
| Set up yourself from the dashboard | Yes | Yes, under Connections |
Related articles
- Creating products: from catalogue product to your own SKUChoose a product, fix the options, upload your design, pick a good SKU, work out your margin and test your product with an order.
- Tracking orders, making changes and solving problemsTrack your orders, understand every status, place an order manually, cancel in time and know what to do about payment issues, address errors or damage.
- Payments and balance: top-ups, cards, discounts and VATTop up your balance, save a card, choose your payment method, and learn how discounts, VAT, invoices and refunds work.
- The API: ordering from your own systemCreate an API key, request prices, place orders with an Idempotency-Key, manage your own products and test everything safely in the sandbox.
Still stuck?
We are happy to help, in person on working days and usually the same day.