Skip to main content
Print products from 1 piece

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?

RequirementWhy
WooCommerce, activeThe plugin runs inside WooCommerce and uses its Action Scheduler to send orders in the background.
WordPress 6.0 or later, PHP 7.4 or laterOlder versions are not supported.
Publicly reachable over httpsOnly then can we send tracking updates to your site. Without https, orders are still forwarded, but you fetch the status yourself.
HPOS on or offThe plugin works with WooCommerce High-Performance Order Storage and with the legacy order storage.
  1. Open Plugins

    In WordPress, go to Plugins > Add New Plugin.

  2. Search for the plugin

    Search for Printen.eu Print on Demand.

  3. 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.

  1. 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.

  2. Copy the key

    The key starts with prk_test_. Click Copy. You only see it once.

  3. Paste it in WordPress

    In WordPress, go to WooCommerce > Printen.eu, paste the key under API key and click Connect.

  4. 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.

  5. 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).

  6. 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.

The WooCommerce > Printen.eu settings page after connecting.

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.

  1. 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).

  2. 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.

  3. Review and publish

    Open the drafts, check the text, price and shipping class, and click Publish.

  4. 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.

  5. 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.

SettingWhat it doesAdvice
Forward paid ordersSends 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 ordersMarks 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 logWrites 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?

From payment in WooCommerce to tracking in your order.
  • 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.

The Printen.eu box on the order screen.
State in the boxMeaning
Not sent yetThe order has not been sent to us yet, for example because it is not paid.
Queued for sendingThe order is in the queue and will reach us shortly.
Sending failed, retryingA temporary error. The plugin tries again automatically.
Waiting for wallet fundsYour balance is too low. After a top-up, the order continues automatically.
Waiting for print fileThe product has no design file. See the error messages below.
Payment failedThe card payment failed. Retry it from your dashboard.
PlacedPaid and on its way to production.
CancelledThe order has been cancelled at Printen.eu.

How does your customer get the tracking?

  1. We ship

    The parcel leaves with your name as the sender. See White label.

  2. 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.

  3. 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.

  4. 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.

MessageWhat 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?

  1. Disconnect in WordPress

    Go to WooCommerce > Printen.eu, click Disconnect and confirm. The key is removed from your site and we stop sending updates.

  2. 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.
  1. Open the REST API settings

    In WordPress, go to WooCommerce > Settings > Advanced > REST API and click Add key.

  2. Create the key

    Enter a description (for example “Printen.eu”), choose your own user and set Permissions to Read/Write. Click Generate API key.

  3. Keep the details

    Note the Consumer key (starts with ck_) and the Consumer secret (starts with cs_), 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.

FeaturePluginREST API keys
Install in WordPressYesNo
Import and link products in WordPressYesNo, matching by SKU
Status box and buttons on the order screenYesNo
Set up yourself from the dashboardYesYes, under Connections

Still stuck?

We are happy to help, in person on working days and usually the same day.

All articles