{"id":322862,"date":"2026-06-24T13:59:50","date_gmt":"2026-06-24T13:59:50","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/holio-shipping\/"},"modified":"2026-07-29T13:06:54","modified_gmt":"2026-07-29T13:06:54","slug":"holio-shipping","status":"publish","type":"plugin","link":"https:\/\/kir.wordpress.org\/plugins\/holio-shipping\/","author":23510782,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.5","stable_tag":"1.0.5","tested":"7.0.2","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"Holio Shipping","header_author":"Holio","header_description":"WooCommerce shipping integration with Profrakt delivery system (Bring, PostNord, HeltHjem, UPS and more)","assets_banners_color":"cfc9f7","last_updated":"2026-07-29 13:06:54","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/holio.ai\/","header_plugin_uri":"","header_author_uri":"https:\/\/holio.ai","rating":0,"author_block_rating":0,"active_installs":0,"downloads":243,"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":"holioshipping","date":"2026-06-26 09:52:45"},"1.0.4":{"tag":"1.0.4","author":"holioshipping","date":"2026-07-16 11:28:01"},"1.0.5":{"tag":"1.0.5","author":"holioshipping","date":"2026-07-29 13:06:54"}},"upgrade_notice":{"1.0.0":"<p>Initial public release of Holio Shipping for WooCommerce. Requires Profrakt API account.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3584886,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3584886,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3584886,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3584886,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.3","1.0.4","1.0.5"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Setup tab - Configure API key and order processing settings","2":"Locations tab - Manage warehouse locations from your Profrakt account","3":"Shipping Options tab - Configure carrier services and pricing rules","4":"Checkout - Customer selects shipping method and pickup point","5":"Order admin - Create shipments and print labels from order page","6":"Shipping method configuration - Set up pricing rules and filters"}},"plugin_section":[],"plugin_tags":[5143,3808,3546,5139,286],"plugin_category":[45],"plugin_contributors":[268730],"plugin_business_model":[],"class_list":["post-322862","plugin","type-plugin","status-publish","hentry","plugin_tags-carriers","plugin_tags-labels","plugin_tags-shipping","plugin_tags-shipping-rates","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-holioshipping","plugin_committers-holioshipping"],"banners":{"banner":"https:\/\/ps.w.org\/holio-shipping\/assets\/banner-772x250.png?rev=3584886","banner_2x":"https:\/\/ps.w.org\/holio-shipping\/assets\/banner-1544x500.png?rev=3584886","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/holio-shipping\/assets\/icon-128x128.png?rev=3584886","icon_2x":"https:\/\/ps.w.org\/holio-shipping\/assets\/icon-256x256.png?rev=3584886","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Holio Shipping connects your WooCommerce store to the Profrakt shipping platform, giving you access to multiple Nordic and international carriers through a single integration. Manage shipping rates, pickup points, label printing, and returns all from your WordPress admin.<\/p>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li><strong>Multi-Carrier Support<\/strong> - Get real-time shipping rates from Bring, PostNord, HeltHjem, UPS, DHL, Porterbuddy, and Instabox<\/li>\n<li><strong>Full NVIT Customs Support<\/strong> - Complete integration with Norwegian customs declaration system (NVIT) for international shipments<\/li>\n<li><strong>Pickup Point Selection<\/strong> - Let customers choose convenient pickup locations during checkout<\/li>\n<li><strong>Multi-Warehouse Operations<\/strong> - Assign products to different warehouse locations and ship from multiple origins<\/li>\n<li><strong>Automated Label Creation<\/strong> - Generate shipping labels automatically when orders are placed<\/li>\n<li><strong>Direct Label Printing<\/strong> - Print labels directly to Profrakt-registered printers<\/li>\n<li><strong>Return Shipments<\/strong> - Create return labels with QR codes or PDF downloads<\/li>\n<li><strong>WooCommerce Blocks Compatible<\/strong> - Works with both Classic Checkout and Checkout Blocks<\/li>\n<li><strong>Flexible Pricing Rules<\/strong> - Set fixed prices, markups, percentage adjustments, and free shipping thresholds<\/li>\n<li><strong>Weight &amp; Dimension Filtering<\/strong> - Restrict shipping methods based on package size and weight<\/li>\n<li><strong>Country &amp; ZIP Code Rules<\/strong> - Limit shipping options by destination<\/li>\n<li><strong>REST API Support<\/strong> - Full API for headless and custom implementations<\/li>\n<\/ul>\n\n<h4>Requirements<\/h4>\n\n<p>This plugin requires a Profrakt API account. Profrakt is a shipping platform by EDI (edi.no) that provides shipping services primarily for Nordic countries.<\/p>\n\n<p><strong>You will need:<\/strong><\/p>\n\n<ul>\n<li>Active Profrakt account with API access<\/li>\n<li>WooCommerce 8.0 or higher<\/li>\n<li>PHP 8.0 or higher<\/li>\n<\/ul>\n\n<h4>Supported Carriers<\/h4>\n\n<ul>\n<li>Bring<\/li>\n<li>PostNord<\/li>\n<li>HeltHjem<\/li>\n<li>UPS<\/li>\n<li>DHL<\/li>\n<li>Porterbuddy<\/li>\n<li>Instabox<\/li>\n<\/ul>\n\n<p><em>Available carriers depend on your Profrakt account agreements<\/em><\/p>\n\n<h4>How It Works<\/h4>\n\n<ol>\n<li><strong>Connect Your Profrakt Account<\/strong> - Enter your API key in the plugin settings<\/li>\n<li><strong>Add Your Warehouse Locations<\/strong> - Import locations from your Profrakt managerships<\/li>\n<li><strong>Configure Shipping Options<\/strong> - Select which carrier services to offer and set pricing rules<\/li>\n<li><strong>Customers Get Real-Time Rates<\/strong> - Shipping costs calculated automatically at checkout<\/li>\n<li><strong>Print Labels Automatically<\/strong> - Labels generated when orders are processed<\/li>\n<\/ol>\n\n<h4>Privacy &amp; External Services<\/h4>\n\n<p>This plugin connects to external services to provide shipping functionality. Below is a detailed description of each service, what data is transmitted, and when:<\/p>\n\n<p><strong>1. Profrakt API (Third-Party Shipping Platform)<\/strong><\/p>\n\n<p>The plugin connects to Profrakt API (by EDI, edi.no) to provide carrier shipping services.<\/p>\n\n<p>What it's used for:\n* Fetch real-time shipping rates from multiple carriers (Bring, PostNord, UPS, DHL, HeltHjem, etc.)\n* Retrieve pickup point locations near customer address\n* Create shipping labels when orders are processed\n* Track shipments and get delivery status<\/p>\n\n<p>When data is sent:\n* During checkout - to calculate shipping rates\n* When customer selects pickup point - to load available locations\n* When order is placed - to create shipping label\n* When tracking shipment - to get delivery updates<\/p>\n\n<p>Data transmitted to Profrakt:\n* Customer shipping address (name, address, postal code, country, phone, email)\n* Package weight and dimensions\n* Order contents and value (for customs declarations on international shipments)<\/p>\n\n<p>Holio Privacy Policy: https:\/\/holio.ai\/privacy-policy\nHolio Terms of Service: https:\/\/holio.ai\/terms-of-service<\/p>\n\n<p><strong>2. Holio Shipping Middleware (Backend Configuration Service)<\/strong><\/p>\n\n<p>The plugin connects to Holio's middleware API (hosted on Google Cloud Run) to manage your shipping configuration.<\/p>\n\n<p>What it's used for:\n* Store and retrieve your shipping configuration (warehouse locations, shipping options, pricing rules)\n* Manage multi-warehouse settings\n* Store consignment records (shipment history, tracking numbers)<\/p>\n\n<p>When data is sent:\n* When you configure plugin settings in WordPress admin\n* When orders are created (to store consignment records)\n* When loading shipping options during checkout<\/p>\n\n<p>Data transmitted to Holio middleware:\n* Shop configuration (locations, shipping products, pricing rules, API keys)\n* Consignment records (order IDs, tracking numbers, shipment status)\n* Note: Customer personal data (addresses, names, emails) is NOT sent to middleware - it goes directly to Profrakt API<\/p>\n\n<p>Middleware Service: https:\/\/holio-shipping-middleware-153205309851.europe-west4.run.app\nHolio Privacy Policy: https:\/\/holio.ai\/privacy-policy\nHolio Terms of Service: https:\/\/holio.ai\/terms-of-service<\/p>\n\n<p><strong>3. Holio Subscription (Paid Service)<\/strong><\/p>\n\n<p>Using the shipping features requires an active Holio subscription, managed from the Subscription tab in the plugin. Payments are handled by Stripe; the plugin itself never receives or stores card details - it only opens a Stripe Checkout page and reads back the resulting subscription status.<\/p>\n\n<p>What it's used for:\n* Check whether your shop has an active subscription or trial\n* Show plan details and usage (number of orders and labels)\n* Start, change or cancel a subscription<\/p>\n\n<p>When data is sent:\n* When you open the Subscription tab\n* When you start, change or cancel a subscription\n* When shipping rates are calculated or a shipment is created, to verify the subscription is active<\/p>\n\n<p>Data transmitted:\n* Shop identifier and the email address you enter when subscribing\n* Counts of orders and labels, for usage reporting<\/p>\n\n<p>Note: while no active subscription is found, Holio shipping rates are not offered at checkout. If the subscription status cannot be verified because the service is unreachable, rates keep working.<\/p>\n\n<p>Stripe Privacy Policy: https:\/\/stripe.com\/privacy\nHolio Privacy Policy: https:\/\/holio.ai\/privacy-policy\nHolio Terms of Service: https:\/\/holio.ai\/terms-of-service<\/p>\n\n<p>By using this plugin, you agree to these services' terms and privacy policies. All data transmission uses HTTPS encryption.<\/p>\n\n<h4>Documentation &amp; Support<\/h4>\n\n<ul>\n<li><a href=\"https:\/\/holio.ai\/knowledge-base\/holio-shipping-app-get-started\">Knowledge Base<\/a><\/li>\n<li><a href=\"https:\/\/holio.ai\/knowledge-base\">Documentation<\/a><\/li>\n<\/ul>\n\n<h3>External Services<\/h3>\n\n<p>This plugin relies on the Profrakt API, a third-party service provided by EDI (edi.no).<\/p>\n\n<p><strong>Service:<\/strong> Profrakt API\n<strong>Provider:<\/strong> Holio \/ EDI\n<strong>Website:<\/strong> https:\/\/holio.ai\n<strong>API Documentation:<\/strong> https:\/\/holio.ai\/knowledge-base\n<strong>Privacy Policy:<\/strong> https:\/\/holio.ai\/privacy-policy\n<strong>Terms of Service:<\/strong> https:\/\/holio.ai\/terms-of-service<\/p>\n\n<p><strong>Data Transmission:<\/strong>\nThe plugin transmits the following data to Profrakt API:\n* Shipping addresses (sender and recipient)\n* Package weight and dimensions\n* Order line items (for customs)\n* Customer contact information (name, phone, email)<\/p>\n\n<p><strong>Purpose:<\/strong>\n* Calculate real-time shipping rates\n* Retrieve pickup point locations\n* Create shipping labels and consignments\n* Track shipment status<\/p>\n\n<p><strong>Legal Basis:<\/strong>\nData is transmitted based on the legitimate interest of fulfilling the shipping service requested by the customer.<\/p>\n\n<p>By using this plugin, you acknowledge and agree to Holio's terms of service and privacy policy.<\/p>\n\n<!--section=installation-->\n<h4>Minimum Requirements<\/h4>\n\n<ul>\n<li>WordPress 6.0 or greater<\/li>\n<li>WooCommerce 8.0 or greater<\/li>\n<li>PHP version 8.0 or greater<\/li>\n<li>MySQL version 5.7 or greater OR MariaDB version 10.3 or greater<\/li>\n<\/ul>\n\n<h4>Automatic Installation<\/h4>\n\n<ol>\n<li>Log in to your WordPress dashboard<\/li>\n<li>Navigate to Plugins \u2192 Add New<\/li>\n<li>Search for \"Holio Shipping\"<\/li>\n<li>Click \"Install Now\" and then \"Activate\"<\/li>\n<li>Go to WooCommerce \u2192 Holio Shipping to configure<\/li>\n<\/ol>\n\n<h4>Manual Installation<\/h4>\n\n<ol>\n<li>Download the plugin zip file<\/li>\n<li>Navigate to Plugins \u2192 Add New \u2192 Upload Plugin<\/li>\n<li>Choose the zip file and click \"Install Now\"<\/li>\n<li>Activate the plugin<\/li>\n<li>Go to WooCommerce \u2192 Holio Shipping to configure<\/li>\n<\/ol>\n\n<h4>Configuration<\/h4>\n\n<p><strong>Step 1: API Configuration<\/strong><\/p>\n\n<ol>\n<li>Navigate to WooCommerce \u2192 Holio Shipping<\/li>\n<li>Enter your Profrakt API key (get it from your Profrakt account)<\/li>\n<li>The environment (Sandbox\/Production) is detected automatically<\/li>\n<li>Click \"Save Settings\"<\/li>\n<\/ol>\n\n<p><strong>Step 2: Add Locations<\/strong><\/p>\n\n<ol>\n<li>Go to the \"Locations\" tab<\/li>\n<li>Click \"Add Location\"<\/li>\n<li>Select a managership from your Profrakt account<\/li>\n<li>Optionally assign a printer for direct label printing<\/li>\n<li>Set one location as default for returns<\/li>\n<\/ol>\n\n<p><strong>Step 3: Configure Shipping Options<\/strong><\/p>\n\n<ol>\n<li>Go to the \"Shipping Options\" tab<\/li>\n<li>Click \"Add Shipping Option\"<\/li>\n<li>Select carrier, service, and locations<\/li>\n<li>Configure pricing rules (fixed price, markup, free shipping threshold)<\/li>\n<li>Set visibility filters (weight, dimensions, countries, ZIP codes)<\/li>\n<li>Save and enable the shipping option<\/li>\n<\/ol>\n\n<p><strong>Step 4: Enable Shipping Method<\/strong><\/p>\n\n<ol>\n<li>Go to WooCommerce \u2192 Settings \u2192 Shipping<\/li>\n<li>Click on your shipping zone<\/li>\n<li>Add \"Holio Shipping Method\"<\/li>\n<li>Configure method title and enable it<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20profrakt%20account%3F\"><h3>Do I need a Profrakt account?<\/h3><\/dt>\n<dd><p>Yes, this plugin requires an active Profrakt account with API access. Profrakt is a shipping platform by EDI (edi.no). You can request access through their website.<\/p><\/dd>\n<dt id=\"which%20countries%20are%20supported%3F\"><h3>Which countries are supported?<\/h3><\/dt>\n<dd><p>The plugin works globally, but carrier availability depends on your Profrakt account agreements. Profrakt primarily serves Nordic countries with international shipping options.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20woocommerce%20blocks%3F\"><h3>Does it work with WooCommerce Blocks?<\/h3><\/dt>\n<dd><p>Yes! The plugin is fully compatible with both Classic Checkout and the new WooCommerce Checkout Block.<\/p><\/dd>\n<dt id=\"can%20i%20have%20multiple%20warehouses%3F\"><h3>Can I have multiple warehouses?<\/h3><\/dt>\n<dd><p>Yes! You can add multiple warehouse locations and assign products to specific locations. The plugin automatically splits cart into packages by location and calculates separate shipping for each.<\/p><\/dd>\n<dt id=\"does%20it%20support%20pickup%20points%3F\"><h3>Does it support pickup points?<\/h3><\/dt>\n<dd><p>Yes, customers can select pickup points at checkout for carriers that support this service (Bring, PostNord, etc.).<\/p><\/dd>\n<dt id=\"can%20i%20print%20labels%20directly%3F\"><h3>Can I print labels directly?<\/h3><\/dt>\n<dd><p>Yes, you can print labels directly to Profrakt-registered network printers or download PDF labels.<\/p><\/dd>\n<dt id=\"is%20there%20an%20api%20for%20custom%20integrations%3F\"><h3>Is there an API for custom integrations?<\/h3><\/dt>\n<dd><p>Yes, the plugin provides REST API endpoints for headless and custom implementations.<\/p><\/dd>\n<dt id=\"what%20data%20is%20sent%20to%20external%20services%3F\"><h3>What data is sent to external services?<\/h3><\/dt>\n<dd><p>The plugin sends shipping address, package weight\/dimensions, and order contents to the Profrakt API to calculate shipping rates and create labels. See Privacy &amp; External Services section for details.<\/p><\/dd>\n<dt id=\"how%20do%20i%20get%20support%3F\"><h3>How do I get support?<\/h3><\/dt>\n<dd><p>Visit our <a href=\"https:\/\/holio.ai\/knowledge-base\">Knowledge Base<\/a> for guides and documentation. For specific questions, use the support forum on WordPress.org.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.5 - 2026-07-29<\/h4>\n\n<ul>\n<li>Feature: Added Connection Diagnostics to the Setup tab - checks outbound HTTPS access to the Profrakt API and reports blocked hosts, proxies and plugins filtering requests<\/li>\n<li>Feature: Connection Diagnostics lists every IP address a host resolves to, and blocked hosts are reported with all their addresses plus a note that every one of them must be allowed - hosts behind Cloud Run answer on several addresses, so allowing only one leaves the block in place<\/li>\n<li>Feature: Subscription handling for the Holio service, with plan details and usage on the new Subscription tab<\/li>\n<li>Improvement: \"Add Another Parcels\" in the order screen is now always visible. It used to appear only after using \"Edit shipment\" once, because the parcel limits were read from saved order data instead of the shipping method configuration. When the method cannot carry several parcels the button is disabled and explains why<\/li>\n<li>Fix: Shipping rates are no longer hidden when the Holio service cannot be reached - a network timeout is no longer treated as an inactive subscription<\/li>\n<li>Fix: Checkout no longer fails with a fatal error when the plugin is active but the API key has not been configured yet<\/li>\n<li>Fix: API key validation now reports the actual connection error for each environment instead of only the last one<\/li>\n<\/ul>\n\n<h4>1.0.4 - 2026-07-16<\/h4>\n\n<ul>\n<li>Improvement: API key validation now reports the real reason when the Profrakt API cannot be reached (connection, SSL, or firewall issues) instead of a generic \"Invalid API key\" message<\/li>\n<li>Improvement: Validation errors are logged for easier troubleshooting<\/li>\n<\/ul>\n\n<h4>1.0.3 - 2026-06-24<\/h4>\n\n<ul>\n<li>Fix: Removed subscription-related code for WordPress.org version<\/li>\n<li>Fix: Removed Holio_Subscription_Repository dependency from admin settings<\/li>\n<li>Code Quality: Cleaned up unused AJAX handlers<\/li>\n<li>Compatibility: WordPress.org directory optimized version<\/li>\n<\/ul>\n\n<h4>1.0.2 - 2026-06-22<\/h4>\n\n<ul>\n<li>Security: Enhanced POST data sanitization - added sanitize_textarea_field() before all json_decode() calls<\/li>\n<li>Security: Implemented recursive array sanitization for nested data structures<\/li>\n<li>Security: Fixed boolean sanitization with filter_var(FILTER_VALIDATE_BOOLEAN)<\/li>\n<li>Security: All output properly escaped with absint()\/esc_html()<\/li>\n<li>Feature: Added max rules limit (10 rules per section) to prevent performance issues<\/li>\n<li>Feature: Frontend validation blocks adding rules beyond limit<\/li>\n<li>Feature: Dynamic UI shows \"(max 10 rules)\" in section headers<\/li>\n<li>Code Quality: All WordPress.org Plugin Check issues resolved (0 errors, 0 warnings)<\/li>\n<\/ul>\n\n<h4>1.0.0 - 2026-06-04<\/h4>\n\n<ul>\n<li>Initial public release<\/li>\n<li>Multi-carrier shipping integration (Bring, PostNord, HeltHjem, UPS, DHL, Porterbuddy, Instabox)<\/li>\n<li>Real-time shipping rate calculation from Profrakt API<\/li>\n<li>Pickup point selection at checkout (Classic and Block checkout)<\/li>\n<li>Multi-warehouse operations with cart splitting<\/li>\n<li>Automatic consignment creation<\/li>\n<li>Label printing (PDF download and direct network printing)<\/li>\n<li>Return shipment creation with QR codes<\/li>\n<li>Flexible pricing rules (fixed price, markup, percentage, free shipping threshold)<\/li>\n<li>Weight, dimension, country, and ZIP code filtering<\/li>\n<li>WooCommerce Blocks compatible<\/li>\n<li>REST API support for headless implementations<\/li>\n<li>Automatic package splitting for heavy orders<\/li>\n<li>NVIT customs declaration support<\/li>\n<li>Fallback rules for external order systems<\/li>\n<\/ul>","raw_excerpt":"Multi-carrier shipping plugin integrating Bring, PostNord, HeltHjem, UPS and more through Profrakt API with pickup points and label printing.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/322862","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=322862"}],"author":[{"embeddable":true,"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/holioshipping"}],"wp:attachment":[{"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=322862"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=322862"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=322862"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=322862"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=322862"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=322862"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}