Printcart Canvas Print

Description

Printcart Canvas Print adds a Customize with PC Canvas button to the
WooCommerce add-to-cart form of the products you enable. The button opens the
Printcart-hosted designer in a full-screen overlay. There the customer picks a
size, an edge style and a depth, designs the canvas, and sees an edge-wrap
preview rendered by Printcart before adding it to the cart.

The plugin is the WooCommerce side of the Printcart service. The designer, the
preview renderer, the print-quality check, the pricing and the order hand-off
all run on Printcart, so a Printcart account is required. “External services”
below lists exactly what is sent and when.

What “3D preview” means here

Printcart returns a flat preview image of the wrapped canvas, a lit and
angled mockup. It is not an interactive or rotatable 3D model.

Features

  • A “Customize with PC Canvas” button in the WooCommerce add-to-cart form, for
    classic templates and the add-to-cart form block. It is shown only on
    products that are enabled and linked to a Printcart product and side. Other
    products get no PC Canvas markup at all.
  • A full-screen overlay hosting the Printcart designer, with an origin-checked
    message bridge. The launch configuration is fetched only after the customer
    clicks.
  • Five edge styles: image wrap, mirror, blur, blurred mirror and solid colour.
  • Edge style, depth and size come from your own Printcart printing option,
    including its conditional fields, and are saved on the WooCommerce order.
  • Cart prices are calculated by Printcart on the server and held as a
    single-use reservation. A price sent by the browser is never trusted.
  • Print-quality (DPI) checking of the customer’s image for the chosen size,
    with a DPI Profiles screen to set the minimum quality and what happens below
    it.
  • Paid canvas orders are sent to Printcart in the background. You can turn
    this off on PC Canvas > Connection.
  • A PC Canvas admin menu: Dashboard, Products, Product Setup, Printing Options,
    Canvas Templates, DPI Profiles, Orders, Artwork, Connection and Diagnostics.
    Every screen works with JavaScript turned off.
  • Product Setup owns the canvas geometry and shows one readiness verdict, with
    the next action, for each product.

Requirements

  • WooCommerce, installed and active.
  • A Printcart account, with its Store SID and Secret (used by your server) and
    its Unauth Token (used to load the designer), entered on PC Canvas >
    Connection.
  • A paid Printcart plan for previews and order sync. On Printcart’s free plan
    Printcart refuses the preview render and the order sync with “Upgrade your
    account”. Print-quality checks and previews spend tokens from the store
    owner’s Printcart wallet; see “External services”.

PC Designer

PC Canvas does not need PCDesigner – Web 2 Print Solution or any other
designer plugin. If PC Designer is also active, PC Canvas reads only whether it
is switched on for a canvas product, so that it can keep PC Designer’s “Start
Design” button and editor redirect out of the way on that product and warn you.
It never changes PC Designer’s settings or data.

External services

This plugin connects your WooCommerce store to Printcart, a third-party
print-production service. It cannot work without it: the designer, preview,
print-quality check, pricing and order hand-off run on Printcart. Nothing is
sent to Printcart until you enter your Printcart credentials on PC Canvas >
Connection and link a product to Printcart.

The plugin never sends your customers’ names, email addresses, phone numbers,
billing addresses or shipping addresses to Printcart. Like any server-to-server
request, each call also carries your server’s IP address and the standard
WordPress user agent, which includes your site address and WordPress version.

1. Printcart API: https://api.printcart.com/v1

Called by your server, never by the browser. It is the only host that receives
your SID and Secret. The address can be changed with the “API base URL” field
on the Connection screen.

In wp-admin, when you act.

  • Connection test: reads your store details and plan (GET /stores/store-details, GET /account/wordpress-plan) and checks the Unauth Token (GET /products).
  • Product setup: looks up the Printcart product for a WooCommerce product by its WooCommerce product ID, reads products, sides, side geometry, 3D settings and production readiness, and reads your printing options (/printing-options/resolve, /printing-options/{id}/wordpress). No customer data.
  • When you ask for it: creates a Printcart product from the WooCommerce product name (POST /products), writes side sizes (PUT /sides/{id}) and saves the 3D profile (edge style and depth).
  • Test preview: uploads a test image and renders it, as below, at the same token cost.
  • Support export: the same read-only checks plus GET /integration/woocommerce/sync-health. The export is shown to you to copy; it is not sent anywhere.

In the background. When a product’s saved copy of its printing-option
fields is older than 15 minutes, WP-Cron reloads it
(GET /printing-options/{id}/wordpress) in its own request. No customer data.

When a customer asks for a preview (the designer asks automatically when the
customer changes an option the preview depends on):

  • POST /images: a PNG snapshot of the design (up to 10 MB) and its file name, so Printcart can host it.
  • POST /3d/edge-preview: the Printcart product and side IDs, the hosted image address, the edge style and colour, the output size, and the customer’s size and depth.
  • Metered: 1 token per render Printcart performs, from the store owner’s wallet, billed to you. A render Printcart serves from its cache is free, but a repeat of the same design is not guaranteed to be served from cache. Refused on Printcart’s free plan. Any visitor who opens the designer on an enabled product can trigger renders.

When a customer’s image is checked for print quality (on upload, on a size
change and before add to cart):

  • POST /customizer/preflight/dpi: the Printcart product and side IDs, the canvas size in pixels and inches, and each placed image’s pixel dimensions (up to 100 images). No image and no image address are sent.
  • Metered: 2 tokens per request from the store owner’s wallet, billed to you. If the wallet is empty the customer keeps the local estimate and the designer stops asking for that session.

When a customer confirms a design and adds it to the cart:

  • POST /printing-options/{id}/calculate: the quantity, canvas size and unit, and the customer’s option choices, so Printcart can price the line.

Automatic order sync, on by default. When an order that contains a designed
canvas line is paid (WooCommerce status processing or completed), the order is
sent in the background with POST /integration/woocommerce/orders, never
during checkout. Bank-transfer and cheque orders wait until you mark them
paid. A failed send is retried twice.

  • Order: order ID and number, status, currency, total, subtotal, shipping total, tax total and creation date.
  • Each canvas line: line ID, WooCommerce product and variation IDs, product name, quantity, the design file and preview addresses, and the canvas details (Printcart product, side and profile IDs, size, geometry, edge style, colour, depth, layout and panel count).
  • Not sent: customer name, email, phone, billing or shipping address, customer ID, payment details, order key and customer note.
  • Turn it off: untick “Send paid orders to Printcart automatically” on PC Canvas > Connection. Retry sync on PC Canvas > Orders still sends a line by hand.

Terms of Service: https://solution.printcart.com/tos/licenses-and-terms
Privacy Policy: https://printcart.com/privacy-policy

2. Printcart designer: https://customizer.printcart.com

When a customer clicks “Customize with PC Canvas”, their browser loads the
Printcart designer in an iframe. Its address carries your shop address, your
store’s Unauth Token, the Printcart product and side IDs, the WooCommerce
product and variation IDs, and a short description of the canvas. From then
on the designer is Printcart’s application: it loads its own files from
Printcart, and the photos the customer uploads and the design they make go to
Printcart. The address can be changed with the PC3D_APP_URL constant.

The Unauth Token is readable by any visitor to an enabled product page, by
design. It cannot change your products’ canvas geometry, but it is not a
read-only key: Printcart accepts it for some write requests, such as saving
design templates. It can appear in browser history, server logs and Referer
headers. You can rotate it from your Printcart account.

Terms of Service: https://solution.printcart.com/tos/licenses-and-terms
Privacy Policy: https://printcart.com/privacy-policy

3. Printcart file hosting

Uploaded design images and rendered previews are stored by Printcart and
served from the address Printcart returns for them. The customer’s browser and
your wp-admin load those images from there.

Terms of Service: https://solution.printcart.com/tos/licenses-and-terms
Privacy Policy: https://printcart.com/privacy-policy

API reference: https://docs.printcart.com/rest-api-reference/

Screenshots

Installation

  1. Make sure WooCommerce is installed and active.
  2. Install the plugin from Plugins > Add New, or upload the ZIP through Plugins > Add New > Upload Plugin, and activate it.
  3. Go to PC Canvas > Connection. Enter your Printcart Store SID, Secret and Unauth Token, and run the connection test.
  4. In your Printcart store, create the printing option for your canvas products: an edge style, optionally an edge depth, and a size. PC Canvas reads it from Printcart, so there is nothing to recreate in WordPress.
  5. Open PC Canvas > Products, choose a product, and follow Product Setup: link the Printcart product and side, map the printing option, set the size and wrap depth, and bind a canvas template for the price.
  6. When the product’s readiness verdict says Ready, the button appears on its product page.
  7. Review incoming designs under PC Canvas > Orders and PC Canvas > Artwork.

FAQ

What is the Printcart account for?

Printcart is the service this plugin connects your store to. It hosts the
designer your customers use, renders the edge-wrap preview, checks print
quality, calculates the price and receives the orders for production. Without
an account the plugin has nothing to connect to. Your Printcart account’s plan
and wallet are managed at Printcart, not in WordPress.

What does it cost to run?

The plugin is free. Printcart charges for its service:

  • Each preview render costs 1 token from the store owner’s Printcart wallet
    (a render Printcart serves from its cache is free). That includes previews
    your customers make and the test preview on Product Setup. Previews are
    refused on the free Printcart plan.
  • Each print-quality (DPI) check costs 2 tokens from the store owner’s wallet,
    whatever the number of images in it. The customer triggers it by uploading,
    changing the size or adding to cart.
  • Order sync is refused on the free Printcart plan.

Costs are billed to you, the merchant, never to the customer. When the wallet
is empty the customer is not blocked: they keep the local quality estimate,
and PC Canvas shows you a notice.

How do I stop orders being sent to Printcart automatically?

Untick Send paid orders to Printcart automatically on PC Canvas >
Connection
and save. You can still send any canvas line by hand with Retry
sync
on PC Canvas > Orders. Developers can also use the
pc3d_auto_order_sync_enabled filter.

Does it work alongside PCDesigner – Web 2 Print Solution?

Yes. PC Canvas does not need it. On products PC Canvas serves, PC Canvas keeps
PC Designer’s “Start Design” button, its shop-list “Start Design” link and its
after-add-to-cart editor redirect out of the way, and warns you on Product
Setup, Products and the Dashboard where PC Designer is still switched on. Turn
PC Designer off on those products to remove the warning. PC Canvas never
changes PC Designer’s settings or data, and PC Designer keeps working on every
other product.

Does this show a rotatable 3D model of the canvas?

No. Printcart returns a flat preview image of the wrapped canvas.

Are my Printcart credentials exposed to the browser?

The SID and Secret are not. They are stored and used on your server only, and
are removed from the designer’s launch address even if another plugin tries to
add them.

The Unauth Token is, on purpose: it is the key that loads the Printcart
designer, so any visitor to an enabled product page can read it. It is not a
read-only key. See “External services” for what that means.

Why does the button not appear on my product?

The button is shown only when the product is enabled for PC Canvas and linked
to a Printcart product and side. Open the product on PC Canvas > Products:
its readiness verdict names what is missing. PC Canvas > Diagnostics
covers connection problems.

Does the plugin modify WooCommerce?

No. It uses WordPress and WooCommerce hooks only and changes no WooCommerce
file.

Can the customer change the edge depth per order?

Yes, by mapping an “Edge Depth” field in your printing option. The choice is
saved on the order. Printcart currently renders the preview at the depth set in
Product Setup, not the customer’s choice.

What happens to my data when I delete the plugin?

Deleting the plugin removes its settings, cache, scheduled tasks and the
pc3d* settings it saved on your products. The PC Canvas details on your
WooCommerce order lines are kept, because they are part of your order records.

I am upgrading from 3.x. What changes?

The PC Canvas button moves from the old designer toolbar to your product page,
and the preview opens in a full-screen designer overlay. The old in-designer
button is removed with no setting to keep it. Existing orders are not changed.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Printcart Canvas Print” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

4.3.5

Security:

  • The admin screen loader validates the request origin before it reads any
    other part of the request: the permission check, then the nonce for the
    screen the request names, then the screen query. A nonce issued for one PC
    Canvas screen can no longer load another.
  • Admin actions are gated by one nonce check for both request transports,
    instead of a check chosen by transport.
  • Every PC Canvas screen checks the user’s permission before it verifies the
    nonce, so a nonce is never the only thing authorising a request.
  • The Connection screen routes a submission by the form it names, so its two
    nonce checks cannot overlap.

4.3.4

Security:

  • Admin view query values, including nested values, are sanitised immediately
    after WordPress decodes them and before any screen renders.

4.3.3

Security:

  • Admin actions now verify permission and intent before request values are
    normalised into an explicit payload. Downstream helpers no longer read raw
    request globals.
  • Values decoded from JSON are passed through WordPress core sanitizers before
    use, while encoded image URLs remain intact.
  • Test artwork uploads now use the WordPress upload handler with PNG-only MIME
    validation and remove the temporary local copy after use.

Fixed:

  • Malformed list values in admin actions are rejected safely instead of
    reaching scalar-only functions.

4.3.2

Fixed:

  • The notice shown when WooCommerce is missing appeared on every admin screen
    for every user. It now appears only for someone who can activate plugins, and
    only on the Plugins and Dashboard screens.
  • Saving Connection settings could fail with a PHP error if a field arrived as
    a list instead of a value.
  • The dimension-unit notice no longer shows a close button that did nothing.
    The “Dismiss” link beside it is unchanged and still remembers.

Security:

  • Form and URL values are sanitised where they are read, and data decoded from
    JSON is sanitised before it is used. No behaviour changes for merchants or
    shoppers.

4.3.1

Fixed:

  • The “Send paid orders to Printcart automatically” switch on Connection
    could not be turned off in 4.3.0. It now stays off when you untick it.
  • The dimension-unit notice now stays dismissed.
  • The notice shown after a Product Setup action is no longer decoded twice.

Security:

  • Each visitor is limited to 20 previews a minute (360 an hour) and 12 quality
    checks a minute (240 an hour), so the Printcart tokens they spend cannot be
    drained. Developers can change the limits with the pc3d_buyer_rate_limits
    filter.
  • Database queries are fully prepared, and form values are sanitised as they
    are read.

Added:

  • Compatibility with WooCommerce High-Performance Order Storage and the cart
    and checkout blocks.
  • The product-page button’s “Opening PC Canvas…” and “Try again” labels can be
    translated.

Changed:

  • WordPress 6.5 or later is required.
  • The External services section now lists the token cost of previews and
    quality checks, every field order sync sends, and how to turn it off.

Upgrading:

  • If you turned automatic order sync off on 4.3.0, it stayed on. After
    updating, check the switch on PC Canvas > Connection.

4.3.0

Added:

  • Paid canvas orders are sent to Printcart on their own, in the background
    and never during checkout. An order is sent once WooCommerce counts it as
    paid (processing or completed); a bank-transfer or cheque order waits until
    you mark it paid. A failed send is retried twice; after that, or at once
    when Printcart refuses the order (for example on a plan without order
    sync), the line shows “Sync failed” with the reason and the order gets a
    note. A line already sent is never sent twice.
  • A switch on Connection, “Send paid orders to Printcart automatically”. It
    is on by default and works with JavaScript off.
  • A warning on Product Setup, Products, the product box and the Dashboard
    where PCDesigner – Web 2 Print Solution is still switched on for a canvas
    product. The product stays on sale through PC Canvas.

Changed:

  • “Design Files” is now “Artwork” in the menu, titles, buttons and the
    Dashboard. Page addresses are unchanged.
  • Retry sync on Orders and Order Detail runs the same code as the automatic
    send, and a failed retry now shows Printcart’s reason.
  • PC Canvas now notices PCDesigner – Web 2 Print Solution, only to keep it out
    of the way on canvas products. It never changes PC Designer’s settings.

Fixed:

  • With PCDesigner – Web 2 Print Solution also active, canvas products set up
    before 4.0.0 could open its old designer. On every product PC Canvas serves,
    PC Designer’s “Start Design” button and its after-add-to-cart editor
    redirect are now kept out of the way; other products are unchanged.
  • Every order was marked “needs review”. The order line now carries the
    preview the plugin rendered for the canvas the buyer ordered.
  • The cart showed the canvas price as a sale. A canvas line now shows one
    plain price. The amount charged is unchanged.
  • Retry sync could not have reached Printcart. It now sends the whole order
    once.
  • The Artwork check now accepts the formats Printcart produces (SVG, PNG, PDF,
    JPG, WEBP). Uploads are still PNG only.
  • Order Detail listed optional fields as missing; they now read “Not
    applicable”.
  • Keyboard focus is now visible on Product Setup’s section links and on
    breadcrumbs.

Security:

  • Review statuses, the input hash and the product setup status posted by the
    browser at add-to-cart are ignored. A preview address from the browser is
    used only when the server has no matching render, and only if it is an
    https Printcart address.
  • The order sent to Printcart carries no customer name, email, phone or
    address.

Upgrading:

  • Automatic order sync is on after upgrading. To keep sending orders by hand,
    untick “Send paid orders to Printcart automatically” on PC Canvas >
    Connection.

4.2.0

  • Added: admin screens load and save in place, with a status line; everything
    still works with JavaScript off.
  • Added: Canvas templates hold a canvas’s size, depth, edge, material, finish,
    frame, print sheet and price, and can be applied to products.
  • Added: Product Setup in four steps after an Overview, with one next action.
  • Added: store dimension unit and roll limit on Connection; Products views with
    counts and reasons.
  • Changed: one readiness verdict everywhere; the menu is ordered by task.
  • Changed: the Dashboard says “Connected” only after a passing connection test.
  • Fixed: saving Product Setup with JavaScript off; the 3D edge template save
    redirect; a refused Price save showing a green notice; an invisible “Skip to
    section” link.
  • Security: credentials appear only as their last 4 characters, on Connection
    only.
  • Upgrading: pricing and 3D edge templates are merged into Canvas templates the
    first time a store manager opens a screen that reads them. Nothing is
    overwritten.

4.1.3

  • Fixed: first-time guest shoppers could not add a designed canvas to the
    cart; they were told the price quote had expired.

4.1.2

  • Fixed: canvas products could stop being orderable about 15 minutes after
    setup. The plugin now keeps a last-known-good copy of each product’s
    Printcart field list and refreshes it in the background with WP-Cron.

4.1.1

  • Fixed: on Product Setup > Mapping, “Save Mapping” and the “PC Canvas
    enabled” checkbox did nothing for a product whose Printcart field list had
    not been loaded.

4.1.0

  • Added: automatic print-quality (DPI) checking, and a DPI Profiles screen.
    Each check costs the store owner 2 Printcart tokens; an empty wallet never
    blocks a sale.
  • Added: Printing Options setup for a fresh store; mapping of style, material,
    finish, hanging hardware and add-ons; production sheet geometry; the
    print-roll limit; multi-panel canvases (not yet priced as a set).
  • Added: a Connection setting, “Artwork”, that refuses a blank canvas at
    add-to-cart. On by default.
  • Changed: text domain is now printcart-canvas-print.
  • Fixed: a finished design never reached the cart; every customer preview
    failed with “No artwork received”; uninstall left seven product settings
    behind.

Releases before 4.1.0 are not repeated here. 4.0.0 made PC Canvas a
standalone plugin with its own product-page button and designer overlay.