{"id":60,"date":"2026-10-02T09:00:00","date_gmt":"2026-10-02T07:00:00","guid":{"rendered":"https:\/\/yindle.com\/?p=60"},"modified":"2026-10-02T09:00:00","modified_gmt":"2026-10-02T07:00:00","slug":"afas-voorraad-woocommerce-zonder-overselling","status":"publish","type":"post","link":"https:\/\/yindle.com\/en\/synchronising-afas-stock-with-woocommerce-without-overselling\/","title":{"rendered":"Synchronising AFAS stock with WooCommerce without overselling"},"content":{"rendered":"<p>Reliably synchronising AFAS stock with WooCommerce takes more than regularly copying a number. First decide which stock is sellable, which warehouses supply it and how quickly changes must appear. Then clear item mapping, incremental processing and a recovery route are needed to minimise overselling.<\/p>\n\n<p>No synchronisation can provide an absolute guarantee when several sales channels use the same stock simultaneously. You can, however, substantially reduce the risk of incorrect availability and make it visible when the online store falls behind.<\/p>\n\n<h2>Define sellable stock<\/h2>\n\n<p>Physical stock is not automatically the quantity available for online sale. Reservations, damaged items, incoming goods, safety margins and different warehouses may all affect it. Agree which AFAS value goes to WooCommerce as a business rule.<\/p>\n\n<p>Answer at least these questions:<\/p>\n\n<ul>\n  <li>Which warehouses count towards online store stock?<\/li>\n  <li>Are outstanding orders or reservations already processed in AFAS?<\/li>\n  <li>Can the online store receive zero, a negative quantity or only available\/unavailable?<\/li>\n  <li>Is safety stock needed?<\/li>\n  <li>How are composite products or bundles calculated?<\/li>\n  <li>What happens if an item temporarily cannot be read from AFAS?<\/li>\n<\/ul>\n\n<p>Document the calculation as a business rule. Otherwise, a difference between AFAS and WooCommerce is too quickly treated as a technical fault when the systems may simply display different definitions of stock.<\/p>\n\n<h2>Make item mapping unambiguous<\/h2>\n\n<p>The integration must know which AFAS item belongs to which WooCommerce product or variation. A visible product name is unsuitable: names change and are not always unique. Use a stable item code or SKU and validate duplicate or missing values before publishing stock.<\/p>\n\n<p>Variable products need extra attention. Stock may be tracked per variation while the parent product handles presentation only. For bundles, the sellable quantity may depend on the component with the lowest availability. Include these relationships in the mapping rather than leaving them as separate manual corrections in the online store.<\/p>\n\n<h2>Choose deliberately between intervals and events<\/h2>\n\n<p>Stock can be updated at fixed intervals or after a relevant change. An interval is easier to monitor and can process changed items in batches. Event-driven processing responds faster, but requires reliable events, filtering and handling for missing messages.<\/p>\n\n<p>A practical combination is often appropriate: process changes selectively and periodically check that both systems still match. The periodic check then acts as a safety net for missed or stalled events, rather than replacing real-time processing.<\/p>\n\n<h2>Make processing incremental and traceable<\/h2>\n\n<p>Repeatedly publishing the entire catalogue places unnecessary load on systems and makes errors harder to trace. Where possible, process only items whose stock or relevant composition has changed. Retain enough context for each operation to identify the item, source value and online store result.<\/p>\n\n<p>Distinguish three outcomes:<\/p>\n\n<ol>\n  <li><strong>Updated:<\/strong> WooCommerce has confirmed the new value.<\/li>\n  <li><strong>Skipped:<\/strong> no change was deliberately required, or the item was outside scope.<\/li>\n  <li><strong>Failed:<\/strong> mapping, source data or destination processing requires recovery.<\/li>\n<\/ol>\n\n<p>A technically \u201csuccessful run\u201d means little if hundreds of items were silently skipped. Report counts and reasons for each outcome.<\/p>\n\n<h2>Prevent recovery from creating new errors<\/h2>\n\n<p>A temporarily unreachable online store must not cause stock changes to disappear. Persist the pending change and retry recoverable errors in a controlled way. A permanent error, such as an unknown SKU, should not be retried endlessly. Turn it into a specific administration task.<\/p>\n\n<p>Watch the order of updates too. A delayed old stock value must not overwrite a newer one. Use a source version, modification time or another reliable ordering rule. After an uncertain outcome, check the current online store value if necessary before writing again.<\/p>\n\n<h2>Checkout also determines overselling<\/h2>\n\n<p>Even fast stock updates cannot resolve all concurrency. Two customers may check out the last item almost simultaneously. WooCommerce must therefore reserve stock and process an order atomically itself. Products that also consume delivery capacity or a time slot need a temporary capacity reservation as well.<\/p>\n\n<p>Treat item stock and logistical capacity as separate constraints. A product can be in stock while no delivery option is available, or vice versa. In <a href=\"\/en\/online-store-erp-integration\/\">our guide to a reliable online store\u2013ERP integration<\/a> we explain why these process boundaries must be explicit.<\/p>\n\n<h2>Go-live checklist<\/h2>\n\n<ul>\n  <li>AFAS is demonstrably authoritative for the agreed stock value.<\/li>\n  <li>Warehouses, safety margins and reservations are documented.<\/li>\n  <li>Every active SKU has exactly one valid mapping.<\/li>\n  <li>Variations and compositions have been tested.<\/li>\n  <li>Older updates cannot reverse newer data.<\/li>\n  <li>A checking process detects missed events.<\/li>\n  <li>Administrators can see failed items and items waiting too long.<\/li>\n  <li>A bulk recovery procedure exists without blindly overwriting everything.<\/li>\n<\/ul>\n\n<p><a href=\"\/en\/connect\/\">Yindle Connect<\/a> is designed to validate, translate, monitor and recover these data flows. Its combination with order processing is explained more concretely on <a href=\"\/en\/woocommerce-afas-integration-guide\/\">WooCommerce\u2013AFAS integration<\/a>.<\/p>\n\n<h2>Frequently asked questions about stock delays<\/h2>\n\n<h3>How often should stock be updated?<\/h3>\n\n<p>That depends on sales velocity, scarcity and operational risk. A generic \u201cas often as possible\u201d ignores limits and may create bottlenecks. Agree an acceptable delay for each product range, measure the actual age of published stock data and increase frequency only where it demonstrably adds value.<\/p>\n\n<h3>What does the customer see if AFAS is temporarily unavailable?<\/h3>\n\n<p>Choose deliberately between last known stock, temporarily unavailable ordering or a limited safety stock. Do not present false certainty. Flag internally when the source check is outdated and show administrators how long it has been since a confirmed update arrived.<\/p>\n\n<h3>How do you check a full migration?<\/h3>\n\n<p>Before switching over, compare a fixed set of simple products, variations, bundles, missing mappings and items from different warehouses. Then run a full comparison without writing immediately. Publish only once discrepancies are explained, and keep a fallback procedure ready for the first production cycle.<\/p>\n\n<h2>Make stock discrepancies investigable<\/h2>\n\n<p>For each change, retain at least the source value, warehouse rule used, calculated sellable value, destination system and confirmed outcome. Staff can then trace a discrepancy without manually copying product data from several screens. Limit history to what is needed for administration and accountability.<\/p>\n\n<p>Want to establish which stock your online store should actually show and how to keep the workflow recoverable? <a href=\"\/en\/contact\/\">Work through your stock chain with Yindle<\/a>.<\/p>\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"\/en\/connect\/\">Explore Yindle Connect<\/a><\/div>\n\n\n\n<div class=\"wp-block-button is-style-outline is-style-outline--1\"><a class=\"wp-block-button__link wp-element-button\" href=\"\/en\/contact\/\">Discuss your stock workflow<\/a><\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>A technical and functional framework for current WooCommerce stock, with clear definitions, mapping, error handling and checks.<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-60","post","type-post","status-publish","format-standard","hentry","category-e-commerce"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>AFAS-voorraad naar WooCommerce zonder overselling<\/title>\n<meta name=\"description\" content=\"Synchroniseer AFAS-voorraad beheerst naar WooCommerce met duidelijke magazijnregels, SKU-mapping, incrementele updates en zichtbaar herstel.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/yindle.com\/en\/synchronising-afas-stock-with-woocommerce-without-overselling\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AFAS-voorraad naar WooCommerce zonder overselling\" \/>\n<meta property=\"og:description\" content=\"Synchroniseer AFAS-voorraad beheerst naar WooCommerce met duidelijke magazijnregels, SKU-mapping, incrementele updates en zichtbaar herstel.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/yindle.com\/en\/synchronising-afas-stock-with-woocommerce-without-overselling\/\" \/>\n<meta property=\"og:site_name\" content=\"Yindle\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-02T07:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/yindle.com\/wp-content\/themes\/yindle\/assets\/images\/yindle-social-share.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Yindle\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Yindle\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/synchronising-afas-stock-with-woocommerce-without-overselling\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/synchronising-afas-stock-with-woocommerce-without-overselling\\\/\"},\"author\":{\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/#organization\"},\"headline\":\"AFAS-voorraad synchroniseren met WooCommerce zonder overselling\",\"datePublished\":\"2026-10-02T07:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/synchronising-afas-stock-with-woocommerce-without-overselling\\\/\"},\"wordCount\":972,\"publisher\":{\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/#organization\"},\"articleSection\":[\"E-commerce\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/synchronising-afas-stock-with-woocommerce-without-overselling\\\/\",\"url\":\"https:\\\/\\\/yindle.com\\\/en\\\/synchronising-afas-stock-with-woocommerce-without-overselling\\\/\",\"name\":\"AFAS-voorraad naar WooCommerce zonder overselling\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/#website\"},\"datePublished\":\"2026-10-02T07:00:00+00:00\",\"description\":\"Synchroniseer AFAS-voorraad beheerst naar WooCommerce met duidelijke magazijnregels, SKU-mapping, incrementele updates en zichtbaar herstel.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/synchronising-afas-stock-with-woocommerce-without-overselling\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/yindle.com\\\/en\\\/synchronising-afas-stock-with-woocommerce-without-overselling\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/synchronising-afas-stock-with-woocommerce-without-overselling\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/yindle.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"AFAS-voorraad synchroniseren met WooCommerce zonder overselling\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/yindle.com\\\/en\\\/\",\"name\":\"Yindle\",\"description\":\"Software voor e-commerce en klantprocessen\",\"publisher\":{\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/yindle.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/#organization\",\"name\":\"Yindle B.V.\",\"url\":\"https:\\\/\\\/yindle.com\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/yindle.com\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/yindle-site-icon.png\",\"contentUrl\":\"https:\\\/\\\/yindle.com\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/yindle-site-icon.png\",\"width\":512,\"height\":512,\"caption\":\"Yindle B.V.\"},\"image\":{\"@id\":\"https:\\\/\\\/yindle.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"legalName\":\"Yindle B.V.\",\"address\":{\"@type\":\"PostalAddress\",\"streetAddress\":\"Markt 43\",\"postalCode\":\"5554 CA\",\"addressLocality\":\"Valkenswaard\",\"addressCountry\":\"NL\"},\"identifier\":{\"@type\":\"PropertyValue\",\"propertyID\":\"KvK\",\"value\":\"99695367\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"AFAS stock to WooCommerce without overselling","description":"Synchronise AFAS stock with WooCommerce in a controlled way, with clear warehouse rules, SKU mapping, incremental updates and visible recovery.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/yindle.com\/en\/synchronising-afas-stock-with-woocommerce-without-overselling\/","og_locale":"en_GB","og_type":"article","og_title":"AFAS-voorraad naar WooCommerce zonder overselling","og_description":"Synchroniseer AFAS-voorraad beheerst naar WooCommerce met duidelijke magazijnregels, SKU-mapping, incrementele updates en zichtbaar herstel.","og_url":"https:\/\/yindle.com\/en\/synchronising-afas-stock-with-woocommerce-without-overselling\/","og_site_name":"Yindle","article_published_time":"2026-10-02T07:00:00+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/yindle.com\/wp-content\/themes\/yindle\/assets\/images\/yindle-social-share.png","type":"image\/png"}],"author":"Yindle","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Yindle","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/yindle.com\/en\/synchronising-afas-stock-with-woocommerce-without-overselling\/#article","isPartOf":{"@id":"https:\/\/yindle.com\/en\/synchronising-afas-stock-with-woocommerce-without-overselling\/"},"author":{"@id":"https:\/\/yindle.com\/en\/#organization"},"headline":"AFAS-voorraad synchroniseren met WooCommerce zonder overselling","datePublished":"2026-10-02T07:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/yindle.com\/en\/synchronising-afas-stock-with-woocommerce-without-overselling\/"},"wordCount":972,"publisher":{"@id":"https:\/\/yindle.com\/en\/#organization"},"articleSection":["E-commerce"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/yindle.com\/en\/synchronising-afas-stock-with-woocommerce-without-overselling\/","url":"https:\/\/yindle.com\/en\/synchronising-afas-stock-with-woocommerce-without-overselling\/","name":"AFAS stock to WooCommerce without overselling","isPartOf":{"@id":"https:\/\/yindle.com\/en\/#website"},"datePublished":"2026-10-02T07:00:00+00:00","description":"Synchronise AFAS stock with WooCommerce in a controlled way, with clear warehouse rules, SKU mapping, incremental updates and visible recovery.","breadcrumb":{"@id":"https:\/\/yindle.com\/en\/synchronising-afas-stock-with-woocommerce-without-overselling\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/yindle.com\/en\/synchronising-afas-stock-with-woocommerce-without-overselling\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/yindle.com\/en\/synchronising-afas-stock-with-woocommerce-without-overselling\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/yindle.com\/en\/"},{"@type":"ListItem","position":2,"name":"AFAS-voorraad synchroniseren met WooCommerce zonder overselling"}]},{"@type":"WebSite","@id":"https:\/\/yindle.com\/en\/#website","url":"https:\/\/yindle.com\/en\/","name":"Yindle","description":"Software for e-commerce and customer processes","publisher":{"@id":"https:\/\/yindle.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/yindle.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/yindle.com\/en\/#organization","name":"Yindle B.V.","url":"https:\/\/yindle.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/yindle.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/yindle.com\/wp-content\/uploads\/2026\/09\/yindle-site-icon.png","contentUrl":"https:\/\/yindle.com\/wp-content\/uploads\/2026\/09\/yindle-site-icon.png","width":512,"height":512,"caption":"Yindle B.V."},"image":{"@id":"https:\/\/yindle.com\/en\/#\/schema\/logo\/image\/"},"legalName":"Yindle B.V.","address":{"@type":"PostalAddress","streetAddress":"Markt 43","postalCode":"5554 CA","addressLocality":"Valkenswaard","addressCountry":"NL"},"identifier":{"@type":"PropertyValue","propertyID":"KvK","value":"99695367"}}]}},"_links":{"self":[{"href":"https:\/\/yindle.com\/en\/wp-json\/wp\/v2\/posts\/60","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yindle.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/yindle.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/yindle.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/yindle.com\/en\/wp-json\/wp\/v2\/comments?post=60"}],"version-history":[{"count":1,"href":"https:\/\/yindle.com\/en\/wp-json\/wp\/v2\/posts\/60\/revisions"}],"predecessor-version":[{"id":953,"href":"https:\/\/yindle.com\/en\/wp-json\/wp\/v2\/posts\/60\/revisions\/953"}],"wp:attachment":[{"href":"https:\/\/yindle.com\/en\/wp-json\/wp\/v2\/media?parent=60"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yindle.com\/en\/wp-json\/wp\/v2\/categories?post=60"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yindle.com\/en\/wp-json\/wp\/v2\/tags?post=60"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}