{"id":384709,"date":"2026-10-13T19:41:20","date_gmt":"2026-10-13T19:41:20","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/storecanvas-lite\/"},"modified":"2026-10-20T05:34:28","modified_gmt":"2026-10-20T05:34:28","slug":"storecanvas-lite","status":"publish","type":"plugin","link":"https:\/\/hr.wordpress.org\/plugins\/storecanvas-lite\/","author":23548856,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.3.0","stable_tag":"1.3.0","tested":"7.1.3","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"StoreCanvas Lite","header_author":"Tillpress","header_description":"Free WooCommerce product options: 15 field types, conditional logic, per-choice\/lookup, percent, quantity and per-character pricing, and per-choice option stock.","assets_banners_color":"b87263","last_updated":"2026-10-20 05:34:28","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/tillpress.com\/storecanvas\/","header_author_uri":"https:\/\/tillpress.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":186,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.10":{"tag":"1.0.10","author":"alextechgamer","date":"2026-10-13 19:40:50","revision":3744801},"1.0.11":{"tag":"1.0.11","author":"alextechgamer","date":"2026-10-13 20:19:15","revision":3744853},"1.1.0":{"tag":"1.1.0","author":"alextechgamer","date":"2026-10-17 23:29:10","revision":3752425},"1.3.0":{"tag":"1.3.0","author":"alextechgamer","date":"2026-10-20 05:34:28","revision":3755935}},"upgrade_notice":{"1.3.0":"<p>Adds quantity discount tiers per product. Nothing changes until you add a tier.<\/p>","1.2.0":"<p>AND\/OR conditions in the builder, and file upload fields that keep the file with type and size limits.<\/p>","1.0.11":"<p>Product saves no longer copy option-group fields into the product. Products saved with earlier versions keep the copied fields; remove them from the product&#039;s StoreCanvas Lite tab if you want the group to control them again.<\/p>","1.0.4":"<p>Internal asset-loading change for wordpress.org review. No settings change.<\/p>","1.0.3":"<p>Support tickets can now be sent from inside the plugin. No settings change.<\/p>","1.0.2":"<p>Adds a Help &amp; demo page: demo product, support form, and system report. No settings change.<\/p>","1.0.0":"<p>First release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3744801,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3744801,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3744801,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3744801,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3755935,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"meta\":{\"title\":\"storecanvas-lite demo\",\"description\":\"WooCommerce store with demo data created by the plugin's own Help & demo page.\",\"author\":\"alextechgamer\"},\"landingPage\":\"\\\/wp-admin\\\/edit.php?post_type=product&page=sclt-help\",\"preferredVersions\":{\"php\":\"8.2\",\"wp\":\"latest\"},\"features\":{\"networking\":false},\"login\":true,\"steps\":[{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"woocommerce\"},\"options\":{\"activate\":true}},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"storecanvas-lite\"},\"options\":{\"activate\":true}},{\"step\":\"setSiteOptions\",\"options\":{\"woocommerce_onboarding_profile\":{\"skipped\":true},\"woocommerce_coming_soon\":\"no\",\"woocommerce_store_address\":\"1 Example Street\",\"woocommerce_store_city\":\"Springfield\",\"woocommerce_store_postcode\":\"12345\",\"woocommerce_default_country\":\"US:IL\"}},{\"step\":\"runPHP\",\"code\":\"<?php require_once '\\\/wordpress\\\/wp-load.php'; wp_set_current_user( 1 ); if ( class_exists( 'SCLT_Demo' ) ) { SCLT_Demo::create(); }\"}]}"}},"all_blocks":[],"tagged_versions":["1.0.10","1.0.11","1.1.0","1.3.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3744853,"resolution":"1","location":"assets","locale":"","width":1266,"height":1684},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3744853,"resolution":"2","location":"assets","locale":"","width":2556,"height":2062},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3744853,"resolution":"3","location":"assets","locale":"","width":1912,"height":3586},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3744853,"resolution":"4","location":"assets","locale":"","width":1266,"height":1122},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3744853,"resolution":"5","location":"assets","locale":"","width":2556,"height":654},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3744853,"resolution":"6","location":"assets","locale":"","width":2548,"height":1312},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3744853,"resolution":"7","location":"assets","locale":"","width":1912,"height":1800},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3744853,"resolution":"8","location":"assets","locale":"","width":1920,"height":1762}},"screenshots":{"1":"What the customer sees: radio, dropdown, text, checkbox and a gift note that appeared when Gift wrap was ticked, with the live price \"Base + options = total\". The last two fields come from an option group.","2":"Products \u2192 StoreCanvas Lite help: one-click demo data, the support ticket form and an optional offer you can hide.","3":"Setting up a product: Product data \u2192 StoreCanvas Lite tab. Each row is one field with its Field ID, label, type, price and choices. \"Steel@40, Black=2@12, Rose gold=5@0\" sets a price and a stock count per choice; the last field uses Show if field \"engrave\" equals 1.","4":"The result on the product page: Black adds $2, Rose gold is sold out, and the engraving text box appeared because \"Add engraving\" was ticked. Engraving is priced per character.","5":"Products \u2192 Option groups: reusable sets of fields.","6":"Editing an option group: the fields, the products it applies to and the categories it applies to (here, every product in Mugs).","7":"A product that gets fields from a group: the group's fields are listed with a link to the group, above the product's own fields.","8":"The order screen: every choice the customer made is saved under the line item."}},"plugin_section":[],"plugin_tags":[130308,163084,45085,155785,286],"plugin_category":[45],"plugin_contributors":[279861],"plugin_business_model":[],"class_list":["post-384709","plugin","type-plugin","status-publish","hentry","plugin_tags-conditional-logic","plugin_tags-extra-product-options","plugin_tags-product-designer","plugin_tags-product-options","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-alextechgamer","plugin_committers-alextechgamer"],"banners":{"banner":"https:\/\/ps.w.org\/storecanvas-lite\/assets\/banner-772x250.png?rev=3744801","banner_2x":"https:\/\/ps.w.org\/storecanvas-lite\/assets\/banner-1544x500.png?rev=3744801","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/storecanvas-lite\/assets\/icon-128x128.png?rev=3744801","icon_2x":"https:\/\/ps.w.org\/storecanvas-lite\/assets\/icon-256x256.png?rev=3744801","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/storecanvas-lite\/assets\/screenshot-1.png?rev=3744853","caption":"What the customer sees: radio, dropdown, text, checkbox and a gift note that appeared when Gift wrap was ticked, with the live price \"Base + options = total\". The last two fields come from an option group."},{"src":"https:\/\/ps.w.org\/storecanvas-lite\/assets\/screenshot-2.png?rev=3744853","caption":"Products \u2192 StoreCanvas Lite help: one-click demo data, the support ticket form and an optional offer you can hide."},{"src":"https:\/\/ps.w.org\/storecanvas-lite\/assets\/screenshot-3.png?rev=3744853","caption":"Setting up a product: Product data \u2192 StoreCanvas Lite tab. Each row is one field with its Field ID, label, type, price and choices. \"Steel@40, Black=2@12, Rose gold=5@0\" sets a price and a stock count per choice; the last field uses Show if field \"engrave\" equals 1."},{"src":"https:\/\/ps.w.org\/storecanvas-lite\/assets\/screenshot-4.png?rev=3744853","caption":"The result on the product page: Black adds $2, Rose gold is sold out, and the engraving text box appeared because \"Add engraving\" was ticked. Engraving is priced per character."},{"src":"https:\/\/ps.w.org\/storecanvas-lite\/assets\/screenshot-5.png?rev=3744853","caption":"Products \u2192 Option groups: reusable sets of fields."},{"src":"https:\/\/ps.w.org\/storecanvas-lite\/assets\/screenshot-6.png?rev=3744853","caption":"Editing an option group: the fields, the products it applies to and the categories it applies to (here, every product in Mugs)."},{"src":"https:\/\/ps.w.org\/storecanvas-lite\/assets\/screenshot-7.png?rev=3744853","caption":"A product that gets fields from a group: the group's fields are listed with a link to the group, above the product's own fields."},{"src":"https:\/\/ps.w.org\/storecanvas-lite\/assets\/screenshot-8.png?rev=3744853","caption":"The order screen: every choice the customer made is saved under the line item."}],"raw_content":"<!--section=description-->\n<p>StoreCanvas Lite adds extra choices to your WooCommerce products: sizes, finishes, colours, engraving text, gift wrap, gift notes, rush production, file names and more. Each choice can change the price, and the price on the product page updates as the customer picks. Free forever, with no license key, no account and no phone-home.<\/p>\n\n<p><strong>What your customer sees.<\/strong> Under the product's price, your option fields appear above the Add to cart button. As they choose, a line such as \"Base: $14.00 + options: $13.30 = $27.30\" updates live. Fields you mark as required must be filled before the item can be added to the cart. Their choices then follow the order everywhere: cart, checkout, order emails and the order screen in your admin.<\/p>\n\n<p><strong>Let customers design it.<\/strong> Turn on the <strong>customer design canvas<\/strong> for a product and your customer can put their own text and photos on the product image before buying: pick a font and colour, move, resize and rotate each layer, bring it forward or send it back, all inside the print area you drew. The preview and the original photos come with the order, ready to print. No account, no credits, no outside service: everything stays on your store.<\/p>\n\n<p><strong>What you set up.<\/strong> On any product, open the <strong>StoreCanvas Lite<\/strong> tab in the Product data box and click <strong>Add field<\/strong>. Give the field a label, pick a type, choose how it is priced and (for dropdowns, radios and image choices) type the choices. That is all a basic option needs. Everything else (stock per choice, fields that only appear after another choice, fields reused across many products) is optional and explained step by step below.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>15 field types:<\/strong> dropdown, radio buttons, checkbox, multi-select, short text, long text, email, phone, phone (tel), number, date, colour picker, image choice, file upload and section heading.<\/li>\n<li><strong>5 ways to price a field:<\/strong> a flat fee, a percent of the product price, an amount times a number the customer enters, an amount per character typed (engraving), or a different price for each choice (lookup table). Negative amounts work as discounts; the price never drops below zero.<\/li>\n<li><strong>Live price<\/strong> on the product page that matches what the cart charges, on classic and block themes.<\/li>\n<li><strong>Quantity discounts:<\/strong> \"buy 10 or more, 10% off each\" or \"25 or more, $3 off each\", up to 10 tiers per product. A \"Buy more, pay less\" table shows on the product page, and the quantity counts every item of that product in the cart, in any option or size.<\/li>\n<li><strong>Conditional fields with AND\/OR rules:<\/strong> show a field only when other fields match, for example \"Gift note\" when \"Gift wrap\" is ticked, or \"Rush date\" when Size is Large AND Quantity is more than 10. Rules can test is, is not, contains, more or less than, empty and \"is one of\". Hidden fields are never charged or required.<\/li>\n<li><strong>File uploads with limits:<\/strong> customers attach a file (a logo, a photo, a print-ready PDF) to the order. You choose the allowed types (JPG, PNG, GIF, WebP, PDF) and a size limit per field. Every file is checked on the server, stored in a protected folder and offered to you as a download link on the order.<\/li>\n<li><strong>Stock per choice:<\/strong> give any choice its own stock count. Sold-out choices are disabled on the product page, stock goes down when an order is placed and comes back when an order is cancelled, fails, or a refund restocks it.<\/li>\n<li><strong>Option groups:<\/strong> build a set of fields once (for example \"Gift options\") and apply it to whole product categories or a list of products.<\/li>\n<li><strong>Per role and per variation:<\/strong> show a field only to certain user roles (for example wholesale) or only for certain variations of a variable product.<\/li>\n<li><strong>Validation:<\/strong> required fields, minimum and maximum characters, number ranges and steps, and email, colour and date formats are checked before add to cart.<\/li>\n<li><strong>Orders:<\/strong> each choice and its price appear as line-item details in the cart, checkout, emails and admin order screen.<\/li>\n<li><strong>Compatible<\/strong> with WooCommerce HPOS (custom order tables), the block cart and block checkout.<\/li>\n<li><strong>Customer design canvas (free):<\/strong> one print area on the product's main image. Customers add text (5 built-in fonts, any colour, bold) and upload PNG or JPEG images, then move, resize, rotate, layer and delete them with a mouse, a finger or the keyboard. Optional: require a design, turn photo uploads off, limit the number of layers and charge a flat design fee (added through the same server-side pricing as the options). The design preview shows in the cart, checkout, order emails and My Account; the admin order screen has download links for the preview and every original photo.<\/li>\n<li><strong>Help &amp; demo page<\/strong> with a one-click demo product and a support ticket form.<\/li>\n<\/ul>\n\n<h4>Setup guide<\/h4>\n\n<p><strong>Step 1: Install and activate.<\/strong> In WordPress go to Plugins \u2192 Add New, search for \"StoreCanvas Lite\", click Install and then Activate. WooCommerce must be active. A <strong>Help &amp; demo<\/strong> link appears under the plugin's name on the Plugins screen, and the same page lives at Products \u2192 StoreCanvas Lite help.<\/p>\n\n<p><strong>Step 2 (optional): Look at the demo.<\/strong> On Products \u2192 StoreCanvas Lite help, click <strong>Create demo data<\/strong>. It creates one hidden product (not shown in your shop or search) that uses every pricing type, a conditional field and stock per choice, plus one option group. Open it from the links on that page to see the product page, the live price and the cart. Click <strong>Remove demo data<\/strong> when you are done; uninstalling the plugin removes it too.<\/p>\n\n<p><strong>Step 3: Add your first field.<\/strong> Edit a product. In the Product data box, open the <strong>StoreCanvas Lite<\/strong> tab and click <strong>Add field<\/strong>. A new row appears. Fill in:<\/p>\n\n<ul>\n<li><strong>Label:<\/strong> what the customer reads, for example \"Size\".<\/li>\n<li><strong>Type:<\/strong> for example Dropdown or Radio.<\/li>\n<li><strong>Required:<\/strong> tick it if the customer must choose before adding to cart.<\/li>\n<li><strong>Price:<\/strong> the pricing method and amount (see Step 4).<\/li>\n<li><strong>Choices:<\/strong> for Dropdown, Radio, Multi-select and Image choice, type the choices separated by commas (a Checkbox is a single tick box and needs no choices), for example <code>Small, Medium, Large<\/code>.<\/li>\n<\/ul>\n\n<p>Click <strong>Update<\/strong> to save the product. View the product: the field is there, under the price.<\/p>\n\n<p><strong>Step 4: Price it.<\/strong> Pick one of these in the Price dropdown for each field:<\/p>\n\n<ul>\n<li><strong>Flat fee:<\/strong> adds the amount once when the field is used. Example: Gift wrap, Flat fee, 1.50.<\/li>\n<li><strong>Percent of product:<\/strong> adds that percent of the product (or chosen variation) price. Example: Premium finish, 10.<\/li>\n<li><strong>Per quantity:<\/strong> the customer types a number, and the amount is multiplied by it. Example: Extra name tags, Per quantity, 2.00 (5 tags = $10).<\/li>\n<li><strong>Per character (text):<\/strong> for text fields; each character typed costs the amount. Example: Engraving text, 0.20 (\"For Ada\" = 7 characters = $1.40).<\/li>\n<li><strong>Per choice (lookup table):<\/strong> each choice has its own price. Write the price after the choice with an equals sign: <code>11 oz, 15 oz=3<\/code>, or <code>Matte, Gloss=2.5, Metallic=4<\/code>. A choice with no <code>=<\/code> costs nothing extra. Use a minus sign for a discount: <code>Student=-5<\/code>.<\/li>\n<\/ul>\n\n<p><strong>Step 5 (optional): Stock per choice.<\/strong> Add <code>@<\/code> and a number after a choice to give it a stock count: <code>Steel@40, Black=2@12, Rose gold=5@0<\/code>. Here Black costs $2 extra with 12 left, and Rose gold shows as sold out. Leave the <code>@<\/code> off and the choice is unlimited. Stock is reduced when the order is placed and returned if the order is cancelled or fails, or if you tick \"Restock refunded items\" on a refund. If you edit the stock while orders come in, StoreCanvas Lite applies your change to the current count instead of overwriting sales.<\/p>\n\n<p><strong>Step 6 (optional): Show a field only when needed.<\/strong> On the field that should appear later, click <strong>Add condition<\/strong>, pick the other field, a test and a value. Add more rules and choose <strong>all<\/strong> (every rule must match, AND) or <strong>any<\/strong> (one rule is enough, OR):<\/p>\n\n<ul>\n<li>Show \"Engraving text\" when the checkbox \"Add engraving\" is ticked: <code>Add engraving<\/code> is <code>1<\/code> (a ticked checkbox counts as 1).<\/li>\n<li>Show \"Gloss care tips\" only when Finish is Gloss: <code>Finish<\/code> is <code>Gloss<\/code>.<\/li>\n<li>Show \"Rush date\" when Size is Large and more than 10 are ordered: all of <code>Size<\/code> is <code>Large<\/code>, <code>Quantity<\/code> is more than <code>10<\/code>.<\/li>\n<li>Show \"Upload your logo\" for either print option: any of <code>Print<\/code> is <code>Front logo<\/code>, <code>Print<\/code> is <code>Back logo<\/code> (or one rule: <code>Print<\/code> is one of <code>Front logo, Back logo<\/code>).<\/li>\n<\/ul>\n\n<p>Products set up with the older \"Show if field \/ equals\" boxes keep working; the builder shows that rule as a condition.<\/p>\n\n<p><strong>File uploads.<\/strong> A <strong>File upload<\/strong> field shows tick boxes for the allowed file types (JPG, PNG and PDF by default; GIF and WebP too) and a <strong>Max size (MB)<\/strong> box (5 MB when empty, and never more than your server allows). Customers see the allowed types and size under the button and are told straight away when a file does not fit. The server checks every file again, including that its content really is the type its name says.<\/p>\n\n<p>A hidden field is never required and never charged. Fields can also be limited to user roles (Roles box, for example <code>wholesale_customer<\/code>) or to variations (Variation IDs box, the IDs shown in the Variations tab).<\/p>\n\n<p><strong>Step 7 (optional): Reuse fields with an option group.<\/strong> Go to Products \u2192 <strong>Option groups<\/strong> \u2192 Add option group. Give it a title, paste the fields into <strong>Fields JSON<\/strong> (the easiest way is to build them on one product first; a group uses the same JSON), and choose where it applies: type product IDs in <strong>Product IDs<\/strong> and\/or tick categories under <strong>Product categories<\/strong>. Every product in those categories now gets the group's fields under its own. On a product's StoreCanvas Lite tab, group fields are listed separately with a link to their group; edit them in the group, not on the product. A product field with the same ID as a group field replaces it on that product. The ticked list under \"Global option groups\" adds a group to one product even when it is not assigned.<\/p>\n\n<p><strong>Step 8 (optional): Let customers design the product.<\/strong> On the product's StoreCanvas Lite tab, scroll to <strong>Customer design canvas<\/strong> and tick <strong>Let customers design this product<\/strong>. The product needs a main (featured) image: that is the mockup the customer designs on. Drag the blue box on the image (or type Left, Top, Width and Height in %) to mark where printing is possible; designs are clipped to this area. Then choose:<\/p>\n\n<ul>\n<li><strong>A design is required to add to cart:<\/strong> the Add to cart button asks for a design first.<\/li>\n<li><strong>Allow image uploads:<\/strong> customers may add their own PNG or JPEG photos (up to 5 MB each by default).<\/li>\n<li><strong>Max layers:<\/strong> how many texts and images one design may have.<\/li>\n<li><strong>Design fee:<\/strong> a flat amount added to the line when a design is added (0 for free).<\/li>\n<\/ul>\n\n<p>Click <strong>Update<\/strong>. On the product page the canvas appears above Add to cart. When the order comes in, open it in WooCommerce \u2192 Orders: the line item shows the design preview and links to download the preview PNG and each photo the customer uploaded, plus the text, font and colour used.<\/p>\n\n<p><strong>Step 9 (optional): Quantity discounts.<\/strong> On the product's StoreCanvas Lite tab, find <strong>Quantity discounts<\/strong>. In each row, type the quantity the discount starts at (2 or more), the discount, and whether it is a percentage or an amount off each item. Example: 10, 10, % off each; then 25, 15, % off each. Empty rows are skipped. The discount comes off the whole item price, options included, and the cart shows it on the line. The product page lists the tiers in a \"Buy more, pay less\" table and the live price shows the saving for the quantity chosen.<\/p>\n\n<p><strong>Step 10: Test an order.<\/strong> Add the product to the cart with some choices. The cart and checkout show each choice and the total. After checkout, the order screen in WooCommerce \u2192 Orders lists every choice under the line item.<\/p>\n\n<h4>Good to know<\/h4>\n\n<ul>\n<li>Prices you see on the product page are recalculated on the server for the cart and checkout, so a customer cannot change a price in the browser.<\/li>\n<li>If you change a product's price later, carts that already contain it are repriced from the new price.<\/li>\n<li>Field changes apply to new add-to-carts. Orders already placed keep the choices and prices they were sold with.<\/li>\n<li>Files customers attach with a file upload field are checked (allowed type, real content, size) and kept in the same protected folder as design files. Shop staff download them from the order screen.<\/li>\n<li>Design files are kept in a protected folder (<code>wp-content\/uploads\/sclt-designs\/<\/code>) that cannot be browsed or opened directly; they are shown through short-lived signed links. Photos from designs that were never ordered are deleted automatically after 7 days.<\/li>\n<\/ul>\n\n<p>A paid <strong>StoreCanvas<\/strong> plugin is sold separately at https:\/\/tillpress.com\/storecanvas\/ for shops that need more than one print area: several product views and print areas, a clipart library, design templates, print-ready PNG\/SVG\/PDF files, a production desk, Printful\/Printify and Fancy Product Designer import. It is a different plugin. StoreCanvas Lite, including its design canvas, is complete on its own and is never locked or time-limited.<\/p>\n\n<h3>External services<\/h3>\n\n<p>StoreCanvas Lite has no license check, no telemetry, no account, and makes no outbound requests during normal use. The one exception is a support ticket you choose to send.<\/p>\n\n<p>The customer design canvas uses no outside service: its fonts are bundled with the plugin, customer photos are uploaded only to your own site, and nothing is sent to Tillpress or anyone else.<\/p>\n\n<p><strong>Support tickets (only when you send one):<\/strong> the Help &amp; demo page has a support form. When an administrator fills it in, ticks the consent box, and presses <strong>Send ticket<\/strong>, the plugin sends the name, reply-to email, topic, subject, message, this site's address, and (if ticked) a system report of WordPress\/WooCommerce\/PHP versions, theme, and active plugin names to the Tillpress support desk at <code>https:\/\/tillpress.com\/wp-json\/tp\/v1\/support<\/code>. Nothing is sent automatically, in the background, or on a schedule, and no passwords, keys, or customer\/order data are included. Service provider: Tillpress (Alex Software Holdings LLC). Privacy policy: https:\/\/tillpress.com\/privacy\/ \u2014 Terms: https:\/\/tillpress.com\/terms\/ . \"Email instead\" opens the same ticket in your own email app and sends nothing from the site.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p><strong>Design canvas.<\/strong> When a customer uses the design canvas, these files are stored on your own server, in <code>wp-content\/uploads\/sclt-designs\/<\/code> (never in the Media Library and never sent anywhere else): the design preview image, every PNG\/JPEG photo the customer uploads for the design, and, on the cart line and order item, the design itself (texts, font, colour and positions). Guests can use the canvas without an account.<\/p>\n\n<ul>\n<li>The folder is protected: file names are long random strings, the folder blocks  \u2026<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>In WordPress, go to Plugins \u2192 Add New, search for \"StoreCanvas Lite\", then click Install and Activate. (Or upload the <code>storecanvas-lite<\/code> folder to <code>\/wp-content\/plugins\/<\/code> and activate it on the Plugins screen.)<\/li>\n<li>Make sure WooCommerce 7.0 or newer is active.<\/li>\n<li>Optional: open Products \u2192 StoreCanvas Lite help and click <strong>Create demo data<\/strong> to see a finished example.<\/li>\n<li>Edit a product, open the <strong>StoreCanvas Lite<\/strong> tab in the Product data box, click <strong>Add field<\/strong>, fill in the label, type, price and choices, then click <strong>Update<\/strong>.<\/li>\n<li>Optional: create reusable fields under Products \u2192 <strong>Option groups<\/strong> and assign them to products or categories.<\/li>\n<\/ol>\n\n<p>The <strong>Setup guide<\/strong> in the Description tab walks through every setting with examples.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20there%20a%20license%20key%2C%20trial%20or%20%22pro%22%20lock%3F\"><h3>Is there a license key, trial or \"pro\" lock?<\/h3><\/dt>\n<dd><p>No. Every feature on this page works without a key, a trial or an account, and nothing is locked later.<\/p><\/dd>\n<dt id=\"where%20do%20i%20add%20options%20to%20a%20product%3F\"><h3>Where do I add options to a product?<\/h3><\/dt>\n<dd><p>Edit the product, scroll to the Product data box and open the <strong>StoreCanvas Lite<\/strong> tab (after Advanced). Click <strong>Add field<\/strong> for each option, then <strong>Update<\/strong>.<\/p><\/dd>\n<dt id=\"how%20do%20i%20give%20each%20choice%20its%20own%20price%3F\"><h3>How do I give each choice its own price?<\/h3><\/dt>\n<dd><p>Set the field's Price to <strong>Per choice (lookup table)<\/strong> and write the price after each choice with an equals sign: <code>Small, Medium=2, Large=4<\/code>. Choices without <code>=<\/code> add nothing.<\/p><\/dd>\n<dt id=\"how%20do%20i%20charge%20for%20engraving%20by%20the%20letter%3F\"><h3>How do I charge for engraving by the letter?<\/h3><\/dt>\n<dd><p>Add a <strong>Short text<\/strong> field, set Price to <strong>Per character (text)<\/strong> and enter the price per character, for example 0.20. Set <strong>Max chars<\/strong> to limit the length.<\/p><\/dd>\n<dt id=\"how%20do%20i%20make%20a%20field%20appear%20only%20after%20another%20choice%3F\"><h3>How do I make a field appear only after another choice?<\/h3><\/dt>\n<dd><p>Click <strong>Add condition<\/strong> on that field, pick the other field, a test (is, is not, contains, more than and so on) and a value. Add more rules and choose <strong>all<\/strong> for AND or <strong>any<\/strong> for OR. For a checkbox, use <code>1<\/code> (ticked). Hidden fields are never required or charged.<\/p><\/dd>\n<dt id=\"how%20do%20i%20set%20stock%20for%20a%20choice%3F\"><h3>How do I set stock for a choice?<\/h3><\/dt>\n<dd><p>Add <code>@<\/code> and the quantity after the choice: <code>Black@12<\/code>, or with a price <code>Black=2@12<\/code>. A choice at <code>@0<\/code> shows as sold out. Without <code>@<\/code> a choice is unlimited.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20option%20stock%20on%20cancellations%20and%20refunds%3F\"><h3>What happens to option stock on cancellations and refunds?<\/h3><\/dt>\n<dd><p>Stock is reduced when an order is placed and returned if the order is cancelled or fails. On a refund, stock returns only when you tick \"Restock refunded items\", and only for the refunded quantity. A restock that fails is not marked done, so you can retry it.<\/p><\/dd>\n<dt id=\"can%20i%20reuse%20the%20same%20fields%20on%20many%20products%3F\"><h3>Can I reuse the same fields on many products?<\/h3><\/dt>\n<dd><p>Yes. Create an option group under Products \u2192 Option groups and assign it to product IDs and\/or categories. The fields appear on those products automatically. Edit them in the group; a product's tab lists them with a link to the group.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20variable%20products%3F\"><h3>Does it work with variable products?<\/h3><\/dt>\n<dd><p>Yes. Percent pricing uses the chosen variation's price, and a field can be limited to certain variations with the Variation IDs box.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20the%20block%20cart%20and%20checkout%2C%20and%20hpos%3F\"><h3>Does it work with the block cart and checkout, and HPOS?<\/h3><\/dt>\n<dd><p>Yes. Choices are validated and shown in the block cart and checkout, and orders work with WooCommerce's custom order tables (HPOS).<\/p><\/dd>\n<dt id=\"can%20customers%20change%20the%20price%20in%20their%20browser%3F\"><h3>Can customers change the price in their browser?<\/h3><\/dt>\n<dd><p>No. The live price is only a preview. The cart and checkout recalculate every option from your settings on the server.<\/p><\/dd>\n<dt id=\"is%20there%20a%20demo%3F\"><h3>Is there a demo?<\/h3><\/dt>\n<dd><p>Yes. On <strong>Products \u2192 StoreCanvas Lite help<\/strong>, click <strong>Create demo data<\/strong>. It creates one hidden product (not in your shop or search) with lookup pricing, per-character engraving, a gift note that appears only when Gift wrap is ticked, option stock with a sold-out choice, and a reusable option group. Everything is labelled \"Demo\", never emailed, and removed with one click (or when you uninstall the plugin).<\/p><\/dd>\n<dt id=\"how%20do%20i%20get%20support%3F\"><h3>How do I get support?<\/h3><\/dt>\n<dd><p>Open <strong>Products \u2192 StoreCanvas Lite help<\/strong>. The support form there sends your ticket straight to the Tillpress support desk at tillpress.com after you tick the consent box and press Send ticket; you get a ticket number on screen and the reply comes by email. It includes your name, email, message, this site's address, and (optional) a system report of versions, theme, and active plugins; never passwords, keys, or customer data. Prefer email? \"Email instead\" opens the same ticket in your own email app. You can also use the WordPress.org support forum for this plugin or https:\/\/tillpress.com\/support\/. Replies Monday to Friday, 09:00 to 17:00 Pacific Time; first reply within one business day.<\/p><\/dd>\n<dt id=\"how%20do%20i%20let%20customers%20design%20a%20product%3F\"><h3>How do I let customers design a product?<\/h3><\/dt>\n<dd><p>Edit the product, open the <strong>StoreCanvas Lite<\/strong> tab, tick <strong>Let customers design this product<\/strong> under Customer design canvas, and drag the print-area box onto the product image. The product needs a main (featured) image. See Step 8 of the Setup guide.<\/p><\/dd>\n<dt id=\"what%20can%20customers%20do%20on%20the%20canvas%3F\"><h3>What can customers do on the canvas?<\/h3><\/dt>\n<dd><p>Add text (Sans, Serif, Typewriter, Bebas Neue or Dancing Script, any colour, bold), upload PNG or JPEG photos, and move, resize, rotate, bring forward, send backward or delete each layer. Everything stays inside your print area. It works with a mouse, on touch screens, and with the keyboard: select a layer, then use the arrow keys to move it, + and - to resize, [ and ] to rotate, Page Up \/ Page Down to change the order and Delete to remove it.<\/p><\/dd>\n<dt id=\"what%20do%20i%20get%20with%20the%20order%3F\"><h3>What do I get with the order?<\/h3><\/dt>\n<dd><p>The order line shows the design preview. On the admin order screen you also get download links for the preview PNG and for every original photo the customer uploaded, plus the texts with their font and colour.<\/p><\/dd>\n<dt id=\"where%20are%20customer%20designs%20stored%2C%20and%20who%20can%20see%20them%3F\"><h3>Where are customer designs stored, and who can see them?<\/h3><\/dt>\n<dd><p>On your own server only, in a protected folder (<code>wp-content\/uploads\/sclt-designs\/<\/code>). Files cannot be listed or opened directly; the cart, emails and order pages use links that are signed and expire. Shop managers can always open them from the order screen. Nothing is sent to Tillpress or any other service. See the Privacy section.<\/p><\/dd>\n<dt id=\"can%20i%20charge%20for%20a%20design%3F\"><h3>Can I charge for a design?<\/h3><\/dt>\n<dd><p>Yes. Set a <strong>Design fee<\/strong> in the canvas settings. It is added once per cart line that has a design, and it is calculated on the server like every other option price.<\/p><\/dd>\n<dt id=\"how%20big%20can%20uploaded%20photos%20be%3F\"><h3>How big can uploaded photos be?<\/h3><\/dt>\n<dd><p>PNG or JPEG, up to 5 MB and 8000 \u00d7 8000 pixels by default (also capped by your server's upload limit). Developers can change the size with the <code>sclt_canvas_max_upload_bytes<\/code> filter.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20advertise%20anything%3F\"><h3>Does the plugin advertise anything?<\/h3><\/dt>\n<dd><p>Only on its own Help &amp; demo page: one box describing the paid StoreCanvas plugin with an optional 20% discount code. It can be hidden for good with \"Hide this offer\". There are no dashboard-wide notices, no tracking, and no referral IDs.<\/p><\/dd>\n<dt id=\"what%20if%20i%20also%20install%20storecanvas%20%28the%20paid%20plugin%29%3F\"><h3>What if I also install StoreCanvas (the paid plugin)?<\/h3><\/dt>\n<dd><p>Lite steps aside automatically so you do not get duplicate option fields or double charges. You can then deactivate Lite.<\/p><\/dd>\n<dt id=\"what%20does%20the%20paid%20storecanvas%20add%3F\"><h3>What does the paid StoreCanvas add?<\/h3><\/dt>\n<dd><p>Lite's canvas has one print area on the main product image. The paid StoreCanvas adds several product views and print areas, clipart, templates, print-ready PNG\/SVG\/PDF exports, a production desk, and Printful\/Printify and Fancy Product Designer import, at https:\/\/tillpress.com\/storecanvas\/.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>New: quantity discounts. On a product's StoreCanvas Lite tab, add up to 10 tiers such as \"10 or more: 10% off each\" or \"25 or more: $3 off each\". The tier comes from the total quantity of that product in the cart, across every option and variation, and the discount applies to the whole item price including options.<\/li>\n<li>New: a \"Buy more, pay less\" table on the product page, the saving in the live price, and a \"Quantity discount\" line in the cart, checkout, emails and order screen.<\/li>\n<li>Prices are worked out on the server from the current catalog price every time the cart is totalled, so a discount never stacks and lowering the quantity brings the full price back.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>New: AND\/OR conditions in the field builder. Click \"Add condition\" to show a field only when all (AND) or any (OR) of several rules match, with tests such as is, is not, contains, more or less than, empty and \"is one of\". The product page shows and hides fields with the same rules the server uses. Products using the old \"Show if field \/ equals\" boxes keep working.<\/li>\n<li>New: file upload fields now keep the file. Choose the allowed types (JPG, PNG, GIF, WebP, PDF) and a size limit per field; customers see both and get an instant message when a file does not fit.<\/li>\n<li>Security: every uploaded file is checked on the server for size, allowed type and real content (a file whose content does not match its name is refused), stored under a random name in the protected <code>sclt-designs<\/code> folder, and offered to staff as a download link on the order. PDFs are always downloaded, never opened in the site. Files of carts that never became orders are deleted after 7 days.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: after 5 orders have used StoreCanvas Lite options or a design, and 14 days after install, administrators see one notice asking for a WordPress.org review, with a Get help button next to it. \"Maybe later\" hides it for 30 days, once; \"Dismiss\" hides it for good. Nothing is sent anywhere.<\/li>\n<li>New: free customer design canvas. Per product, turn it on and draw one print area on the main product image; customers add text (5 bundled fonts, colour, bold) and PNG\/JPEG photos, and move, resize, rotate, layer and delete them with mouse, touch or keyboard. Designs are clipped to the print area.<\/li>\n<li>New: optional required design, photo uploads on\/off, maximum layers, and a flat design fee priced on the server with the other options.<\/li>\n<li>New: the design preview shows in the cart (classic and block), checkout, order emails, My Account and the admin order screen, with download links for the preview and the customer's original photos. Works for guests.<\/li>\n<li>Security: uploads are checked for nonce, size, and real PNG\/JPEG content; previews are re-encoded; files get random names in a protected uploads folder and are served only to staff or through signed, expiring links.<\/li>\n<li>New: photos from designs that were never ordered are deleted after 7 days by a daily task; uninstall removes the plugin's design files, settings and task.<\/li>\n<\/ul>\n\n<h4>1.0.12<\/h4>\n\n<ul>\n<li>Fix: File upload fields now work. A required file field no longer blocks add to cart, and the uploaded file's name is saved with the order.<\/li>\n<\/ul>\n\n<h4>1.0.11<\/h4>\n\n<ul>\n<li>Fix: saving a product no longer copies option-group fields into the product. The builder now edits only the product's own fields and lists group fields separately with a link to their group, so later edits to the group reach every product.<\/li>\n<li>Fix: each field shows its Field ID (needed for Show if field), and multi-rule conditions set outside the builder are kept when the product is saved.<\/li>\n<li>Improved: the choices box uses the full row, and the help text explains =price, @stock and Show if field.<\/li>\n<\/ul>\n\n<h4>1.0.10<\/h4>\n\n<ul>\n<li>Includes 1.0.9 (option stock race, refund restock retry, stale product save).<\/li>\n<li>Plugin Check: Store API stock message escaped, refund restock flag unslashed and sanitized, stock compare-and-swap uses a prepared %i table placeholder.<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Fix: option stock sold by concurrent checkouts can no longer be overwritten by a later write.<\/li>\n<li>Fix: a refund whose restock failed is no longer marked done; retrying it restocks once.<\/li>\n<li>Fix: saving a product that was open while orders came in keeps the sold stock; a stock edit is applied as a change to the current amount.<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Fix: customized cart lines always use the current catalog price; a saved cart can no longer keep the old price after a catalog price change.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Fix: option surcharges are applied once from the product's current price (including sale price). Recalculating the cart no longer stacks the same extra.<\/li>\n<li>Fix: option stock tracks each line and refund. Amount-only refunds do not restock; restock restores only the refunded quantity. Failed then paid orders re-reserve remaining stock.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Fix: carts saved before this update are re-checked and re-priced from the current product options; invalid items are removed with a notice.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Security: option quantities must be whole positive numbers; malformed values can no longer lower a price.<\/li>\n<li>Fix: option stock is counted across the whole cart, on quantity changes and at checkout; stock is reduced and restored once.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Change: front-end option styles and the field-builder type lists now load through wp_enqueue_style \/ wp_add_inline_script instead of inline <\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>New: Send support tickets from inside the plugin (Help &amp; demo page). You get a ticket number on screen; nothing is sent until you tick the consent box and press Send ticket. \"Email instead\" still opens your email app.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>New: Help &amp; demo page (Products \u2192 StoreCanvas Lite help, also linked from the Plugins screen).<\/li>\n<li>New: one-click demo product and option group showing lookup, per-character, and flat pricing, a show-if field, and option stock. Hidden from the shop; removed with one click or on uninstall.<\/li>\n<li>New: support ticket form that opens a pre-filled email in your own email app, with an optional system report (no passwords, keys, or customer data). Nothing is sent from your site.<\/li>\n<li>New: optional, dismissible 20% offer for the paid StoreCanvas plugin, shown only on the Help &amp; demo page.<\/li>\n<li>Fix: sold-out choices on radio and multi-select fields are now disabled on the product page (they were only blocked at add to cart). Radio choices show \"(sold out)\".<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fix: show-if (conditional) fields now work on block themes such as Twenty Twenty-Five.<\/li>\n<li>Fix: order confirmation and emails show the customer's choices instead of raw sclt_price_extra.<\/li>\n<li>Fix: a plain Update on a product no longer deletes per-choice prices. Write prices as \"Large=10\".<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First public release: 15 field types, flat\/percent\/quantity\/per-character\/lookup pricing, multi-rule conditional logic, per-choice option stock, reusable option groups, live price preview.<\/li>\n<\/ul>","raw_excerpt":"Free WooCommerce product options and a design canvas: 15 field types, AND\/OR conditions, file uploads, quantity discounts and option stock.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/384709","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/hr.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/hr.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=384709"}],"author":[{"embeddable":true,"href":"https:\/\/hr.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/alextechgamer"}],"wp:attachment":[{"href":"https:\/\/hr.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=384709"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/hr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=384709"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/hr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=384709"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/hr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=384709"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/hr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=384709"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/hr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=384709"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}