Automate with EfeBook a Call

Workflow Automation · Print-on-demand

Automating Personalized Orders Into Print-Ready Work

I built a multichannel workflow that centralizes eligible orders, prepares personalized artwork, and organizes production files for printing.

  • Shopify
  • Amazon SP-API
  • Billbee
  • Dropbox
  • PostgreSQL
  • Python

Overview

A controlled path from order line to production output

I implemented this workflow automation system for a European print-on-demand Shopify retailer. The application brings eligible line items from Shopify, Amazon, and Billbee into one operational view, applies SKU-specific artwork rules, and creates organized UV, laser, message, and reference outputs.

The result is a controlled order-to-file workflow with production status tracking and a human reprint path.

The challenge

Personalized orders need production context

Personalized print orders carry more production information than a standard product order. The workflow has to identify which paid orders are ready, retain the correct item and customization details, apply the production rules for each SKU, and route the resulting files to the right print process.

Relevant data could come from Shopify, Amazon, and Billbee. UV and laser items required different outputs, while some products needed templates, defined text areas, font choices, or color inversion. Production staff also needed to distinguish new work from printed work and deliberately return an item for reprinting when necessary.

The solution

One operational view and an organized file handoff

I built a browser-based operations application backed by a central PostgreSQL data store. It synchronizes eligible order lines, preserves their production and personalization details, and presents them in a filterable dashboard.

SKU-level settings control how personalized artwork is prepared. Depending on the order source and production type, the application can retrieve supplied artwork, render customization into a configured template, invert an image where required, assemble production batches, and create supporting message or reference sheets.

Finished files are uploaded to separate Dropbox locations for the appropriate downstream process. The system records which items were successfully processed, while staff retain manual controls for synchronization, printing, removal, SKU configuration, and reprinting.

How it works

From eligible order to organized output

  1. 01

    Collect eligible work

    A scheduled or staff-triggered job starts synchronization. Shopify contributes paid, open, unfulfilled orders with supported production tags; Amazon and Billbee provide additional matching order and customization data.

  2. 02

    Normalize production records

    The application stores line-item identity, order reference, source, SKU, production type, status, and available customization details in PostgreSQL.

  3. 03

    Apply SKU rules

    Configured templates, text areas, fonts, marketplace handling, and optional image inversion determine how each eligible item is prepared.

  4. 04

    Prepare artwork

    The workflow downloads customer-supplied artwork where available or renders personalized artwork from structured customization data.

  5. 05

    Create and route outputs

    It produces production-specific UV or laser files, including grouped laser formats, plus message and order-reference sheets where relevant, then uploads them to organized Dropbox folders.

  6. 06

    Keep a human in control

    Staff can review filtered queues, run individual sync or print actions, remove an unwanted item, and return a printed item to the queue for reprinting.

What I delivered

Dashboard, integrations, rules, and file generation

  • A centralized operations dashboard with pagination and filters for store, production type, and status.
  • Shopify, Amazon Selling Partner API, Billbee, and Dropbox integrations.
  • A queued synchronization-and-print job that records step-level progress and runs its stages in a defined order.
  • PostgreSQL records for line items, SKU production settings, and workflow job state.
  • SKU-based personalization using configurable templates, text areas, fonts, marketplace rules, and image inversion.
  • File generation for UV, laser, compact laser batches, message artwork, and production reference sheets.
  • Organized cloud-storage handoff for temporary and final production assets.
  • Manual removal and reprint controls for operational exceptions.
  • Automated tests covering the core integrations, transformations, dashboard behavior, and workflow failures.

Reliability and human oversight

Invalid states are surfaced, not silently printed

The automation checks order eligibility, skips items without recognized production rules, and uses database upserts so repeated syncs update existing line items. External requests use HTTP error checks, image downloads use a timeout, and required integration configuration is checked before work starts. Dropbox token refresh is supported, while unavailable credentials or failed uploads return explicit errors.

The combined job stores queued, running, completed, and failed states, including the current step. If one integration step raises an error, later steps are not run. Printing tracks successfully handled item IDs before status updates.

Staff can start each source sync independently, choose a print format, manage SKU rules, remove a line item, and put a printed item back into the queue. Shopify’s installation callback also uses HMAC verification.

Results and operational impact

Delivered operational capabilities

Three order sources connected

Shopify, Amazon, and Billbee feed a shared production workflow.

One operational record

Order source, SKU, production type, customization details, and production status are centralized in PostgreSQL and presented through a filterable dashboard.

Multiple production paths supported

The system handles separate UV and laser paths, two laser batch layouts, customer-message sheets, and order-reference outputs.

Personalization rules centralized by SKU

Templates, text regions, fonts, inversion, and marketplace-specific settings can be maintained in the application.

Defined automation sequence

A queued job runs synchronization across the three sources before file preparation and records the outcome of each stage.

Explicit human handoffs

Staff decide when to run individual actions and can remove work or queue a reprint.

Failure containment

The combined workflow records the failed stage and stops before later stages run.

Technology choices

A compact service for connected production work

  • Python and Flask provide the routes, integration logic, operational interface, and image-processing workflow.
  • PostgreSQL gives line items, SKU rules, statuses, and job progress a consistent source of record.
  • Shopify Admin GraphQL API, Amazon Selling Partner API, and Billbee API connect the commerce and order information needed for multichannel production preparation.
  • Pillow and resvg support raster processing and consistent conversion of personalized SVG designs into production images.
  • Dropbox API provides the downstream file handoff, with separate locations for different production needs.
  • Vercel configuration packages the Python application and Node rendering endpoint and defines a daily automation schedule.

Discuss your production workflow

Turn connected order data into organized work

If your team moves order data between systems and manually prepares downstream production work, let’s discuss a workflow grounded in your actual process.

Book an AI Automation Audit