=== Joyvo Product Designer ===
Contributors: joyvo
Tags: woocommerce, product designer, customizer, print on demand, personalization
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.14.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Let customers design a product on your own WooCommerce store, then have it printed and shipped. The design travels with the order.

== Description ==

Add a **Customize** button to any WooCommerce product. Your customer designs it on your site — text, artwork, uploads, colours, print areas — and the finished design is attached to their cart item and carried through to the order.

What the customer made is what gets produced. The design reference travels with the line item, so nothing is retyped, re-uploaded, or guessed at when the order is fulfilled.

= What it does =

**On your store**
* A Customize button on any product you choose - the designer opens in place, your customer never leaves your store
* Works on a phone as well as a computer - a touch toolbar and a sheet for every tool
* Your logo in the designer, or no brand at all (white label)
* A "Design yours" button anywhere on your site - shortcode, block or Elementor widget - that opens the product with the designer ready
* Your rules per product: which print areas, techniques, tools and template categories customers get
* A setup checklist that shows what is done and what is left, with a link to fix each
**Products**
* Hundreds of products to design on: apparel, hats, mugs, bags, home goods and more - or your own blanks
* Your own blanks: photograph the garments you stock, mark each print area and its size, and customers design on them
* Every side: front, back, sleeves, labels and more - each side keeps its own design
* Every colour previewed live - two-tone colours shown as split swatches, and the design keeps its look when the colour changes
* Product info right in the designer: price, every colour and the price of every size
* A 3D preview
* Printing, embroidery and direct-to-film, with thread colours for embroidery
**Text**
* 64 fonts with colour, size, spacing and alignment, edited right on the product
* Curved text in 9 shapes: arc up, arc down, circle, wave, bridge, flag, inflate, S-curve and spiral
* Text effects: outline, shadow, glow, neon and retro
* Upload your own fonts (.ttf, .otf, .woff) and use them like any other
**Images and art**
* Uploads of photos, SVG, PDF, Illustrator (AI), EPS and Photoshop (PSD) files, with background removal and crop
* 8 photo filters: black and white, sepia, vintage, dramatic, bright, high contrast, invert and original
* Photo masks in 8 shapes: circle, heart, star, hexagon, diamond, triangle, arch and rounded corners
* Free stock photos, searchable
* Clipart and icons, with every colour in them changeable
* Shapes: rectangle, circle, triangle, star, heart and hexagon
* Freehand drawing with pencil, spray, circle brush and eraser
* QR codes for a website, phone number, text message, email or Wi-Fi - sharp vector codes at any size
* Contact-card QR codes that save you straight into someone's phone
* Barcodes - Code 128, EAN-13 and UPC-A
* Trackable QR codes: a short link on your site counts every scan
* Describe a design and AI creates it - or describe a picture and AI paints it
* 24+ ready templates, every word editable, applied in one tap
**Editing**
* Layers you can show, hide, lock, duplicate, reorder and delete
* Align left, right, top, bottom or centre; flip; bring forward or send back
* Select everything (or pick several parts on a phone) and move, scale and rotate it together
* Zoom in and out
* A grid in inches or centimetres over the print area, with snap, and the printed size of whatever you select
* Undo and redo, with the design kept if the page reloads
* A colour picker with an eyedropper on phones
* A print check before ordering: a photo too small to print sharp is flagged with its real DPI
**Ordering**
* A live price that follows the design, size by size
* Several sizes in one go, each with its own quantity
* Your customer approves a proof before the design goes on their order
* A preview of the design on the product page, in the cart, at checkout and on the order
* The cart shows which sides are printed
* My designs in My Account: every approved design kept, with Edit again and Remove
* Edit again opens the designer on that product with the design loaded - change it and order more
* Designs made before signing in move to the account on sign-in, with one-tap sign-in right where it was saved
**Pricing**
* A price for each print area (front=0, back=5, sleeve_left=3) - or one fee per extra area
* Screen setup per ink colour, counted from the real design
* Quantity breaks and a rush option
* Product options you reuse on any product - dropdowns, colour swatches, text and number fields - each adding a fixed amount or a percentage
* Show an option only when another option has a certain choice
* Custom sizes priced by area - width x height x your rate, with a minimum price
* A turnaround table - standard, express, next day - each with its own price
* Starter price sheets for t-shirts, business cards and banners, and a price tester on every product
* Nothing sold without a price: designable products with no price are flagged
**Production**
* Every order carries the approved proof and a print-ready file for every printed side
* Production files on every order: each side as a real-size PDF with bleed and crop marks, or CMYK, plus a one-page production sheet
* Print files made at each print area's real size, up to 300 DPI, and a print check that warns about blurry photos and art outside the print area
* Print it yourself, or have paid orders printed and shipped for you
* Connect your own Printful, Printify or Gelato account: paid orders are created there with the right size, colour and a file for every side, at your cost - held for you to confirm, or straight to production
* Sell this design: with Joyvo Marketplace, sellers put their artwork on your products at their own price
* Quote-only products: customers design and request a quote; you price it on the Quotes screen and they pay from a link
* Approve each design before it prints, if you like - paid orders wait for you on the Production screen
* A production queue: every designed item from New to Printing to Done, with its files
* Who prints it, per product - products you print yourself never go to the print service
* A signed webhook and a "ready to produce" email when an order is ready to print
* One reminder to signed-in customers who kept a design but never ordered it (only when you switch it on)
* A Design column in your orders list

= Free and Pro =

**Free**
* The designer on every product: text, art, uploads, AI, templates, every side
* Proof approval by the customer before they buy
* Saved designs in My Account, Edit again, designs kept through sign-in
* Print-ready files for every side on each order
* Send paid orders to Joyvo to print and ship, or print them yourself
* Never breaks your theme - no scripts loaded into your store

**Get started**
* A 3-step setup: your key, what you sell, who prints - and your store is ready
* Ready sample products made for you as drafts: T-shirts, business cards, flyers, postcards, stickers, folded cards, labels, posters
* A library of standard sizes - US and EU business cards, Letter / A4 / A5 flyers, 6 x 4 postcards, stickers, labels, 18 x 24 posters - at real size with the 1/8 in bleed and every side set
* Edit a blank once and every product using it changes

**Pro - Designer Pro, All-in-one or Agency**
* Your own print-on-demand account - orders go to your account, at your cost
* The Product Builder: options, sizes priced by area, minimum prices, turnaround, starter price sheets, price tester
* Quotes: "Request a quote" products, priced by you, paid by a link
* Approve each design before it is printed, a production queue, a "ready to produce" email and signed webhooks
* Print-ready PDF with crop marks, CMYK TIFF and a production sheet per order
* Your brand only - no Joyvo branding in the designer
* Reminders for designs customers kept but never ordered

= What it does not do =

* It does not change your prices. WooCommerce charges exactly what you configured; the design is attached to the line item, never a source of truth about money.
* It does not touch products you have not enabled.

= Requirements =

A Joyvo account and an API key from it. The designer and the production side run on Joyvo; this plugin is the bridge between that and your WooCommerce store.

== External services ==

This plugin connects to Joyvo (https://www.joyvo.com), which provides the design tool and the printing and fulfilment behind it. The plugin does not function without it.

**When the designer is opened.** Your server asks https://www.joyvo.com/api/plugins/designer/embed-token for a
short-lived link (sending your API key, your site's address and, if set, the Joyvo product ID). Only that
link reaches the page - your API key never does. The design is created inside the frame and, once your
customer approves the proof, saved to your Joyvo account.

**When a design is added to the cart.** The plugin sends the design ID, your API key and your site's domain to https://www.joyvo.com/api/plugins/designer/verify, to confirm the design exists and belongs to your account. No customer details are sent.

**When an order is paid** (only if you chose to have orders printed for you). The plugin sends to https://www.joyvo.com/api/plugins/designer/orders: your API key, your site's domain, the WooCommerce order number, the design IDs and quantities on that order, and the shipping name, address, and the billing email address — the details required to produce and deliver the item. This is the only point at which personal data leaves your site, and it happens only for orders that contain a design.

**When you save the settings page.** Your API key and your site's domain are sent to https://www.joyvo.com/api/plugins/init to check the key is valid.

No data is sent for visitors who never open the designer, and nothing is sent on page views.

Joyvo's terms of service: https://www.joyvo.com/terms
Joyvo's privacy policy: https://www.joyvo.com/privacy

== Installation ==

1. Install and activate the plugin.
2. Go to **WooCommerce → Product Designer** and paste the API key from your Joyvo account. The page tells you straight away whether it connected.
3. Edit any product, open **Product data → General**, and tick **Customers can design this**.
4. Optionally set a Joyvo product ID to fix which blank it prints on. Leave it empty to let the customer choose.

The product page now shows a Customize button.

== Frequently Asked Questions ==

= Do I need a Joyvo account? =

Yes. The design tool and the printing behind it run on Joyvo, and the plugin needs an API key from your account to talk to it.

= Does this change my prices? =

No. WooCommerce charges exactly what you set on the product. The design is attached to the line item; nothing in this plugin can alter what a customer is charged.

= What happens if the hand-off to production fails? =

It is written to the order as a note rather than silently dropped, so you can see it and retry. A production hand-off that fails quietly is how a paid order never ships.

= Will the same order be produced twice? =

No. WooCommerce fires both `processing` and `completed` for the same order, and merchants retry failed hand-offs, so the order is keyed on your store's order number and only ever produced once.

= Can a customer attach someone else's design to their order? =

No. The design reference arrives through the browser, so it is re-checked on the server against the account behind your API key before it is attached to anything.

== Screenshots ==

1. The Customize button on a product page.
2. The designer, open in place on the store.
3. The design shown on the cart line.
4. The settings page, with the connection confirmed.

== Changelog ==

= 1.14.0 - 2026-10-13 =
* New setting, Product page buttons: Customize only (the default) hides Add to cart and the quantity box on products shoppers can design - the approved proof goes straight into the cart. Or keep both to also sell the blank.
* After Use this design the shopper sees "Adding it to your cart..."; a product whose options are not picked yet shows Add to cart again.
* The approved design's picture keeps its size on a phone.

= 1.13.3 - 2026-10-12 =
* The open designer sits above your live-chat button and any other floating button, so nothing covers it.

= 1.13.2 - 2026-10-12 =
* A product's custom-size settings fit a phone - every value has its own label.

= 1.13.1 - 2026-10-12 =
* On a phone the designer fills the whole screen - no strip of the product page around it.

= 1.13.0 - 2026-10-11 =
* Designer look: your brand and toolbar colours (your theme's by default), light or dark, and your own CSS.

= 1.12.1 - 2026-10-11 =
* The designer shows your square site icon at the top, like a native app.

= 1.12.0 - 2026-10-11 =
* The designer shows your logo: your site logo by default, or pick one from your Media Library.
* Design pictures show in your cart, checkout, orders and My designs on every host.

= 1.11.0 - 2026-10-11 =
* The cart and checkout show the shopper's own design as the item's picture.
* The Customize button matches your theme's buttons.

= 1.10.0 - 2026-10-11 =
* Save in the designer - kept in My Account > My designs, before or without buying.
* My designs and your store's cart (with its count) right inside the designer.
* The shopper's avatar in the designer - their Social Login photo - or Sign in, straight back to their design.
* Add to cart puts the approved design straight into the WooCommerce cart.
* Edit design on every cart and checkout line - the new design replaces that line.
* The designer's Close button no longer covers Add to cart.

= 1.9.0 - 2026-10-07 =
* Get started: a 3-step setup with ready sample products (drafts).
* Standard sizes: business cards, flyers, postcards, stickers, folded cards, labels and posters at real size with bleed.

= 1.8.0 - 2026-10-07 =
* Free and Pro: everything to sell designed products stays free; Pro adds the print-shop tools (list above).
* Your plan on the settings page, with Check again - Pro switches on straight after you buy.
* Get the whole suite: the other plugins and the Suite plugin, from this plugin's own page.
* The connect form for your own print account now shows whether it worked.

= 1.7.0 - 2026-10-07 =
* Product options: reusable groups of dropdowns, colour swatches, text and number fields, each adding a fixed amount or a percentage, shown only when another choice is made if you like.
* Custom sizes priced by area, a turnaround table, starter price sheets and a price tester on every product.
* The setup checklist flags designable products with no price.
* Quotes, approval before printing, a production queue, who-prints per product, a signed webhook and a ready-to-produce email, abandoned-design reminders and a Design column in the orders list.

= 1.6.0 - 2026-10-07 =
* Every printed side gets its own print-ready file - front, back, sleeves - each sent to its own print area, and each one on the order screen.
* Price each print area on its own (front=0, back=5, sleeve_left=3), or keep one fee per extra area.
* The cart shows which sides are printed.
* Production files on every order: each printed side as a real-size PDF with crop marks or CMYK, and a one-page production sheet.
* A "Design yours" button for any page: [busyfirm_design_button product="123"], a block or an Elementor widget.
* Connect your own Printful, Printify or Gelato account - set each product's print service product once, and paid orders go straight there.

= 1.5.0 - 2026-10-07 =
* Saved designs: every design a shopper approves is kept in My Account > My designs, with Edit again and Remove.
* Edit again opens the designer on that product with the design loaded - change it and order more.
* Designs made before signing in move to the account on sign-in; one-tap sign-in buttons show right where the design
  was saved (with Joyvo Social Login).

= 1.4.0 - 2026-10-04 =
* Connect your own print-on-demand account: every paid order is created there with the right variant, the
  print-ready file and the shipping address - as a draft to review, or straight to production.

= 1.3.0 - 2026-10-04 =
* My blanks: add the garments you stock - a photo per colour per side, drag to mark each print area, set
  its real width - and create the WooCommerce product in one click.
* Your own artwork, your logo in the designer (or no branding at all), and a print-quality check before
  your customer approves.

= 1.2.0 - 2026-10-04 =
* A Designer tab on every product: choose the print areas, techniques, tools and template categories.
* Pricing for print shops: per extra print area, screen setup per ink colour, quantity breaks, rush.
* Every paid order also lands in your CRM - customer and order - whoever prints it.

= 1.1.0 - 2026-10-04 =
* Customers approve a proof before the design goes on their order.
* Print it yourself: every order carries the approved proof and a print-ready file - or send paid
  orders to be printed and shipped for you.
* Your API key now stays on your server; the designer opens with a short-lived link.
* The approved design shows on the product page, in the cart and on the order.

= 1.0.0 =
* First release: customers design a product on your WooCommerce store - text, art, uploads and AI -
  and the design travels with the order.

== Upgrade Notice ==

= 1.0.0 =
First release.
