Overslaan naar inhoud
How to Sync Bol.com Orders to Odoo Automatically | ERP2MARKET
Bol.com How-to Guide · March 2025 · 10 min read

How to Sync Bol.com Orders to Odoo Automatically (2025)

Bol.com is the Netherlands' and Belgium's largest marketplace — and for most Dutch Odoo sellers, it's the first integration that needs to work flawlessly. This guide covers the complete Bol.com-to-Odoo setup: API credentials, EAN product mapping, LVB vs FBB fulfilment modes, Dutch and Belgian VAT configuration, and what to check before going live. We also cover the Bol.com-specific quirks that trip up most first-time integrations.

What you need before you start

Before setting up the Bol.com-Odoo integration, confirm you have the following:

  • An active Bol.com seller account — with at least one product listed. API access is available to all Bol.com sellers at no extra cost.
  • Odoo 16, 17 or 18 — Community or Enterprise. Both are supported.
  • Products in Odoo with EAN barcodes set — Bol.com identifies products by EAN. This is the primary matching key for order import. If your Odoo products don't have EANs, set them before starting.
  • Admin access to both Bol.com Seller Dashboard and Odoo.
🟡
Bol.com-specific note: Unlike Amazon, Bol.com identifies all products by EAN — not by a seller-assigned SKU. Your Odoo product records must have the correct EAN barcode set for automatic matching to work. This is the single most important prerequisite for a smooth Bol.com integration.

Step 1 — Generate your Bol.com API credentials

Bol.com uses a simple Client ID + Client Secret API authentication. There's no developer registration process — any active seller can generate API credentials directly from their Seller Dashboard.

Step 1

Generate API credentials in Bol.com Seller Dashboard

Log into your Bol.com Seller Dashboard and navigate to Settings → API.

Click Add new credentials. Give the credential set a descriptive name (e.g. "ERP2MARKET Odoo") and confirm. Bol.com generates:

  • Client ID — your integration identifier
  • Client Secret — your integration secret (shown once — save it immediately)

These credentials are valid for both Bol.com Netherlands (.nl) and Bol.com Belgium (.be) — one set covers both countries.

⚠️
Save your Client Secret immediately. Bol.com only shows the Client Secret once at generation time. If you don't save it, you'll need to generate new credentials. Keep it in a secure password manager before continuing.

Step 2 — Connect Bol.com in ERP2MARKET

Step 2

Add Bol.com as a marketplace connection in Odoo

In Odoo, navigate to ERP2MARKET → Marketplaces → Add New. Select Bol.com from the marketplace list.

Enter your Bol.com API credentials:

  • Client ID
  • Client Secret
  • Select which country(ies) to activate: NL, BE or both

Click Test Connection. ERP2MARKET will verify the credentials against Bol.com's API and confirm the connection is live. If the test fails, double-check that the Client Secret was copied correctly — the most common cause of connection failure.


Step 3 — LVB vs FBB — choose your fulfilment mode

Bol.com uses two fulfilment terminology abbreviations that are the opposite of Amazon's FBA/FBM — which causes constant confusion. Here's the definitive clarification:

Bol.com fulfilment modes
LVB — Logistiek via Bol.com = Amazon FBA
  • Bol.com stores and ships your products from their warehouses
  • You send stock to Bol.com fulfilment centres
  • Bol.com handles picking, packing, shipping and tracking
  • ERP2MARKET imports LVB orders to Odoo — no delivery action required in your Odoo warehouse
  • Tracking is pushed to buyers by Bol.com directly
FBB — Fulfillment by Bot = Amazon FBM
  • You store and ship products from your own warehouse
  • Odoo processes the delivery from your stock
  • ERP2MARKET imports FBB orders to Odoo as sale orders
  • Your Odoo warehouse team picks, packs and ships
  • ERP2MARKET pushes tracking to Bol.com buyer automatically on delivery validation
💡
Running both LVB and FBB? Many Bol.com sellers use LVB as primary fulfilment and FBB as backup when LVB stock runs out. ERP2MARKET handles both order types in the same connection — importing LVB and FBB orders to Odoo through the correct workflow per fulfilment type. Configure which Odoo warehouse handles FBB orders separately from LVB.

Step 4 — EAN mapping to Odoo products

Bol.com identifies every product by EAN (European Article Number — the 13-digit barcode). When a Bol.com order arrives, ERP2MARKET reads the EAN from the order line and matches it to your Odoo product.

Step 4

Set EANs on Odoo products for automatic matching

In Odoo, navigate to each product and set the Barcode field (under the Sales tab or General Information tab depending on your Odoo version) to the correct 13-digit EAN.

For product variants (e.g. colour/size combinations), set the EAN on each product variant individually — not on the product template. Each Bol.com listing has its own EAN at the variant level.

ERP2MARKET matches Bol.com order lines to Odoo products by EAN automatically. If a match isn't found, the order is flagged for manual review — it is never silently lost.

Bulk EAN update approach

If your Odoo catalogue has many products without EANs set, the fastest approach is:

  1. Export your Odoo product list to CSV (Products → Action → Export)
  2. Export your Bol.com active listings from Seller Dashboard
  3. Match by product name or your own internal reference in Excel/Google Sheets
  4. Import the updated EANs back to Odoo via CSV import
⚠️
EAN uniqueness: Each EAN must be unique in Odoo. If the same EAN is set on multiple products or variants, ERP2MARKET will match the first one it finds — which may be incorrect. Audit for duplicate EANs in Odoo before going live.

Step 5 — Dutch and Belgian VAT configuration

Bol.com orders come from both Dutch and Belgian buyers. The VAT treatment is different for each, and must be configured correctly in Odoo's fiscal positions.

Step 5

Configure fiscal positions for NL and BE

In Odoo, go to Accounting → Configuration → Fiscal Positions. Ensure you have fiscal positions set up for:

Bol.com country Buyer country VAT rate VAT name Odoo fiscal position
Bol.com NL Netherlands 21% (standard) / 9% (reduced) BTW Netherlands B2C
Bol.com BE Belgium 21% (standard) / 6% (reduced) BTW / TVA Belgium B2C

ERP2MARKET assigns the fiscal position automatically based on the buyer's delivery country on each imported Bol.com order. Dutch buyers get the Netherlands fiscal position, Belgian buyers get the Belgium fiscal position — without any manual intervention per order.

ℹ️
Dutch reduced VAT rate: The Netherlands has a 9% reduced BTW rate for certain categories — food, books, medication, some sports equipment. If you sell products in these categories on Bol.com, configure the reduced rate on the relevant Odoo products and confirm the fiscal position maps correctly. Your accountant can confirm which of your products qualify for the 9% rate.

Belgian VAT number on invoices

If your Belgian Bol.com buyers are B2B (with a Belgian VAT number), you may need to apply the 0% intra-community supply rule instead of Belgian BTW. This is rare for Bol.com (which is primarily B2C), but worth confirming with your accountant if you have B2B buyers in Belgium.


Step 6 — Configure stock sync to Bol.com

Stock sync pushes your Odoo inventory levels to Bol.com listings in real time. This is critical for sellers who also sell the same stock on other channels — Amazon, their own webshop, Zalando — simultaneously.

Step 6

Set up real-time stock sync from Odoo to Bol.com

In ERP2MARKET's Bol.com connection settings, configure:

  • Stock source location — The Odoo warehouse location(s) that feed your Bol.com FBB listings. (LVB listings don't need stock sync — Bol.com manages LVB inventory separately.)
  • Safety stock buffer — Subtract a buffer from published stock (e.g. publish stock–2) to reduce oversell risk during peak order periods
  • Zero-stock behaviour — When stock hits 0 (or your buffer), listings can be set to 0 availability automatically. Bol.com does not deactivate listings at 0 stock — it shows "not available" and prevents ordering.
  • Sync frequency — ERP2MARKET syncs on every Odoo inventory movement and on a scheduled basis
💡
Bol.com stock update latency: Bol.com's API accepts stock updates but applies them with a short delay on the listing side (typically 1–5 minutes). This is Bol.com's system behaviour — not an ERP2MARKET issue. If you're running very tight stock levels across multiple channels, factor this in when setting your safety buffer.

Step 7 — Tracking push to Bol.com buyers

Bol.com requires sellers to ship FBB orders within the promised delivery window and upload tracking within specific timeframes. Bol.com's seller performance metrics include tracking upload rate — missing deadlines impacts your seller score and visibility.

Step 7

Configure automatic tracking push from Odoo to Bol.com

ERP2MARKET monitors Odoo delivery orders. When a delivery is validated in Odoo (shipped, carrier confirmed), ERP2MARKET reads the carrier tracking number and pushes it to the Bol.com order automatically.

Configuration required:

  • Carrier mapping — Map your Odoo delivery carriers to Bol.com's transporter codes
  • Tracking trigger — Push on Odoo delivery validation (recommended) or on manual confirmation
Carrier Bol.com transporter code Coverage
PostNLTNTNL domestic + international
DHL ParcelDHLNL/BE + EU
DPDDPD-NLNL/BE primary
GLSGLSNL/BE/DE
bpostBPOST_BEBelgium domestic
BudbeeBUDBEENL + selected EU
TrunkrsTRUNKRSNL same-day
OtherOTHERFallback for unlisted carriers
⚠️
PostNL transporter code: Bol.com uses TNT as the transporter code for PostNL — even though PostNL and TNT are now separate companies. This is a legacy naming issue in Bol.com's API. If you use PostNL, map it to TNT in ERP2MARKET. Using POSTNL or another variation will cause tracking push failures.

Step 8 — Test order and go live

Step 8

Run a test order before activating live sync

Bol.com doesn't have a dedicated sandbox environment for sellers, so testing requires a real order. Use a low-value product (under €5) and order it yourself from a second account, or ask a colleague to place the order.

Verify each step:

  • Order appears in ERP2MARKET's import queue within 15 minutes
  • Odoo sale order created with the correct product (matched by EAN), quantity and price
  • Fiscal position applied correctly (NL BTW or BE BTW)
  • Delivery order generated in Odoo
  • Validate the delivery in Odoo with a test tracking number
  • Verify the tracking number appears on the Bol.com order in Seller Dashboard within a few minutes
  • Check that Odoo stock reduced and new stock level pushed to Bol.com listing
Bol.com go-live checklist
  • Bol.com API credentials connected and test passed
  • LVB and/or FBB mode selected correctly
  • EANs set on all active Bol.com products in Odoo (no duplicates)
  • Fiscal positions configured for NL and BE
  • Stock sync active — correct Odoo location selected (FBB only)
  • Carrier codes mapped for all carriers used for Bol.com orders
  • Test order imported correctly with correct EAN match and fiscal position
  • Test tracking pushed to Bol.com order successfully
  • Stock level updated on Bol.com listing after test delivery

Bol.com-specific mistakes to avoid

1. EANs not set (or wrong) in Odoo

The most common Bol.com integration problem. If your Odoo product doesn't have an EAN set — or has the wrong EAN — orders come in and ERP2MARKET can't match them to a product. The order is flagged for review, but it delays fulfilment. Audit all your active Bol.com EANs against your Odoo product records before going live.

2. PostNL mapped to wrong transporter code

As noted above, Bol.com uses TNT for PostNL. Mapping to any other code causes tracking push failures — Bol.com rejects the update. This is one of the most-reported issues from new Bol.com integrations.

3. LVB stock sync enabled

LVB (Bol.com-fulfilled) stock is managed by Bol.com's fulfilment centres, not your Odoo warehouse. Don't enable stock sync for LVB listings — it will overwrite Bol.com's actual fulfilment inventory with your Odoo warehouse stock, causing incorrect stock levels on LVB listings. Stock sync should only be active for FBB listings.

4. Delivery promise not met — Bol.com penalty

Bol.com is strict about delivery promise adherence. When a buyer selects a delivery option (tomorrow, within 2 days, etc.), Bol.com expects the seller to ship by the cut-off time to meet that promise. Make sure your Odoo pick/pack/ship process can meet Bol.com's shipping cut-off times — typically 15:00–17:00 for next-day delivery to NL.

5. Not activating Bol.com Belgium separately

Bol.com NL and Bol.com BE are separate storefronts in the API, but use the same credentials. Many sellers configure only NL and miss Belgian orders — which arrive from a different API endpoint. Make sure both NL and BE are activated in your ERP2MARKET Bol.com connection if you sell to Belgian buyers.


Selling on Bol.com Belgium — what's different

Bol.com Belgium (bol.com/be) is a growing marketplace with a separate Belgian buyer audience. The integration setup is the same as Bol.com NL, but there are a few Belgium-specific considerations:

  • Language: Belgian buyers may receive communications in Dutch (Flemish) or French. Bol.com handles buyer communication language — this doesn't affect your Odoo integration.
  • Belgian VAT: Belgian B2C orders use Belgian BTW at 21% (standard) or 6% (reduced rate for certain categories). Configure a Belgium B2C fiscal position in Odoo as described in Step 5.
  • bpost carrier: For Belgian domestic deliveries, bpost is the primary carrier. Map bpost to Bol.com's BPOST_BE transporter code in ERP2MARKET.
  • Separate seller performance metrics: Bol.com tracks seller performance separately for NL and BE. Belgian buyer satisfaction, tracking rate, and cancellation rate are measured independently.
💡
Single credentials, dual market: One set of Bol.com API credentials covers both NL and BE. In ERP2MARKET, you simply activate both countries on the same connection — no separate credential setup needed for Belgium. This is one of Bol.com's significant advantages over managing separate Amazon EU marketplace accounts.