Print-on-demand hosting

Print-on-demand hosting for stores that wait on a supplier API.

You do not hold stock. Every order has to reach a fulfilment partner, every product has more variants than a normal store, and every mockup is an image somebody generated rather than photographed.

Supplier calls off the checkout pathMockups from the edgeFree migration
Fulfilment-tunedRedis object cache14 edge regionsDaily backupsFree SSL24/7 support
Built for fulfilment

Everything a dropship-print store asks of a host.

The store's slowest moments are all somebody else's infrastructure. The tuning is about not letting that become the customer's problem.

The supplier call leaves the checkout path

Submitting an order to a print partner is queued and retried rather than done inline, so a slow supplier API delays fulfilment by seconds instead of holding the customer on a spinning checkout.

QueuedRetried on failure

Variant counts that break normal queries

A shirt in six colours, seven sizes and two prints is eighty-four variants. Product queries and indexes are tuned for catalogues where the variant table dwarfs the product table.

Indexed for variants

Generated mockups served from the edge

Mockups are images produced per design rather than photographed once, so there are thousands of them and they are all first-time views. They serve from the edge with long cache lifetimes.

Status syncs that run on time

Tracking numbers and production status arrive by webhook or are polled on a schedule. Both run on system cron so a customer is not told 'processing' three days after it shipped.

Backups that include the artwork links

Orders, designs and their supplier references in one nightly snapshot, replicated off the origin, so a restore does not orphan a print job.

Operations

Know the orders actually reached the printer.

The worst failure in print-on-demand is silent: the store took the money and the partner never received the job.

  • One-click admin login, no shared passwords
  • Supplier queue depth and failures visible
  • Plugin and core updates with per-item status
  • Restore any daily backup from the dashboard
WordPress core
Up to date
6.7
Supplier submissions
Queue drained
0 pending
Nightly backup
Replicated offsite
02:14
Tracking sync
Platform-driven
running
Performance

Eighty-four variants, one fast page.

Product pages here do more work than in a normal store, because the variant matrix and the mockup set are both larger by an order of magnitude.

Redis
object cache, on by default
14
edge regions for mockups
Queued
supplier submissions
MagicWP280 ms
Supplier API called inline at checkout3400 ms
Variant lookups uncached1500 ms

Illustrative comparison of a product page with a large variant matrix. Your numbers depend on variant count and mockup volume.

Configuration

What we change for a print-on-demand store

These differ from a standard WooCommerce store on the same plan, because the inventory is infinite, the images are generated and the fulfilment is somebody else's API.

SettingWhat we doWhy
Supplier submissionOrder handoff queued and retried in the background rather than called inlineA print partner's API is outside your control and occasionally slow, so calling it during checkout means the customer's payment confirmation waits on a third party that may be having a bad afternoon.
Variant indexingProduct and variation tables indexed for catalogues where variants outnumber products heavilyA single design across colours, sizes and placements produces dozens of variations each, so the variation table grows at a rate the default schema assumptions were never written for.
Mockup deliveryGenerated images served from the edge with long cache lifetimes and range requestsMockups are produced once per design and then never change, but there are thousands of them and almost every view is a first view, which is the opposite of a photographed catalogue.
Fulfilment status syncWebhooks excluded from caching, polling driven by system cronTracking information arrives after the customer has already started wondering, so a status update that waits for the next visitor to trigger wp-cron arrives after the support email has been sent.
Failed-submission handlingFailures surfaced as a visible queue rather than retried silentlyAn order that was paid for and never reached the printer looks identical to a successful one from the store's side, and the first person to notice is otherwise the customer who never received anything.
Plans

Simple, transparent pricing.

Every plan includes free migration, daily backups, SSL and 24/7 support.

MonthlyYearly
Starter
For personal sites, blogs, and portfolios.
$20/mo
Billed $240 yearly · save $60
  • 1 WordPress site
  • 10 GB NVMe disk
  • Free SSL
  • Daily backups
  • One-click deployment
  • Support tickets
Start free trial
Pro★ Most popular
For growing businesses and busy stores.
$80/mo
Billed $960 yearly · save $240
  • 5 WordPress sites
  • 50 GB NVMe disk
  • Free SSL
  • Daily backups
  • One-click deployment
  • Priority support tickets
Start free trial
Enterprise
For agencies and high-traffic platforms.
$250/mo
Billed $3000 yearly · save $600
  • 20 WordPress sites
  • 200 GB NVMe disk
  • Free SSL
  • Daily backups
  • One-click deployment
  • Dedicated support
Start free trial
FAQ

Questions, answered.

Should the supplier API be called during checkout?
No. It is a third party you do not control, and calling it inline means your customer's confirmation page waits on their response time. We queue the handoff and retry it in the background.
My product pages are slow with lots of variants. Why?
A design across colours, sizes and placements produces dozens of variations, and the default schema assumptions do not anticipate a variation table that large. Indexing for that shape is most of the fix.
How are mockup images handled?
They are generated once per design and never change, so they serve from the edge with long cache lifetimes. The difficulty is volume — thousands of images where almost every view is the first.
What happens if an order fails to reach the printer?
It appears in a visible queue rather than being retried silently. A paid order that never reached fulfilment otherwise looks exactly like a successful one until the customer asks where it is.
Do tracking numbers update automatically?
Yes, by webhook or scheduled poll, both driven by system cron so the update lands when it arrives rather than when your next visitor happens to trigger WordPress's scheduler.

Run a print-on-demand store that never loses an order.

Free migration, supplier calls off the checkout path, and mockups served from the edge.