{"id":382342,"date":"2026-10-07T03:30:48","date_gmt":"2026-10-07T03:30:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/apparelhub-shipping\/"},"modified":"2026-10-07T03:30:12","modified_gmt":"2026-10-07T03:30:12","slug":"apparelhub-shipping","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/apparelhub-shipping\/","author":23580845,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.3","stable_tag":"1.0.3","tested":"7.1.3","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"ApparelHub Shipping","header_author":"ApparelHub","header_description":"Live shipping rates at checkout for ApparelHub products. Printful items are auto calculated from live rates; Printify items use a flat rate you configure in ApparelHub. A configurable flat fallback keeps checkout working if the rate service is briefly unreachable.","assets_banners_color":"69747d","last_updated":"2026-10-07 03:30:12","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/ApparelHub-AI\/apparelhub-woocommerce-plugin","header_author_uri":"https:\/\/apparelhub.ai","rating":0,"author_block_rating":0,"active_installs":0,"downloads":106,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.3":{"tag":"1.0.3","author":"apparelhub","date":"2026-10-07 03:30:12","revision":3731814}},"upgrade_notice":{"1.0.3":"<p>Housekeeping release with no change in behaviour. Safe to update.<\/p>","1.0.2":"<p>Fixes free shipping being quoted for products ApparelHub could not match. Recommended for all users.<\/p>","1.0.1":"<p>Fixes rate requests for merchants who are not on an API-enabled plan. Recommended for all users.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3731815,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3731815,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3731815,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3731815,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.3"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[13075,51090,146473,3546,286],"plugin_category":[45],"plugin_contributors":[284790],"plugin_business_model":[],"class_list":["post-382342","plugin","type-plugin","status-publish","hentry","plugin_tags-print-on-demand","plugin_tags-printful","plugin_tags-printify","plugin_tags-shipping","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-apparelhub","plugin_committers-apparelhub"],"banners":{"banner":"https:\/\/ps.w.org\/apparelhub-shipping\/assets\/banner-772x250.png?rev=3731815","banner_2x":"https:\/\/ps.w.org\/apparelhub-shipping\/assets\/banner-1544x500.png?rev=3731815","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/apparelhub-shipping\/assets\/icon-128x128.png?rev=3731815","icon_2x":"https:\/\/ps.w.org\/apparelhub-shipping\/assets\/icon-256x256.png?rev=3731815","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>If you sell print-on-demand products from more than one fulfillment provider in a single WooCommerce store, shipping gets awkward. Each provider prices it differently, and WooCommerce has one shipping table.<\/p>\n\n<p>This plugin gives each provider the right treatment at checkout:<\/p>\n\n<ul>\n<li><strong>Printful items<\/strong> are priced with live, automatically calculated shipping.<\/li>\n<li><strong>Printify items<\/strong> use a flat rate you set once in your ApparelHub dashboard.<\/li>\n<\/ul>\n\n<p>You manage the per-provider rules in ApparelHub, so you never edit code or maintain rate tables inside WordPress. Change a rate in one place and every connected store picks it up.<\/p>\n\n<p><strong>Checkout keeps working even when the rate service does not.<\/strong> If ApparelHub is briefly unreachable, the plugin falls back to a flat rate you configure per shipping zone, so a customer is never blocked from completing an order. Orders that used the fallback are flagged in ApparelHub so you can review them.<\/p>\n\n<h4>What you need<\/h4>\n\n<p>This plugin is a connector for the ApparelHub platform. It requires an ApparelHub account with a connected WooCommerce store, and it will not return rates without one. The per-provider shipping rules all live in your ApparelHub dashboard.<\/p>\n\n<h4>What it does not do<\/h4>\n\n<p>This plugin is shipping only. Tax is handled by WooCommerce automated tax, configured to your own registrations. The plugin does not create products, sync inventory, or process payments.<\/p>\n\n<h4>Compatibility<\/h4>\n\n<ul>\n<li>High Performance Order Storage (HPOS) compatible.<\/li>\n<li>Cart and Checkout Blocks compatible.<\/li>\n<li>Works alongside other shipping methods in the same zone.<\/li>\n<\/ul>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to the ApparelHub API to calculate shipping rates. It will not function without this connection, because the per-provider shipping rules live in your ApparelHub account rather than in WordPress.<\/p>\n\n<p><strong>Service:<\/strong> ApparelHub, operated by ApparelHub.AI, LLC.\n<strong>Endpoint:<\/strong> https:\/\/api.apparelhub.ai<\/p>\n\n<p>The plugin contacts this service in exactly two situations.<\/p>\n\n<p><strong>1. Connection test.<\/strong> When an administrator clicks \"Test connection\" on the WooCommerce &gt; Settings &gt; ApparelHub screen, the plugin sends a request to <code>\/integrations\/woocommerce\/ping<\/code>. The only data sent is your store's ApparelHub shipping token, so the service can confirm the token is valid.<\/p>\n\n<p><strong>2. Shipping rate quote.<\/strong> When a customer reaches checkout and the ApparelHub Shipping method is active for their zone, the plugin sends a request to <code>\/integrations\/woocommerce\/shipping-rates<\/code>. The data sent is:<\/p>\n\n<ul>\n<li>The shipping destination: country, state or region, postcode, and city.<\/li>\n<li>The cart contents: the SKU and quantity of each physical item. Virtual and downloadable products are excluded.<\/li>\n<li>The store's currency code.<\/li>\n<li>Your store's ApparelHub shipping token.<\/li>\n<\/ul>\n\n<p><strong>Data that is never sent:<\/strong> the customer's name, street address, email address, phone number, and any payment information. The plugin sends only the partial destination listed above, which is the minimum needed to price a shipment.<\/p>\n\n<p>Rate quotes are cached in your own WordPress database for a configurable number of minutes (10 by default, and you can set it to 0 to disable caching). Caching reduces how often destination data leaves your site during a checkout session.<\/p>\n\n<p>Your use of the ApparelHub service is governed by its terms and privacy policy:<\/p>\n\n<ul>\n<li>Terms of Service: https:\/\/apparelhub.ai\/terms<\/li>\n<li>Privacy Policy: https:\/\/apparelhub.ai\/privacy<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload and activate the plugin (Plugins &gt; Add New &gt; Upload Plugin), or install it from the WordPress plugin directory.<\/li>\n<li>Go to WooCommerce &gt; Settings &gt; ApparelHub, paste your shipping token, and click Test connection.<\/li>\n<li>Go to WooCommerce &gt; Settings &gt; Shipping, open the zone you want to use, and add the ApparelHub Shipping method.<\/li>\n<li>Set the flat fallback amounts on that zone. These are only used if the rate service cannot be reached.<\/li>\n<\/ol>\n\n<p>Your shipping token is in your ApparelHub dashboard under your store's shipping settings. The bundled docs\/INSTALL.md has a full walkthrough.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20an%20apparelhub%20account%3F\"><h3>Do I need an ApparelHub account?<\/h3><\/dt>\n<dd><p>Yes. The plugin is a connector to the ApparelHub platform, and the per-provider shipping rules it applies are configured there. Without a connected account and a shipping token, the plugin cannot return rates.<\/p><\/dd>\n<dt id=\"does%20this%20handle%20tax%3F\"><h3>Does this handle tax?<\/h3><\/dt>\n<dd><p>No. Tax is handled by WooCommerce automated tax, configured to your own registrations. This plugin is shipping only.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20apparelhub%20cannot%20be%20reached%20at%20checkout%3F\"><h3>What happens if ApparelHub cannot be reached at checkout?<\/h3><\/dt>\n<dd><p>The plugin uses the flat fallback rate you configured on that shipping zone, so the customer can still complete their order. Orders that used the fallback are flagged in ApparelHub for review. You can also tune how long the plugin waits before giving up, in the zone's method settings.<\/p><\/dd>\n<dt id=\"where%20do%20i%20set%20the%20printful%20and%20printify%20rates%3F\"><h3>Where do I set the Printful and Printify rates?<\/h3><\/dt>\n<dd><p>In your ApparelHub dashboard, under your store's shipping settings. The plugin reads those rules at checkout, so you never maintain a rate table in WordPress.<\/p><\/dd>\n<dt id=\"what%20customer%20data%20is%20sent%20to%20apparelhub%3F\"><h3>What customer data is sent to ApparelHub?<\/h3><\/dt>\n<dd><p>Only the country, state, postcode and city of the shipping destination, plus the SKU and quantity of each item and your store currency. No name, street address, email, phone or payment data is ever sent. See the External Services section above for the full detail.<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20alongside%20other%20shipping%20methods%3F\"><h3>Can I use this alongside other shipping methods?<\/h3><\/dt>\n<dd><p>Yes. Add it to a zone like any other WooCommerce shipping method. If you offer other options in the same zone, the customer sees them all.<\/p><\/dd>\n<dt id=\"is%20it%20compatible%20with%20hpos%20and%20the%20checkout%20blocks%3F\"><h3>Is it compatible with HPOS and the checkout blocks?<\/h3><\/dt>\n<dd><p>Yes. The plugin declares compatibility with High Performance Order Storage and with the Cart and Checkout Blocks.<\/p><\/dd>\n<dt id=\"does%20it%20work%20if%20my%20store%20has%20products%20from%20only%20one%20provider%3F\"><h3>Does it work if my store has products from only one provider?<\/h3><\/dt>\n<dd><p>Yes. The per-provider logic applies to whichever provider your products come from.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>The Test connection button's script now loads as a proper enqueued file instead of inline in the page.<\/li>\n<li>Remove the manual translation loader; WordPress loads translations for directory-hosted plugins automatically.<\/li>\n<li>Declare WooCommerce as a required plugin, so WordPress 6.5+ prompts for it before activation.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fix: items ApparelHub could not match to one of its products were quoted free shipping. They are now charged the flat fallback rate, and the unmatched SKUs are written to the debug log so you can correct them.<\/li>\n<li>Document the ApparelHub API connection in full, including exactly what data is sent and when.<\/li>\n<li>Refresh tested-up-to versions for current WordPress and WooCommerce.<\/li>\n<li>Expand the installation steps and FAQ.<\/li>\n<li>Rename the plugin to ApparelHub Shipping.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Point the shipping endpoints at the public per-store-token path so they work for merchants on any plan (the previous path required an API-enabled tier).<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: live Printful rates and flat Printify rate at WooCommerce checkout, with a flat fallback.<\/li>\n<\/ul>","raw_excerpt":"Live shipping rates at checkout for print-on-demand products, with the right pricing rule per provider and a flat fallback so checkout never breaks.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/382342","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=382342"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/apparelhub"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=382342"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=382342"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=382342"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=382342"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=382342"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=382342"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}