{"id":381700,"date":"2026-10-14T05:31:21","date_gmt":"2026-10-14T05:31:21","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/rau-bol-com-order-sync-for-woocommerce\/"},"modified":"2026-10-15T12:16:55","modified_gmt":"2026-10-15T12:16:55","slug":"order-sync-with-bol-com-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/order-sync-with-bol-com-for-woocommerce\/","author":20920645,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.3","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"RAU Order Sync with bol.com for WooCommerce","header_author":"Raja Aman Ullah","header_description":"Import bol.com (Netherlands & Belgium) orders into WooCommerce as native orders, ship them with transporter and tracking, cancel order items, and push stock to your bol offers.","assets_banners_color":"c5cad1","last_updated":"2026-10-15 12:16:55","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/rajaamanullah.com\/product\/bol-orders-sync\/","header_author_uri":"https:\/\/rajaamanullah.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":62,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"rajaamanullah","date":"2026-10-15 12:16:55","revision":3748420}},"upgrade_notice":{"1.0.0":"<p>First release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3745389,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3745389,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3745389,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3745389,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"bol.com orders imported into WooCommerce as native orders.","2":"The bol.com box on the order screen: bol order ID, transporter, track &amp; trace and shipment.","3":"Connecting your bol seller account with Retailer API client credentials.","4":"Order, shipment and stock settings: statuses, default transporter and hourly stock sync.","5":"The sync log, filterable by level, with links to the related orders.","6":"The status screen: connection, sync schedule and recent errors at a glance."}},"plugin_section":[262246],"plugin_tags":[148154,13482,260076,65950,286],"plugin_category":[45],"plugin_contributors":[279604],"plugin_business_model":[],"class_list":["post-381700","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-bol","plugin_tags-bol-com","plugin_tags-marketplace-integration","plugin_tags-order-sync","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-rajaamanullah","plugin_committers-rajaamanullah"],"banners":{"banner":"https:\/\/ps.w.org\/order-sync-with-bol-com-for-woocommerce\/assets\/banner-772x250.png?rev=3745389","banner_2x":"https:\/\/ps.w.org\/order-sync-with-bol-com-for-woocommerce\/assets\/banner-1544x500.png?rev=3745389","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/order-sync-with-bol-com-for-woocommerce\/assets\/icon-128x128.png?rev=3745389","icon_2x":"https:\/\/ps.w.org\/order-sync-with-bol-com-for-woocommerce\/assets\/icon-256x256.png?rev=3745389","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><a href=\"https:\/\/rajaamanullah.com\/product\/bol-orders-sync\/\">RAU Order Sync with bol.com for WooCommerce<\/a> is a free bol.com WooCommerce integration for sellers who want to run their bol sales from the same place as their own web shop.<\/p>\n\n<p>bol is the largest online marketplace in the Netherlands and Belgium. According to bol's own figures it has around 14 million active customers and more than 43,000 sales partners. If you sell there and also run a WooCommerce store, you know the double work: copying orders across by hand, typing tracking numbers into the Seller Dashboard, and correcting stock after something sells out on one channel but not the other.<\/p>\n\n<p>This plugin connects your WooCommerce store to your bol seller account through the official bol Retailer API. Open bol orders arrive in WooCommerce as normal orders. You ship them the way you already ship everything else, and the plugin creates the shipment on bol with the transporter and tracking number. Stock flows the other way, from WooCommerce to your bol offers, so one stock figure drives both channels.<\/p>\n\n<p>It is deliberately focused: orders, shipments and stock, without a middleware subscription, an order cap or a separate dashboard to log into.<\/p>\n\n<h4>Import bol orders into WooCommerce<\/h4>\n\n<ul>\n<li><strong>Automatic order import every 15 minutes<\/strong> \u2014 each open bol order becomes a native WooCommerce order with line items, prices, shipment and billing addresses, and a pickup-point flag.<\/li>\n<li><strong>FBR and FBB<\/strong> \u2014 import orders you ship yourself (fulfilled by retailer), orders shipped by bol (fulfilled by bol), or both.<\/li>\n<li><strong>Products matched sensibly<\/strong> \u2014 on your own offer reference (usually your SKU) first, then on EAN. Unmatched items are still imported as placeholder lines with a warning note, so nothing is lost silently.<\/li>\n<li><strong>No duplicate orders<\/strong> \u2014 imports are keyed on the bol order ID, so a repeat sync never creates a second copy.<\/li>\n<li><strong>Customer cancellation requests are flagged<\/strong> on import, so you see them before you pack the order.<\/li>\n<\/ul>\n\n<h4>Ship from WooCommerce, update bol automatically<\/h4>\n\n<ul>\n<li><strong>Create shipments on bol<\/strong> when the WooCommerce order reaches the status you choose, with the transporter code and tracking number.<\/li>\n<li><strong>Transporter mapping for Dutch and Belgian carriers<\/strong> \u2014 PostNL, DHL, DPD, bpost, UPS, FedEx and GLS are mapped to bol's transporter codes automatically.<\/li>\n<li><strong>Works with shipment-tracking plugins<\/strong> \u2014 tracking numbers already added by popular shipment-tracking plugins are picked up, so there is nothing to type twice.<\/li>\n<li><strong>Per-order control<\/strong> \u2014 set a default transporter in the settings and override it on any order.<\/li>\n<li><strong>Cancel order items on bol<\/strong> with a proper reason code when you cancel the order in WooCommerce.<\/li>\n<\/ul>\n\n<h4>Sync WooCommerce stock to bol offers<\/h4>\n\n<ul>\n<li><strong>Hourly stock push<\/strong> from WooCommerce to your bol offers, so an item that sells out in your store stops selling on bol too.<\/li>\n<li><strong>No heavy offer export<\/strong> \u2014 the plugin learns each product's bol offer ID from the orders it imports, so products that have been ordered at least once are kept in stock sync.<\/li>\n<li><strong>Batched safely<\/strong> \u2014 stock is sent in batches that stay inside PHP's execution time and bol's rate limits. Each run carries on where the last one stopped, so the whole catalogue is covered.<\/li>\n<\/ul>\n\n<h4>See what happened<\/h4>\n\n<ul>\n<li><strong>Sync log<\/strong> with raw API detail for troubleshooting.<\/li>\n<li><strong>Status screen<\/strong> showing the connection, the last and next sync, and recent errors.<\/li>\n<li><strong>Dashboard widget<\/strong> so problems are visible without opening the settings.<\/li>\n<\/ul>\n\n<h4>Built properly<\/h4>\n\n<ul>\n<li><strong>HPOS-native<\/strong> (High-Performance Order Storage) \u2014 WooCommerce CRUD throughout.<\/li>\n<li><strong>Correct OAuth2 handling with token caching.<\/strong> bol issues very short-lived tokens (about 5 minutes) and warns that requesting one per API call will get your IP banned. This plugin caches the token and reuses it until just before it expires, refreshing it transparently on a 401.<\/li>\n<li>Sends the versioned media type (<code>application\/vnd.retailer.v10+json<\/code>) that bol's API versioning requires.<\/li>\n<li>Understands bol's <code>violations<\/code> error format, so failures come back as readable messages instead of bare status codes.<\/li>\n<li>Rate-limit aware, honouring <code>Retry-After<\/code>; uses Action Scheduler when available and WP-Cron otherwise.<\/li>\n<li>The Client Secret is stored encrypted and never written to the log.<\/li>\n<li>Translation-ready and written to the WordPress coding standards.<\/li>\n<\/ul>\n\n<h4>Who it is for<\/h4>\n\n<ul>\n<li>Dutch and Belgian WooCommerce shops that also sell on bol.<\/li>\n<li>Sellers elsewhere in Europe who sell to Dutch and Belgian buyers through bol.<\/li>\n<li>Small and medium sellers who want orders, shipments and stock in one place without a multichannel subscription.<\/li>\n<li>Developers and agencies who need a clean, readable bol Retailer API integration to build on.<\/li>\n<\/ul>\n\n<h4>bol.com koppeling voor WooCommerce (Nederlands)<\/h4>\n\n<p>Gratis plugin die je WooCommerce-webshop koppelt aan je bol-verkopersaccount via de offici\u00eble bol Retailer API. Openstaande bol-bestellingen worden elke 15 minuten automatisch als gewone WooCommerce-bestellingen ge\u00efmporteerd. Zending en track &amp; trace gaan terug naar bol zodra je de bestelling verzendt, en voorraad wordt elk uur vanuit WooCommerce naar je bol-aanbiedingen gestuurd. Ondersteunt PostNL, DHL, DPD, bpost, UPS, FedEx en GLS, FBR- en FBB-bestellingen en annuleringen met reden. De plugin is in het Engels en klaar voor vertaling.<\/p>\n\n<h4>A note on scope<\/h4>\n\n<p>This plugin is orders-first by design: it syncs orders, shipments and stock, and leaves offer creation and content to the bol Seller Dashboard. Everything described above is included and fully functional. There are no licence keys, no order or product quotas, no time limits and nothing reserved for a paid version.<\/p>\n\n<h4>Documentation and support<\/h4>\n\n<p>Documentation, setup guides and support are available on the developer's website: <a href=\"https:\/\/rajaamanullah.com\/\">rajaamanullah.com<\/a>. For questions about this plugin, visit the <a href=\"https:\/\/rajaamanullah.com\/product\/bol-orders-sync\/\">plugin page<\/a> or use the wordpress.org support forum.<\/p>\n\n<h4>Disclaimer<\/h4>\n\n<p>This is an independent plugin. It is not affiliated with, endorsed by or sponsored by bol.com or WooCommerce. \"bol.com\" and \"WooCommerce\" are used here only to describe the services this plugin works with.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the bol.com Retailer API to synchronise orders, shipments and stock between your WooCommerce store and your bol seller account. The connection is required for the plugin to do anything, and it is only made after you create your own API client credentials in the bol Seller Dashboard and enter them in the plugin settings.<\/p>\n\n<p>It contacts these endpoints:<\/p>\n\n<ul>\n<li><code>login.bol.com<\/code> - to exchange your client credentials for an access token. bol issues short-lived tokens, so this is called whenever the cached token is close to expiry.<\/li>\n<li><code>api.bol.com<\/code> - to read your open orders and offers, to create shipments, to cancel order items, and to update offer stock.<\/li>\n<\/ul>\n\n<p><strong>What is sent:<\/strong> your client ID and the signed token request, the bol order, order-item and offer identifiers being acted on, and - when you ship an order - the transporter code and tracking number you entered in WooCommerce. Cancellations send the order item ID and a reason code. Stock updates send the offer ID and the quantity. No buyer names, addresses or contact details are sent to bol; buyer data flows from bol into your store, not back out.<\/p>\n\n<p><strong>When:<\/strong> on the scheduled order sync, on the scheduled stock push, when an access token is refreshed, and when you ship, cancel or re-sync an order in wp-admin.<\/p>\n\n<p>The service is operated by bol.com, and your use of it is governed by their terms:<\/p>\n\n<ul>\n<li>bol.com Developer Portal: https:\/\/developers.bol.com\/en\/<\/li>\n<li>Ecosystem Terms &amp; Conditions: https:\/\/developers.bol.com\/en\/ecosystem\/terms-conditions-EN\/<\/li>\n<li>Privacy statement for professional sellers: https:\/\/partnerplatform.bol.com\/en\/sdp\/privacy-statement-professional-partners-bol<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>In your WordPress admin go to <strong>Plugins \u2192 Add New<\/strong>, search for \"RAU Order Sync with bol.com\", then install and activate it. WooCommerce must be active.<\/li>\n<li>In the bol <strong>Seller Dashboard<\/strong> open <em>Instellingen \u2192 Diensten \u2192 API Instellingen<\/em>.<\/li>\n<li>Fill in the technical contact details \u2014 bol requires this before granting API access.<\/li>\n<li>Create <strong>Client Credentials<\/strong> for the Retailer API.<\/li>\n<li>In WordPress go to <strong>WooCommerce \u2192 bol.com Sync<\/strong>, paste the Client ID and Client Secret, and save.<\/li>\n<li>Press <strong>Test connection<\/strong>, then tick <strong>Enable syncing<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20connect%20woocommerce%20to%20bol.com%3F\"><h3>How do I connect WooCommerce to bol.com?<\/h3><\/dt>\n<dd><p>Create Client Credentials for the Retailer API in the bol Seller Dashboard (Instellingen \u2192 Diensten \u2192 API Instellingen), paste the Client ID and Client Secret into WooCommerce \u2192 bol.com Sync, press Test connection and tick Enable syncing.<\/p><\/dd>\n<dt id=\"is%20it%20free%3F\"><h3>Is it free?<\/h3><\/dt>\n<dd><p>Yes. Everything described on this page is free and fully functional, with no order limits, product limits, time limits or licence keys. You only need your own bol seller account and API credentials, which bol provides at no cost.<\/p><\/dd>\n<dt id=\"how%20often%20are%20bol%20orders%20imported%3F\"><h3>How often are bol orders imported?<\/h3><\/dt>\n<dd><p>Every 15 minutes. You can also run an order sync manually from the plugin screen at any time.<\/p><\/dd>\n<dt id=\"what%20is%20the%20difference%20between%20fbr%20and%20fbb%3F\"><h3>What is the difference between FBR and FBB?<\/h3><\/dt>\n<dd><p>FBR (fulfilled by retailer) orders are the ones you pack and ship yourself \u2014 those are what you normally want to import. FBB (fulfilled by bol) orders are shipped from bol's warehouse. You can choose either or both.<\/p><\/dd>\n<dt id=\"how%20are%20products%20matched%3F\"><h3>How are products matched?<\/h3><\/dt>\n<dd><p>First on the <strong>offer reference<\/strong> you set on your bol offer (usually your SKU), then on <strong>EAN<\/strong>. Unmatched items are still imported as placeholder lines with a warning note, so nothing is lost silently.<\/p><\/dd>\n<dt id=\"does%20it%20create%20duplicate%20orders%3F\"><h3>Does it create duplicate orders?<\/h3><\/dt>\n<dd><p>No. Imports are keyed on the bol order ID.<\/p><\/dd>\n<dt id=\"can%20i%20choose%20the%20transporter%3F\"><h3>Can I choose the transporter?<\/h3><\/dt>\n<dd><p>Yes. Set a default transporter in the settings, and override it per order on the order edit screen. Codes for PostNL, DHL, DPD, bpost, UPS, FedEx and GLS are included.<\/p><\/dd>\n<dt id=\"do%20i%20have%20to%20type%20tracking%20numbers%20twice%3F\"><h3>Do I have to type tracking numbers twice?<\/h3><\/dt>\n<dd><p>No. If a shipment-tracking plugin has already stored the tracking number on the order, it is read automatically. Otherwise enter it once on the order screen.<\/p><\/dd>\n<dt id=\"can%20it%20cancel%20orders%20on%20bol%3F\"><h3>Can it cancel orders on bol?<\/h3><\/dt>\n<dd><p>Yes. When you cancel an order in WooCommerce, the order items are cancelled on bol with a reason code.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20a%20customer%20asks%20bol%20to%20cancel%3F\"><h3>What happens when a customer asks bol to cancel?<\/h3><\/dt>\n<dd><p>The cancellation request is flagged on the WooCommerce order when it is imported, so you see it before you ship.<\/p><\/dd>\n<dt id=\"why%20does%20stock%20sync%20say%20no%20offers%20are%20known%3F\"><h3>Why does stock sync say no offers are known?<\/h3><\/dt>\n<dd><p>bol addresses stock by <em>offer ID<\/em>, and mapping every SKU to an offer ID requires an asynchronous offer export. This plugin learns offer IDs from the orders it imports instead of running that export, so run an order sync first \u2014 products that have been ordered at least once will then be kept in stock sync.<\/p><\/dd>\n<dt id=\"i%20got%20an%20ip%20ban%20warning%20from%20bol.%20why%3F\"><h3>I got an IP ban warning from bol. Why?<\/h3><\/dt>\n<dd><p>bol bans IPs that request an access token on every API call. This plugin caches the token and reuses it, which is the behaviour bol asks for. If you also run other bol integrations from the same server, make sure they cache too.<\/p><\/dd>\n<dt id=\"is%20my%20bol%20client%20secret%20safe%3F\"><h3>Is my bol Client Secret safe?<\/h3><\/dt>\n<dd><p>The Client Secret is stored encrypted in your database and is never written to the sync log.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20hpos%3F\"><h3>Does it work with HPOS?<\/h3><\/dt>\n<dd><p>Yes. The plugin uses the WooCommerce CRUD API throughout and declares compatibility with High-Performance Order Storage.<\/p><\/dd>\n<dt id=\"does%20it%20create%20offers%20or%20listings%20on%20bol%3F\"><h3>Does it create offers or listings on bol?<\/h3><\/dt>\n<dd><p>No. The plugin is orders-first: it imports orders, creates shipments and cancellations, and pushes stock to offers you already have. Offer creation and content stay in the bol Seller Dashboard.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: OAuth2 with token caching, order import with reference\/EAN matching, shipment creation with transporter and tracking, order item cancellation with reason codes, stock push, sync log, status screen, dashboard widget, HPOS support.<\/li>\n<\/ul>","raw_excerpt":"bol.com WooCommerce integration: import bol orders into WooCommerce, create shipments with tracking, cancel items and push stock to your offers.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/381700","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=381700"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/rajaamanullah"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=381700"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=381700"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=381700"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=381700"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=381700"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=381700"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}