{"id":354292,"date":"2026-08-26T08:40:17","date_gmt":"2026-08-26T08:40:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/contrado-integration-for-woocommerce\/"},"modified":"2026-08-26T08:40:07","modified_gmt":"2026-08-26T08:40:07","slug":"contrado-integration-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/contrado-integration-for-woocommerce\/","author":23530125,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.4","stable_tag":"1.0.4","tested":"7.1","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Contrado Integration for WooCommerce","header_author":"Contrado","header_description":"Sync Contrado products, collections, and orders with WooCommerce.","assets_banners_color":"e6eee8","last_updated":"2026-08-26 08:40:07","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/www.contrado.com\/woocommerce-integration","header_author_uri":"https:\/\/www.contrado.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":48,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.4":{"tag":"1.0.4","author":"contrado","date":"2026-08-26 08:40:07"}},"upgrade_notice":{"1.0.2":"<p>Bug fixes and WordPress.org compliance fixes (asset enqueuing, admin notice scope, duplicate\/dead hooks). Recommended for all users.<\/p>","1.0.1":"<p>Adds worldwide shipping profile coverage with accurate quantity-based delivery pricing for every country. Recommended for all users.<\/p>","1.0.0":"<p>Initial release \u2014 no upgrade required.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3666549,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3666549,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3666549,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3666549,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.4"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3666549,"resolution":"1","location":"assets","locale":"","width":1907,"height":802},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3666549,"resolution":"2","location":"assets","locale":"","width":1553,"height":869}},"screenshots":{"1":"The Contrado admin page \u2014 Sync tab showing all three sync cards with last-sync statistics.","2":"The API settings page \u2014 API credentials and webhook URL configuration."}},"plugin_section":[],"plugin_tags":[277543,65950,13075,42241,286],"plugin_category":[45],"plugin_contributors":[277544],"plugin_business_model":[],"class_list":["post-354292","plugin","type-plugin","status-publish","hentry","plugin_tags-contrado","plugin_tags-order-sync","plugin_tags-print-on-demand","plugin_tags-product-sync","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-contrado","plugin_committers-contrado"],"banners":{"banner":"https:\/\/ps.w.org\/contrado-integration-for-woocommerce\/assets\/banner-772x250.png?rev=3666549","banner_2x":"https:\/\/ps.w.org\/contrado-integration-for-woocommerce\/assets\/banner-1544x500.png?rev=3666549","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/contrado-integration-for-woocommerce\/assets\/icon-128x128.png?rev=3666549","icon_2x":"https:\/\/ps.w.org\/contrado-integration-for-woocommerce\/assets\/icon-256x256.png?rev=3666549","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/contrado-integration-for-woocommerce\/assets\/screenshot-1.png?rev=3666549","caption":"The Contrado admin page \u2014 Sync tab showing all three sync cards with last-sync statistics."},{"src":"https:\/\/ps.w.org\/contrado-integration-for-woocommerce\/assets\/screenshot-2.png?rev=3666549","caption":"The API settings page \u2014 API credentials and webhook URL configuration."}],"raw_content":"<!--section=description-->\n<p>Contrado Integration for WooCommerce connects your store to the <a href=\"https:\/\/www.contrado.com\">Contrado<\/a> print-on-demand platform via the Helix API. It keeps your products, stock levels, and order statuses in sync automatically.<\/p>\n\n<ul>\n<li>Product range: 470+ print-on-demand products including clothing, homeware, wall art, game mats, and more.<\/li>\n<li>Worldwide fulfilment: products are made on demand and shipped internationally.<\/li>\n<li>Automatic shipping profile sync, including quantity-based delivery pricing per destination country.<\/li>\n<\/ul>\n\n<p><strong>Features<\/strong><\/p>\n\n<ul>\n<li><strong>Full product sync<\/strong> \u2014 Import your entire Contrado catalogue as WooCommerce variable products, complete with attributes, variations, images, and pricing.<\/li>\n<li><strong>Collection sync<\/strong> \u2014 Import products from a single Contrado collection.<\/li>\n<li><strong>Order sync<\/strong> \u2014 Import Contrado order live fulfilment status updates.<\/li>\n<li><strong>Out-of-stock variation hiding<\/strong> \u2014 OOS variations are removed from the product-page dropdowns in real time so customers can never add unavailable options to their cart.<\/li>\n<li><strong>Discontinued product cleanup<\/strong> \u2014 Products no longer in your Contrado catalogue are permanently removed from WooCommerce on a full sync.<\/li>\n<li><strong>Webhook support<\/strong> \u2014 Receive real-time push updates from Contrado for stock changes, design modifications, and order status changes.<\/li>\n<li><strong>HPOS compatible<\/strong> \u2014 Fully compatible with WooCommerce High-Performance Order Storage.<\/li>\n<li><strong>Tabbed admin UI<\/strong> \u2014 A dedicated top-level admin page with Sync and Support tabs, live progress bar, and post-sync statistics (synced \/ failed \/ total).<\/li>\n<\/ul>\n\n<p><strong>External Services<\/strong><\/p>\n\n<p>This plugin connects to the <strong>Contrado Helix API<\/strong> to retrieve product and order data and to submit orders for fulfilment. The API endpoint is configured by the store owner under <em>WooCommerce \u2192 Settings \u2192 Integrations \u2192 Contrado Integration for WooCommerce<\/em>. No data is sent to Contrado without the store owner explicitly configuring their API credentials and triggering a sync.<\/p>\n\n<p>Please review the Contrado <a href=\"https:\/\/www.contrado.com\/privacy-cookies\">Privacy Policy<\/a> and <a href=\"https:\/\/www.contrado.com\/terms-conditions\">Terms of Service<\/a> before use.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>contrado-integration-for-woocommerce<\/code> folder to your <code>\/wp-content\/plugins\/<\/code> directory, OR install it directly through the WordPress admin by going to <em>Plugins \u2192 Add New \u2192 Upload Plugin<\/em> (and uploading the <code>.zip<\/code> file).<\/li>\n<li>Activate <strong>Contrado Integration for WooCommerce<\/strong> through <em>Plugins \u2192 Installed Plugins<\/em>.<\/li>\n<li>Go to <strong>WooCommerce \u2192 Settings \u2192 Integrations \u2192 Contrado Integration for WooCommerce<\/strong> and enter:\n\n<ul>\n<li><strong>API Base URL<\/strong> \u2014 your Contrado Helix API endpoint (e.g. <code>https:\/\/api.contrado.app\/helix\/v1<\/code>).<\/li>\n<li><strong>API Key<\/strong> \u2014 your Contrado API key (stored encrypted in the database).<\/li>\n<\/ul><\/li>\n<li>Click <strong>Test Connection<\/strong> to verify your credentials.<\/li>\n<li>Copy the generated <strong>Webhook URL<\/strong> and register it in your Contrado account under <em>API Integration \u2192 Webhook<\/em>.<\/li>\n<li>Navigate to <strong>Contrado<\/strong> in the WordPress admin sidebar and run your first sync.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20work%20without%20woocommerce%3F\"><h3>Does this plugin work without WooCommerce?<\/h3><\/dt>\n<dd><p>No. WooCommerce 8.0 or later must be installed and active.<\/p><\/dd>\n<dt id=\"which%20contrado%20currencies%20are%20supported%3F\"><h3>Which Contrado currencies are supported?<\/h3><\/dt>\n<dd><p>GBP, USD, EUR, AUD, CAD, NZD, AED, JPY, and SEK. For EUR stores, the site locale determines the exact culture code (de-DE, fr-FR, es-ES, etc.).<\/p><\/dd>\n<dt id=\"what%20happens%20to%20products%20removed%20from%20contrado%3F\"><h3>What happens to products removed from Contrado?<\/h3><\/dt>\n<dd><p>On a full catalogue sync, any WooCommerce product not returned by the Contrado API is permanently deleted. A webhook event (<code>ProductDiscontinue<\/code>) will also remove a product immediately when received.<\/p><\/dd>\n<dt id=\"are%20my%20api%20credentials%20stored%20securely%3F\"><h3>Are my API credentials stored securely?<\/h3><\/dt>\n<dd><p>Yes. The API key is encrypted before being stored in the WordPress database using AES-256 encryption derived from the WordPress security keys.<\/p><\/dd>\n<dt id=\"can%20i%20sync%20only%20some%20products%3F\"><h3>Can I sync only some products?<\/h3><\/dt>\n<dd><p>Yes. Use the <strong>Sync by Collection<\/strong> card on the admin page to import products from a single Contrado collection.<\/p><\/dd>\n<dt id=\"does%20large%20catalogues%20cause%20timeouts%3F\"><h3>Does large catalogues cause timeouts?<\/h3><\/dt>\n<dd><p>No. Product sync uses WooCommerce's Action Scheduler to process products in background batches, so timeouts are not an issue regardless of catalogue size.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Fix: updated \"Tested up to\" to WordPress 7.1.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Fix: Plugin URI and Author URI are now distinct as required by WordPress.org guidelines.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fix: removed a duplicate Action Scheduler hook registration that could run order retry submissions twice.<\/li>\n<li>Fix: removed a dead Action Scheduler hook referencing a non-existent method.<\/li>\n<li>Fix: all inline <code>&lt;script&gt;<\/code>\/<code>&lt;style&gt;<\/code> output replaced with properly enqueued assets (<code>wp_enqueue_script<\/code>\/<code>wp_enqueue_style<\/code>).<\/li>\n<li>Fix: admin notices are now capability- and screen-scoped instead of showing on every wp-admin page.<\/li>\n<li>Fix: corrected outdated Privacy Policy, Terms of Service, and other contrado.com links.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>New: expanded shipping profile coverage \u2014 every destination country now receives accurate, automatically calculated delivery pricing at checkout.<\/li>\n<li>New: quantity-based shipping pricing (base cost + per-item increment, capped at a maximum) now applies consistently across every shipping profile\/region worldwide.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Full product and variation sync with out-of-stock hiding.<\/li>\n<li>Order submission and status sync.<\/li>\n<li>Webhook receiver for real-time stock, design, and order status updates.<\/li>\n<li>Tabbed admin UI with live progress bar and sync statistics.<\/li>\n<li>Top-level admin menu with branded icon.<\/li>\n<li>Discontinued product auto-deletion on full sync.<\/li>\n<li>HPOS (High-Performance Order Storage) compatibility.<\/li>\n<\/ul>","raw_excerpt":"Sync Contrado print-on-demand products, collections, and orders with your WooCommerce store.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/354292","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=354292"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/contrado"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=354292"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=354292"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=354292"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=354292"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=354292"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=354292"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}