<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>scandiweb</title>
	<atom:link href="https://scandiweb.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>https://scandiweb.com/blog</link>
	<description>Success Stories &#124; scandiweb blog</description>
	<lastBuildDate>Thu, 22 Oct 2026 08:49:56 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.7</generator>

<image>
	<url>https://scandiweb.com/blog/wp-content/uploads/2022/08/6277b7d3d3ca4eb3c978a38c_favicon-1.png</url>
	<title>scandiweb</title>
	<link>https://scandiweb.com/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Three Way Matching: How AI Matches 87% of Invoices Without a Human</title>
		<link>https://scandiweb.com/blog/three-way-matching/</link>
		
		<dc:creator><![CDATA[Glebs Vrevsky]]></dc:creator>
		<pubDate>Fri, 23 Oct 2026 10:48:00 +0000</pubDate>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[AI agents]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[B2B eCommerce]]></category>
		<category><![CDATA[ERP]]></category>
		<category><![CDATA[OperaLayer]]></category>
		<category><![CDATA[three way matching]]></category>
		<guid isPermaLink="false">https://scandiweb.com/blog/?p=26043</guid>

					<description><![CDATA[<p>Three way matching checks each invoice against the PO and delivery note. See how a wholesaler made AI match 87% of them on its own.</p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/three-way-matching/">Three Way Matching: How AI Matches 87% of Invoices Without a Human</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="lazyblock-related-Tw3mB wp-block-lazyblock-related"><div class="related-services">
  <h3>Related Services</h3>
  <ul>
    
    <li>
      <a  href="https://scandiweb.com/solutions/operalayer" target=_blank >
        OperaLayer
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.com/services/ai" target=_blank >
        AI strategy consulting
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.com/integrations" target=_blank >
        eCommerce integrations
      </a>
    </li>
    
  </ul>
</div>
</div>


<p class="wp-block-paragraph">If two people on your team start every morning matching supplier invoices to purchase orders, you already know what three way matching costs when it&#8217;s done by hand. Every invoice gets checked against the order and the delivery note, line by line, before anyone pays it. The check itself is simple, but with dozens of suppliers whose documents never look the same twice, it fills the morning.</p>



<p class="wp-block-paragraph">The numbers show how common this is. In Ardent Partners&#8217; State of ePayables 2025, a survey of 204 accounts payable teams, 18.4% of invoices hit an exception, and only 35.4% were processed straight through without anyone touching them.</p>



<p class="wp-block-paragraph">This guide explains what three way matching is, how it differs from two way and four way matching, and why it breaks down for wholesalers. Then it walks through how AI does the matching, using one of our own rollouts: a Baltic electrical wholesaler with 100+ suppliers that now matches 87% of its invoices with nobody touching them.</p>



<h2 class="wp-block-heading">What is three way matching?</h2>



<p class="wp-block-paragraph">Three way matching is an accounts payable control that checks a supplier invoice against two other documents before it is paid: the purchase order and the goods receipt, usually based on the supplier&#8217;s delivery note. If the items, quantities, and prices agree within set tolerances, the invoice is approved for payment. If they don&#8217;t, it goes to a person as an exception.</p>



<p class="wp-block-paragraph">Each document answers a different question:</p>



<ul class="wp-block-list">
<li><strong>The purchase order</strong> shows what you agreed to buy, at what price.</li>


<li><strong>The goods receipt or delivery note</strong> shows what actually arrived. For cross-border road freight, the CMR consignment note is often part of that proof.</li>


<li><strong>The invoice</strong> shows what the supplier wants to be paid for.</li>

</ul>



<p class="wp-block-paragraph">A three way match catches the mistakes that cost money quietly: paying for 100 cable reels when 80 arrived, paying last quarter&#8217;s price after a discount was agreed, or paying the same invoice twice. Ardent&#8217;s benchmark shows how much of the work starts from orders: 65.4% of invoices are linked to a purchase order, and those are the invoices this check can cover.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/three-way-matching-documents.png" alt="Three way matching diagram comparing a purchase order, delivery note, and invoice before posting or flagging an exception" class="wp-image-26038" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/three-way-matching-documents.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/three-way-matching-documents-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/three-way-matching-documents-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/three-way-matching-documents-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/three-way-matching-documents-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/three-way-matching-documents-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/three-way-matching-documents-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">Three way matching compares the order, the delivery, and the invoice line by line</figcaption></figure></div>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>The rule is easy to write down. The work is in finding the right order and the right delivery for every invoice line, and that is the part people spend their mornings on.</p></div>



<h2 class="wp-block-heading">Two way vs three way vs four way matching</h2>



<p class="wp-block-paragraph">Two way matching compares only the invoice and the purchase order. Three way matching adds proof of delivery. Four way matching adds an inspection or quality check on top. The more documents you compare, the more errors you catch, and the more exceptions you create when one document is missing or late.</p>



<figure class="wp-block-table"><table><thead><tr><th></th><th>Two way matching</th><th>Three way matching</th><th>Four way matching</th></tr></thead><tbody><tr><td>Documents compared</td><td>Invoice + purchase order</td><td>Invoice + purchase order + goods receipt</td><td>Invoice + purchase order + goods receipt + inspection</td></tr><tr><td>Catches</td><td>Wrong prices, items not ordered</td><td>Wrong prices, short or missing deliveries</td><td>All of these, plus goods that failed inspection</td></tr><tr><td>Typical use</td><td>Services, subscriptions, low-value orders</td><td>Physical goods, most wholesale and distribution</td><td>Regulated or high-value goods, quality-critical parts</td></tr><tr><td>Main risk</td><td>Paying for goods that never arrived</td><td>Exceptions when the receipt is missing or late</td><td>Slow approvals waiting for inspection results</td></tr></tbody></table><figcaption class="wp-element-caption">Two way vs three way vs four way matching</figcaption></figure>



<p class="wp-block-paragraph">For a distributor or wholesaler buying physical stock, three way matching is the sensible default. Two way matching misses short deliveries, and those are the most common problem when goods arrive by pallet from many suppliers.</p>



<h2 class="wp-block-heading">Why three way matching breaks down for wholesalers</h2>



<p class="wp-block-paragraph">The documents rarely line up on their own. A supplier invoice describes the goods in the supplier&#8217;s words, and your ERP describes them in yours. Most of the time in manual matching goes into translating between the two.</p>



<p class="wp-block-paragraph">These are the exceptions we see most often:</p>



<ul class="wp-block-list">
<li><strong>Item codes don&#8217;t match.</strong> The supplier invoices &#8220;W-5G4-H07RNF&#8221; and your order says &#8220;CC-CBL-5X4.&#8221; A person has to know they are the same cable.</li>


<li><strong>Units differ.</strong> You ordered 10 boxes, and the supplier invoices 500 pieces.</li>


<li><strong>Deliveries arrive in parts.</strong> One order is delivered on three delivery notes and billed on two invoices.</li>


<li><strong>Prices changed.</strong> A discount agreed by phone never reached the purchase order.</li>


<li><strong>Every supplier has its own layout.</strong> With 100 suppliers, you get roughly 100 invoice formats, in different languages, as PDFs, scans, and phone photos.</li>


<li><strong>The receipt is missing.</strong> The goods arrived, but the warehouse hasn&#8217;t booked the delivery note yet, so the match can&#8217;t finish.</li>

</ul>



<p class="wp-block-paragraph">Microsoft Dynamics NAV, like most ERPs, stores purchase orders and posts invoices. It doesn&#8217;t read 100 different PDF layouts or match supplier lines to your items, so people do both. According to Ardent, only 51.4% of invoices reach accounts payable teams electronically, which means about half still have to be read before anyone can match them.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Exceptions are mostly translation problems. The supplier and your ERP describe the same goods differently, and someone on your team holds the dictionary in their head.</p></div>



<h2 class="wp-block-heading">How AI three way matching works</h2>



<p class="wp-block-paragraph">AI invoice processing for three way matching follows six steps: read every document, find the matching order and delivery, match each line, score how confident the match is, post the result to the ERP, and learn only from corrections that repeat. People review only the invoices the software is unsure about.</p>



<p class="wp-block-paragraph">This is the sequence we built for the wholesaler with <a href="https://scandiweb.com/solutions/operalayer" target="_blank" rel="noopener">OperaLayer</a>, our product for the work that falls between business systems.</p>



<h3 class="wp-block-heading">1. Read every document, in any layout</h3>



<p class="wp-block-paragraph">The software extracts the supplier, invoice number, dates, lines, quantities, units, and prices from each PDF, scan, or photo, and gives every field a confidence score. Invoices, delivery notes, and CMR documents all go through the same reader, so the delivery evidence is available when the invoice arrives.</p>



<h3 class="wp-block-heading">2. Find the order and the delivery</h3>



<p class="wp-block-paragraph">Each invoice is linked to its purchase order in the ERP and to the delivery notes booked against it. When one order spans several deliveries or invoices, the software keeps track of what has already been received and billed, so a partial delivery doesn&#8217;t look like an error.</p>



<h3 class="wp-block-heading">3. Match line by line: barcode, SKU, alias, then fuzzy</h3>



<p class="wp-block-paragraph">Line matching is where most of the manual time goes, so it runs in a fixed order, from the most reliable signal to the least:</p>



<ol class="wp-block-list">
<li><strong>Barcode.</strong> If the supplier line carries an EAN or GTIN that exists in your item data, that is the match.</li>


<li><strong>SKU.</strong> The supplier&#8217;s item number is compared with your item numbers and the supplier item numbers already stored in the ERP.</li>


<li><strong>Known alias.</strong> A table of supplier codes your team has already confirmed, such as &#8220;W-5G4-H07RNF is our CC-CBL-5X4.&#8221;</li>


<li><strong>Fuzzy match.</strong> If nothing else works, the description, unit, and price are compared with open order lines to suggest the closest candidate.</li>

</ol>



<p class="wp-block-paragraph">A match from step 1 is almost always right. A match from step 4 is a suggestion and counts for less in the confidence score.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/three-way-matching-line-match-order.png" alt="Four-step line matching order for an invoice line, from barcode to SKU to known alias to fuzzy match, with confidence levels" class="wp-image-26039" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/three-way-matching-line-match-order.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/three-way-matching-line-match-order-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/three-way-matching-line-match-order-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/three-way-matching-line-match-order-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/three-way-matching-line-match-order-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/three-way-matching-line-match-order-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/three-way-matching-line-match-order-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">Each invoice line is matched by barcode first and by fuzzy description last</figcaption></figure></div>



<h3 class="wp-block-heading">4. Score confidence and send only exceptions to people</h3>



<p class="wp-block-paragraph">Every invoice gets an overall confidence score built from the extraction, the line matches, and the quantity and price checks. Above the threshold, it goes through. Below it, it lands in a review queue with the reason shown: an unknown item code, a price above tolerance, or a delivery not yet booked. The reviewer fixes one line instead of rechecking the whole invoice.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/three-way-matching-exception-review.png" alt="Invoice review queue with confidence scores, auto-matched invoices posted and two exceptions flagged with their reasons" class="wp-image-26040" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/three-way-matching-exception-review.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/three-way-matching-exception-review-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/three-way-matching-exception-review-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/three-way-matching-exception-review-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/three-way-matching-exception-review-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/three-way-matching-exception-review-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/three-way-matching-exception-review-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">Only low-confidence invoices reach the review queue, each with its reason shown</figcaption></figure></div>



<h3 class="wp-block-heading">5. Send matched invoices to the ERP</h3>



<p class="wp-block-paragraph">Purchase orders are read from the ERP, and matched invoices go back to it as a batch ready to post. For the wholesaler, that means Dynamics NAV: purchase orders come in, and approved invoices go out as a Navision-ready journal batch. The ERP stays the system of record, and nothing is migrated.</p>



<h3 class="wp-block-heading">6. Learn from corrections, but only when they repeat</h3>



<p class="wp-block-paragraph">A reviewer&#8217;s correction becomes a standing rule only after the same correction recurs, so one mistaken click can&#8217;t change how every future invoice from that supplier is matched.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Put exact signals first and fuzzy guesses last. That order keeps the auto-matched share high without letting weak matches through to the ERP.</p></div>



<h2 class="wp-block-heading">Case: a Baltic electrical wholesaler with 100+ suppliers</h2>



<p class="wp-block-paragraph">The wholesaler buys from about 100 suppliers and runs on Microsoft Dynamics NAV. Before the project, two people checked every supplier invoice against orders by hand, every morning, together with the delivery notes and CMR documents. NAV could store the orders, but it couldn&#8217;t read 100 different PDF formats or match lines to purchase orders.</p>



<p class="wp-block-paragraph">We built the matching app on OperaLayer, on top of NAV. A first working version ran on the wholesaler&#8217;s own documents in about two weeks. As we wrote in <a href="https://scandiweb.com/blog/why-custom-software-is-becoming-cheaper-than-saas/" target="_blank" rel="noopener">why custom software is becoming cheaper than SaaS</a>, AI has changed how fast software can be built around a single workflow: work that once took years can now take weeks.</p>



<p class="wp-block-paragraph">Earning the team&#8217;s trust took another month. The people who had matched invoices for years needed to see the software get the hard cases right before they let it send anything to NAV. During that month, they checked its suggestions against their own work and corrected the mistakes. Corrections that came up again turned into rules. Those were the same people who knew which supplier codes meant what, and their knowledge went into the alias table.</p>



<p class="wp-block-paragraph">The results:</p>



<ul class="wp-block-list">
<li><strong>87% of invoices are matched with nobody touching them.</strong> People see the rest.</li>


<li><strong>Around 100 supplier formats</strong> are read without templates.</li>


<li><strong>About 2,000 documents a month</strong> go through the system: invoices, delivery notes, and CMR documents.</li>

</ul>



<p class="wp-block-paragraph">The next phase is scoped: supplier documents will come in straight from email instead of being uploaded, and approved invoices will go into NAV through its API instead of an export batch.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/three-way-matching-operalayer-invoice-matching-v2.png" alt="OperaLayer AI invoice matching screen with an 87% auto-match rate, line-by-line PO matching and an exception queue" class="wp-image-26283" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/three-way-matching-operalayer-invoice-matching-v2.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/three-way-matching-operalayer-invoice-matching-v2-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/three-way-matching-operalayer-invoice-matching-v2-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/three-way-matching-operalayer-invoice-matching-v2-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/three-way-matching-operalayer-invoice-matching-v2-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/three-way-matching-operalayer-invoice-matching-v2-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/three-way-matching-operalayer-invoice-matching-v2-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">The wholesaler&#8217;s invoice matching in OperaLayer: 87% auto-matched across about 100 supplier formats</figcaption></figure></div>



<p class="wp-block-paragraph">The same approach works on other old systems. When LegacyBridge joined OperaLayer, its first IBM i (AS/400) workflow went live in two weeks and now processes more than 10,000 documents a month, each in under 10 seconds instead of 10 to 15 minutes by hand. The details are in our post on <a href="https://scandiweb.com/blog/legacybridge-joins-operalayer/" target="_blank" rel="noopener">LegacyBridge joining OperaLayer</a>.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Building the first version was the short part. The month spent earning the team&#8217;s trust is what turned it into something they rely on, so plan for that month from the start.</p></div>



<h2 class="wp-block-heading">Why seller-side automation comes before buyer-side AI agents</h2>



<p class="wp-block-paragraph">Most talk about AI agents in B2B is about the buyer&#8217;s side: an agent that searches suppliers, compares prices, and places the order. Those agents still struggle with B2B basics such as contract prices and purchase orders, as we cover in our <a href="https://scandiweb.com/blog/b2b-ecommerce-trends/" target="_blank" rel="noopener">B2B eCommerce trends for 2027</a> and our guide to the <a href="https://scandiweb.com/blog/universal-commerce-protocol/" target="_blank" rel="noopener">Universal Commerce Protocol</a>.</p>



<p class="wp-block-paragraph">The seller&#8217;s own side is ready now. Invoice matching repeats every day and follows rules your team can already write down, using data the ERP holds. The outcome is easy to measure: the share of invoices nobody touched. That makes it a good first job for AI inside a distributor or wholesaler.</p>



<p class="wp-block-paragraph">The same pattern covers the other paperwork that arrives in many formats:</p>



<ul class="wp-block-list">
<li><strong>Purchase order automation</strong> on the buying side: reading order confirmations and checking them against your POs before the goods arrive.</li>


<li><strong>Sales order automation</strong> on the selling side: customer orders that arrive by email or PDF, read and checked against price lists and stock.</li>


<li><strong>Order entry automation</strong> for the ERP: entering what was read into the right screens, with a person approving anything unusual.</li>

</ul>



<p class="wp-block-paragraph">AI order entry and invoice matching use the same parts: a reader, a matcher, a confidence score, and a review queue. Once the first one is live, the next one starts with most of the work done.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>The first AI agents worth building work for your own team. Invoice matching runs on your data, and one number tells you whether it works.</p></div>



<h2 class="wp-block-heading">How to prepare for automated invoice matching</h2>



<p class="wp-block-paragraph">You don&#8217;t need clean data to start, but a few decisions speed up the first weeks. Collect these before the project begins:</p>



<ul class="wp-block-list">
<li><strong>Tolerances.</strong> How far can price and quantity differ before an invoice becomes an exception? Write the rule down, per supplier if needed.</li>


<li><strong>A sample of real documents.</strong> A month of invoices, delivery notes, and CMR documents from your largest and messiest suppliers.</li>


<li><strong>Your alias knowledge.</strong> The supplier codes your team already translates in their heads. Even a rough spreadsheet saves weeks.</li>


<li><strong>ERP access.</strong> Read access to purchase orders and receipts, and a way to post invoices back. For Dynamics NAV, plan around the <a href="https://scandiweb.com/blog/dynamics-nav-to-business-central-ecommerce/" target="_blank" rel="noopener">move to Business Central</a>, and see our guide to <a href="https://scandiweb.com/blog/ecommerce-erp-integration/" target="_blank" rel="noopener">ERP integration</a> for the options.</li>


<li><strong>One owner.</strong> Someone from accounts payable or purchasing who reviews exceptions in the first month and decides which corrections become rules.</li>

</ul>



<p class="wp-block-paragraph">E-invoicing mandates will make part of this easier. Belgium has required structured B2B e-invoices since January 2026, France started in September 2026, and Germany requires larger companies to issue them from January 2027, as our guide to the <a href="https://scandiweb.com/blog/digital-product-passport/" target="_blank" rel="noopener">digital product passport</a> lists. Structured invoices remove the reading step, but the line matching and the exceptions stay, and so do suppliers from outside those countries.</p>



<h2 class="wp-block-heading">FAQ about three way matching</h2>



<h3 class="wp-block-heading">What is the difference between two way and three way matching?</h3>



<p class="wp-block-paragraph">Two way matching compares an invoice with the purchase order: the items and prices must agree. Three way matching adds the goods receipt or delivery note, so you only pay for what actually arrived. It catches short and missing deliveries that two way matching misses, which is why most wholesalers and distributors use it for physical goods.</p>



<h3 class="wp-block-heading">What are common three way matching errors?</h3>



<p class="wp-block-paragraph">The most common three way matching errors are supplier item codes that differ from yours, different units of measure, partial deliveries spread across several delivery notes, prices that changed after the order, missing goods receipts, and duplicate invoices. Most of them are translation problems between the supplier&#8217;s documents and your ERP, which is why a confirmed alias table removes so many exceptions.</p>



<h3 class="wp-block-heading">Can AI do three way matching?</h3>



<p class="wp-block-paragraph">Yes. AI reads invoices, delivery notes, and orders in any layout, matches each line to your items, and scores how confident each match is. Invoices above the confidence threshold go to the ERP without a manual check, and the rest go to a person with the reason shown. At one Baltic electrical wholesaler, this matches 87% of invoices with nobody touching them.</p>



<h3 class="wp-block-heading">What auto-match rate is realistic for invoice matching automation?</h3>



<p class="wp-block-paragraph">It depends on your suppliers and data, but well above the market average is realistic. Ardent Partners&#8217; 2025 benchmark puts straight-through processing at 35.4% of invoices on average. A wholesaler we work with reached 87% across about 100 supplier formats. Expect a lower rate in the first weeks, rising as repeated corrections become rules.</p>



<h3 class="wp-block-heading">Does AI invoice processing replace the accounts payable team?</h3>



<p class="wp-block-paragraph">No. It removes the routine matching and leaves the decisions to people. The team reviews exceptions, approves anything unusual, and confirms which corrections become rules. In our wholesaler rollout, the people who used to match every invoice by hand now review only the exceptions, and their knowledge of supplier codes is what made the high match rate possible.</p>



<h3 class="wp-block-heading">How long does it take to automate three way matching?</h3>



<p class="wp-block-paragraph">With an operational layer on top of your existing ERP, a first working version can run on your own documents in about two weeks. Plan for roughly another month of side-by-side review before your team trusts it to post invoices on its own. The ERP stays in place, so there is no migration to schedule.</p>



<h2 class="wp-block-heading">Three way matching works when your team trusts it</h2>



<p class="wp-block-paragraph">Three way matching is a simple control that takes hours when the documents come in 100 layouts and the item codes don&#8217;t line up. AI can now read the documents and match the lines, then send people only the invoices that need a decision. At our wholesaler, the first version took about two weeks. The month of side-by-side review that followed is what made the team trust it to run on its own.</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p><style> p.box { border: 1px solid black; padding-top: 30px; padding-right: 30px; padding-bottom: 30px; padding-left: 30px; } </style> <p class="box"><em>Still matching supplier invoices by hand every morning? </em><a href="https://scandiweb.com/contact" target="_blank" rel="noreferrer noopener"><em>Tell us which documents your team checks</em></a><em>, and we&#x27;ll show you what automated matching would look like on your own data.</em></p></p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/three-way-matching/">Three Way Matching: How AI Matches 87% of Invoices Without a Human</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Faceted Navigation SEO: Which Filter Pages to Index and Which to Block</title>
		<link>https://scandiweb.com/blog/faceted-navigation-seo/</link>
		
		<dc:creator><![CDATA[Lina Ivanova]]></dc:creator>
		<pubDate>Thu, 22 Oct 2026 14:00:00 +0000</pubDate>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[canonical tag]]></category>
		<category><![CDATA[crawl budget]]></category>
		<category><![CDATA[eCommerce SEO]]></category>
		<category><![CDATA[faceted navigation]]></category>
		<category><![CDATA[indexing]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[robotstxt]]></category>
		<category><![CDATA[Shopify]]></category>
		<category><![CDATA[technical SEO]]></category>
		<guid isPermaLink="false">https://scandiweb.com/blog/?p=26193</guid>

					<description><![CDATA[<p>Faceted navigation SEO for eCommerce: which filter pages to index, which to block, and how to set both up on Magento and Shopify.</p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/faceted-navigation-seo/">Faceted Navigation SEO: Which Filter Pages to Index and Which to Block</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="lazyblock-related-FcNav wp-block-lazyblock-related"><div class="related-services">
  <h3>Related Services</h3>
  <ul>
    
    <li>
      <a  href="https://scandiweb.com/seo-services" target=_blank >
        eCommerce SEO services
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.com/magento-seo-services" target=_blank >
        Magento SEO services
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.com/shopify-services/development" target=_blank >
        Shopify development
      </a>
    </li>
    
  </ul>
</div>
</div>


<p class="wp-block-paragraph">If your developer says the filter pages are wasting crawl budget and someone in marketing wants every filtered URL indexed for long-tail traffic, you&#8217;re probably waiting to find out which of them is right. Faceted navigation SEO usually gets argued as a choice between those two camps: block every filter URL, or let Google have them all.</p>



<p class="wp-block-paragraph">Neither works on a real catalog. One category with six filters can produce over half a million URL combinations, and almost none of them match anything a shopper types. A few do, and &#8220;black leather ankle boots&#8221; alone gets about 1,200 searches a month in the US. The job is to find those few, give them proper pages, and keep Google away from everything else, on Magento, Shopify, or any other platform.</p>



<h2 class="wp-block-heading">What faceted navigation SEO decides</h2>



<p class="wp-block-paragraph">Faceted navigation SEO, sometimes called faceted search SEO, is the set of rules that decides which filter combinations on your category pages search engines may crawl and which they may index. Filters for color, size, brand, or price each add a parameter or path to the URL, and filters combine. The SEO work is choosing the small set of filtered pages that deserve to rank and keeping crawlers out of the rest.</p>



<p class="wp-block-paragraph">Those are two separate decisions. Crawling is whether Googlebot fetches the URL at all. Indexing is whether the page can appear in search results. robots.txt controls the first, while canonical tags and noindex act on the second, and mixing them up causes many of the problems we find in store audits.</p>



<p class="wp-block-paragraph">The scale is what makes it urgent. Take one category with six filters: 12 colors, 10 sizes, 20 brands, 5 price bands, 6 materials, and 4 sort orders. If a shopper can pick one value per filter, that category alone has about 630,000 possible URLs. Allow two colors at once, or let the parameters appear in any order, and the number keeps growing. Google&#8217;s own guidance on faceted navigation says filters can generate &#8220;infinite URL spaces&#8221;, and that crawlers often fetch many of these URLs before they recognize them as low value.</p>



<h2 class="wp-block-heading">Crawl waste vs long-tail opportunity</h2>



<p class="wp-block-paragraph">Both arguments in your team are about real effects. Filter URLs do use up crawling that could go to new products, and some filter combinations do match searches your main categories can&#8217;t win. The answer is to measure each side on your own store before choosing.</p>



<h3 class="wp-block-heading">Are filter pages wasting crawl budget?</h3>



<p class="wp-block-paragraph">They can be, once enough filter URLs are open to crawlers. Google&#8217;s crawl budget guide is written for sites with more than a million pages that change weekly, sites with 10,000+ pages that change daily, and sites with many URLs in &#8220;Discovered – currently not indexed&#8221;. A store with layered navigation can land in that last group with only a few thousand products, because the filters multiply the URL count far past the catalog size.</p>



<p class="wp-block-paragraph">Three checks tell you whether it&#8217;s happening on your store:</p>



<ol class="wp-block-list">
<li>In Search Console, open Settings and then the Crawl stats report. Compare the number of daily requests with the number of products and categories you sell, and look for filter parameters in the example URLs under each response type</li>


<li>In the Page indexing report, a large and growing &#8220;Discovered – currently not indexed&#8221; count full of filter URLs means Google keeps putting off crawling them. Our guide to <a href="https://scandiweb.com/blog/duplicate-without-user-selected-canonical/" target="_blank" rel="noopener">Search Console statuses like duplicate without user-selected canonical</a> explains how to read each status</li>


<li>In your server logs, group Googlebot requests by URL pattern. If filter and sort URLs take a bigger share of requests than product pages, crawling is going to the wrong place</li>

</ol>



<p class="wp-block-paragraph">The cost shows up as slower discovery. New products and price changes take longer to reach search, because Googlebot is busy with URLs like ?color=black&amp;size=9&amp;sort=price_asc.</p>



<h3 class="wp-block-heading">Where the long-tail demand is</h3>



<p class="wp-block-paragraph">The opportunity is also real, but it shrinks fast as filters stack up. Here is the US search volume ladder for one footwear category, from Ahrefs in October 2026:</p>



<ul class="wp-block-list">
<li>ankle boots: 27,000 searches a month</li>


<li>black ankle boots: 5,400</li>


<li>black leather ankle boots: 1,200</li>


<li>black leather ankle boots size 8: 0</li>

</ul>



<p class="wp-block-paragraph">The same pattern repeats in other categories. &#8220;Mens linen shirts&#8221; gets 8,200 searches and &#8220;blue linen shirt men&#8221; gets 300. &#8220;Green velvet sofa&#8221; gets 3,300. One attribute on top of a category often carries real demand, a second one sometimes does, and size, price, or availability on top of that almost never does.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/faceted-navigation-seo-search-demand-ladder.png" alt="Bar chart of faceted navigation SEO demand: ankle boots 27,000, black 5,400, black leather 1,200, plus size 8 zero searches" class="wp-image-26189" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/faceted-navigation-seo-search-demand-ladder.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/faceted-navigation-seo-search-demand-ladder-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/faceted-navigation-seo-search-demand-ladder-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/faceted-navigation-seo-search-demand-ladder-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/faceted-navigation-seo-search-demand-ladder-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/faceted-navigation-seo-search-demand-ladder-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/faceted-navigation-seo-search-demand-ladder-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">Search demand drops sharply as filters stack on a category page</figcaption></figure></div>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>The two camps are usually arguing about different URLs. Crawl waste comes from deep combinations nobody searches for, and the long-tail value comes from shallow ones, so one rule can satisfy both.</p></div>



<h2 class="wp-block-heading">The decision rule: which filter combinations deserve an indexable URL</h2>



<p class="wp-block-paragraph">A filter combination deserves an indexable URL when people search for it as a phrase, the parent category doesn&#8217;t already answer that search, enough products stay on the page, it adds no more than one or two filters to the category, and you can give it a stable page of its own. Every combination that fails any of these tests stays out of the index, and most should stay out of the crawl.</p>



<p class="wp-block-paragraph">Run each candidate through the five tests in order. The first two decide most cases.</p>



<ol class="wp-block-list">
<li>Search demand: check the phrase a shopper would type, such as &#8220;black leather ankle boots&#8221;, in a keyword tool for your main market. Pick one threshold for the whole catalog, for example 50 searches a month, and apply it the same way to every candidate</li>


<li>Different intent from the parent: someone searching &#8220;green velvet sofa&#8221; wants green velvet sofas and would be let down by the full sofa category. Someone searching &#8220;sofas under $1,000&#8221; is usually happy on the sofa category with a price filter. Color, material, style, brand, and use case tend to pass. Size, price, and availability tend to fail</li>


<li>Enough products, consistently: the page needs enough products to fill at least the first screen, in a range that doesn&#8217;t empty out every few weeks. A filter page that drops to zero products turns into a soft 404</li>


<li>One or two filters deep: a category plus one attribute, or plus two at most, like brand and type. Three or more filters almost never pass test 1</li>


<li>A stable page you can own: one clean URL, its own title, H1, and short intro copy, and links from the parent category. If your platform can only produce the combination as a parameter URL whose order changes, build a dedicated page for it instead</li>

</ol>



<p class="wp-block-paragraph">Everything that fails goes into one of two groups. Single filters with no demand can stay crawlable with a canonical tag pointing to the category, as long as their number stays small. Deeper combinations, sort orders, page-size options, and price ranges should be blocked from crawling.</p>



<figure class="wp-block-table"><table><thead><tr><th>Filter type</th><th>Example</th><th>What to do</th></tr></thead><tbody><tr><td>Category plus one high-demand attribute</td><td>black leather ankle boots</td><td>Give it its own indexable page</td></tr><tr><td>Category plus two attributes with demand</td><td>Nike running shoes for women</td><td>Own page, only if it passes all five tests</td></tr><tr><td>Single filter with no search demand</td><td>in stock only, 4 stars and up</td><td>Canonical to the category, or block</td></tr><tr><td>Two or more filters with no demand</td><td>black, size 8, under $100</td><td>Block in robots.txt</td></tr><tr><td>Sort order, page size, grid or list view</td><td>price low to high, 48 per page</td><td>Block in robots.txt</td></tr><tr><td>Combination with no products</td><td>red boots in size 15</td><td>Return a 404</td></tr><tr><td>Internal search results</td><td>/search?q=boots</td><td>Block in robots.txt</td></tr></tbody></table><figcaption class="wp-element-caption">Faceted navigation SEO decision table: what to do with each type of filter URL</figcaption></figure>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/faceted-navigation-seo-decision-rule-flow.png" alt="Decision flow for faceted navigation SEO with five tests leading to index, canonical to category, or block in robots.txt" class="wp-image-26190" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/faceted-navigation-seo-decision-rule-flow.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/faceted-navigation-seo-decision-rule-flow-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/faceted-navigation-seo-decision-rule-flow-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/faceted-navigation-seo-decision-rule-flow-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/faceted-navigation-seo-decision-rule-flow-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/faceted-navigation-seo-decision-rule-flow-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/faceted-navigation-seo-decision-rule-flow-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">Five tests decide which filter combinations get an indexable URL</figcaption></figure></div>



<h3 class="wp-block-heading">Should filtered URLs be indexed?</h3>



<p class="wp-block-paragraph">Only the few that pass all five tests, and usually as dedicated pages. Next to the number of possible filter URLs, that list is short. Leaving the rest out of the index doesn&#8217;t cost traffic, because nobody searches for them, and it keeps the category pages as the clear target for their head terms. Our <a href="https://scandiweb.com/blog/duplicate-content-seo-ecommerce-complete-guide/" target="_blank" rel="noopener">duplicate content guide</a> covers what happens when thousands of near-identical filter pages compete with the category instead.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Write the list of indexable combinations down and give it an owner. Without a list, every new filter the merchandising team adds becomes a crawl and index decision that nobody made.</p></div>



<h2 class="wp-block-heading">Index, noindex, canonical or robots.txt: what each does to filter URLs</h2>



<p class="wp-block-paragraph">Use robots.txt to stop crawling of filter URLs you never want in search, a canonical tag for small sets of single-filter pages that should pass their signals to the category, and a self-referencing canonical on the pages you chose to index. Noindex is rarely the right tool for faceted navigation, because Google still has to crawl a page to see the tag.</p>



<figure class="wp-block-table"><table><thead><tr><th>Method</th><th>Stops crawling</th><th>Stops indexing</th><th>Passes signals to the category</th><th>Best use</th></tr></thead><tbody><tr><td>robots.txt disallow</td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td><td><span style="display:inline-block;padding:4px 8px;background-color:#d4edda;color:#1e7e34;border-radius:4px;font-weight:600;">Generally no</span></td><td><span style="display:inline-block;padding:4px 8px;background-color:#d4edda;color:#1e7e34;border-radius:4px;font-weight:600;">No</span></td><td>Deep combinations, sort and view parameters</td></tr><tr><td>Canonical tag to the category</td><td>Only over time</td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Likely yes</span></td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td><td>A small set of single-filter URLs</td></tr><tr><td>Meta robots noindex</td><td><span style="display:inline-block;padding:4px 8px;background-color:#d4edda;color:#1e7e34;border-radius:4px;font-weight:600;">No</span></td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td><td><span style="display:inline-block;padding:4px 8px;background-color:#d4edda;color:#1e7e34;border-radius:4px;font-weight:600;">No</span></td><td>Rarely, for pages that must stay crawlable</td></tr><tr><td>Nofollow on filter links</td><td>Only if every link has it</td><td><span style="display:inline-block;padding:4px 8px;background-color:#d4edda;color:#1e7e34;border-radius:4px;font-weight:600;">No</span></td><td><span style="display:inline-block;padding:4px 8px;background-color:#d4edda;color:#1e7e34;border-radius:4px;font-weight:600;">No</span></td><td>A support measure, never the main control</td></tr><tr><td>404 for empty combinations</td><td>Over time</td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td><td><span style="display:inline-block;padding:4px 8px;background-color:#d4edda;color:#1e7e34;border-radius:4px;font-weight:600;">No</span></td><td>Filters that return no products</td></tr><tr><td>Filters without a URL change</td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td><td><span style="display:inline-block;padding:4px 8px;background-color:#d4edda;color:#1e7e34;border-radius:4px;font-weight:600;">No</span></td><td>Facets you never want as pages</td></tr></tbody></table><figcaption class="wp-element-caption">What robots.txt, canonical tags, noindex and other methods do to filter URLs</figcaption></figure>



<p class="wp-block-paragraph">A few details from Google&#8217;s documentation matter here. A URL blocked in robots.txt can still be indexed without its content if other pages link to it. Google says a canonical tag on filter URLs may reduce crawling of them over time, but it calls robots.txt the more effective long-term control. Its crawl budget guide is direct about noindex: Google &#8220;will still request, but then drop the page&#8221;, so noindex saves no crawling at all.</p>



<h3 class="wp-block-heading">Combinations that send mixed signals</h3>



<p class="wp-block-paragraph">A broken faceted navigation setup often has the right tools in the wrong combination.</p>



<ul class="wp-block-list">
<li>A robots.txt block plus noindex: Google can&#8217;t crawl the page, so it never sees the noindex</li>


<li>Noindex plus a canonical to the category: one tag says drop the page, the other says merge it into the category. Google advises against noindex for canonicalization, so use the canonical alone</li>


<li>A canonical to the category on a filter URL that&#8217;s in your sitemap or main menu: your internal signals point at the filter URL while the tag points away from it, and Google may ignore the tag</li>


<li>Blocking filter URLs that are already indexed: they can stay in the index without content. If you need them gone first, allow crawling with noindex until they drop out, then add the robots.txt rule</li>

</ul>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Once a filter URL is blocked in robots.txt, its canonical and noindex tags have no effect, because Google never reads the page. Decide crawling first, then indexing.</p></div>



<h2 class="wp-block-heading">How to build a filter page worth indexing</h2>



<p class="wp-block-paragraph">A filter combination that passed the five tests needs to work like a real category page. Otherwise Google may treat it as a near-duplicate of the parent and index the parent instead.</p>



<ol class="wp-block-list">
<li>A clean, stable URL. A path such as /boots/black-leather-ankle-boots is easiest to keep stable. If you use parameters, keep one fixed order and the standard &#8220;&amp;&#8221; separator, as Google recommends</li>


<li>A self-referencing canonical tag, never one pointing to the parent category</li>


<li>Its own title, H1, and meta description built on the phrase people search, such as &#8220;Black Leather Ankle Boots&#8221;</li>


<li>A short intro that helps shoppers choose between the products shown, with a few sentences on materials, fit, or care</li>


<li>Internal links from the parent category, for example a row of popular styles above or below the product grid, plus breadcrumbs back to the category</li>


<li>A place in the XML sitemap next to your regular categories</li>


<li>A plan for when stock runs out. Keep the page live with related products while the range is seasonal, and return a 404 or redirect to the parent if it&#8217;s gone for good</li>

</ol>



<p class="wp-block-paragraph">Filter UX still matters for shoppers on every other combination. Our guide to <a href="https://scandiweb.com/blog/best-practices-for-product-listing-pages/" target="_blank" rel="noopener">product listing page best practices</a> covers filter order, labels, and mobile layouts.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Links from the parent category matter as much as the copy. Google counts a sitemap entry as a weak signal, so a filter page that only the sitemap points to gives Google little reason to rank it over its parent.</p></div>



<h2 class="wp-block-heading">Magento and Adobe Commerce implementation notes</h2>



<p class="wp-block-paragraph">By default, Magento adds each filter to the category URL as a query parameter with a numeric option ID, so a filtered page looks like /women/boots.html?color=49&amp;material=148. That makes the parameters easy to block with robots.txt and hard to turn into pages worth indexing. The usual setup has three parts.</p>



<h3 class="wp-block-heading">Canonical tags for filtered category URLs</h3>



<p class="wp-block-paragraph">Go to Stores &gt; Settings &gt; Configuration &gt; Catalog &gt; Catalog &gt; Search Engine Optimization and set &#8220;Use Canonical Link Meta Tag For Categories&#8221; to Yes. Filtered URLs then point their canonical to the clean category URL. Adobe recommends enabling the canonical tag for both categories and products.</p>



<h3 class="wp-block-heading">robots.txt rules for filter parameters</h3>



<p class="wp-block-paragraph">Add your rules under Content &gt; Design &gt; Configuration, in the Search Engine Robots section for the right scope. A typical starting set blocks filter, sort, and toolbar parameters:</p>



<pre class="wp-block-code"><code>User-agent: *
Disallow: /*?*color=
Disallow: /*?*material=
Disallow: /*?*price=
Disallow: /*?*product_list_order=
Disallow: /*?*product_list_dir=
Disallow: /*?*product_list_limit=
Disallow: /*?*product_list_mode=</code></pre>



<p class="wp-block-paragraph">Replace the attribute codes with the filterable attributes your store uses, and check the live URLs first. Headless frontends, AJAX filters, and search services such as Adobe&#8217;s Live Search can produce different parameters. Our guide to the <a href="https://scandiweb.com/blog/seo-crash-course-magento-robotstxt/" target="_blank" rel="noopener">Magento 2 robots.txt setup</a> lists the system paths that belong in the same file.</p>



<h3 class="wp-block-heading">Indexable filter pages as categories</h3>



<p class="wp-block-paragraph">Build each combination that passed the five tests as a category. Create a subcategory such as &#8220;Black Leather Ankle Boots&#8221; under Boots, with its own URL key, meta title, meta description, and description, and assign the products. On Adobe Commerce, the Visual Merchandiser can fill the category automatically with &#8220;Match products by rule&#8221;, using attribute conditions such as color and material. Adobe notes the rule is applied when the category is saved, and products that no longer match are removed. Link the new category from Boots, so shoppers and Google reach it from the parent.</p>



<p class="wp-block-paragraph">How to choose filterable attributes, set up anchor categories, and speed up filtering with AJAX or Hyvä is covered in our guide to <a href="https://scandiweb.com/blog/layered-navigation-causing-problems-deal-with-it/" target="_blank" rel="noopener">Magento layered navigation setup</a>.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/faceted-navigation-seo-magento-shopify-defaults.png" alt="Comparison of Magento and Shopify default faceted navigation SEO settings for filter URLs, canonical tags and robots.txt" class="wp-image-26191" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/faceted-navigation-seo-magento-shopify-defaults.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/faceted-navigation-seo-magento-shopify-defaults-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/faceted-navigation-seo-magento-shopify-defaults-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/faceted-navigation-seo-magento-shopify-defaults-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/faceted-navigation-seo-magento-shopify-defaults-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/faceted-navigation-seo-magento-shopify-defaults-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/faceted-navigation-seo-magento-shopify-defaults-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">Magento and Shopify handle filter URLs differently out of the box</figcaption></figure></div>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>On Magento, the indexable version of a filter is a category with its own URL key. The filtered URL keeps its canonical to the parent, so the two pages don&#8217;t compete for the same search.</p></div>



<h2 class="wp-block-heading">Shopify implementation notes</h2>



<p class="wp-block-paragraph">Shopify&#8217;s defaults already handle two of the three outcomes from the decision rule: canonical and block. We checked them on Shopify&#8217;s own Dawn demo store in October 2026. Storefront filters, which you set up in the admin or the Search &amp; Discovery app, add parameters such as ?filter.v.option.color=Black or ?filter.p.vendor=Nike to the collection URL, and a store can have up to 25 filters.</p>



<h3 class="wp-block-heading">What Shopify&#8217;s default robots.txt blocks</h3>



<p class="wp-block-paragraph">The standard file disallows sorted collection URLs, combined tag URLs, and any collection URL with two or more filter parameters:</p>



<pre class="wp-block-code"><code>Disallow: /collections/*sort_by*
Disallow: /collections/*+*
Disallow: /collections/*filter*&amp;*filter*
Disallow: /*/collections/*sort_by*
Disallow: /*/collections/*+*
Disallow: /*/collections/*filter*&amp;*filter*</code></pre>



<p class="wp-block-paragraph">A URL with a single filter stays crawlable. On the Dawn theme, that single-filter URL and even a two-filter one carry a canonical tag pointing to the unfiltered collection. So out of the box, single filters are canonicalized to the collection and combinations are blocked. Custom themes can change the canonical, so check yours with the URL Inspection tool.</p>



<p class="wp-block-paragraph">The second set of lines covers language and market subfolders. If you sell in several countries through <a href="https://scandiweb.com/blog/shopify-markets/">Shopify Markets subfolders</a>, each subfolder repeats the whole filter space, so any rule you add needs the same pair.</p>



<h3 class="wp-block-heading">Indexable filter pages as collections</h3>



<p class="wp-block-paragraph">Shopify has no admin setting that turns a filter URL into an indexable page, and the theme&#8217;s canonical points it at the collection anyway. Build each combination that passed the five tests as its own automated collection, with conditions such as product type equals Boots and a tag or metafield for black leather. It gets its own handle, title, description, and place in the sitemap, and you link to it from the parent collection.</p>



<h3 class="wp-block-heading">Adding your own rules in robots.txt.liquid</h3>



<p class="wp-block-paragraph">To block single filters with no search value, such as availability or price, edit the robots.txt.liquid template and add rules for those parameters. Keep Shopify&#8217;s default rules in the file. Our <a href="https://scandiweb.com/blog/shopify-seo-checklist/" target="_blank" rel="noopener">Shopify SEO checklist</a> covers the rest of the theme-level setup.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Shopify&#8217;s defaults already block most filter combinations. The usual gap on a Shopify store is the missing collections for the filter phrases people search.</p></div>



<h2 class="wp-block-heading">How to check faceted navigation after a release or migration</h2>



<p class="wp-block-paragraph">New filters, a theme update, or a replatforming project can undo a working setup in one deploy. Check four things after each one:</p>



<ol class="wp-block-list">
<li>Fetch the live robots.txt and test a few filter URLs against it. A staging file that blocks everything, or a filter rule lost in the deploy, are both common release mistakes</li>


<li>Inspect one filter URL and one indexable filter page with the URL Inspection tool, and compare the user-declared and Google-selected canonical</li>


<li>Watch &#8220;Indexed, though blocked by robots.txt&#8221; and &#8220;Discovered – currently not indexed&#8221; in the Page indexing report for new filter patterns over the following weeks</li>


<li>Check the Crawl stats report. A jump in daily requests right after the release usually means a new parameter became crawlable</li>

</ol>



<p class="wp-block-paragraph">Migrations need extra care because filter URLs change format between platforms. A Magento ?color=49 URL has no equivalent on Shopify, so every indexable filter page needs a matching page on the new platform and a 301 redirect in the redirect map, and the new robots.txt rules need to be live on launch day. Our <a href="https://scandiweb.com/blog/seo-migration-checklist/" target="_blank" rel="noopener">SEO migration checklist</a> covers the full redirect and launch process.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Before a migration, export the filter URLs that got organic clicks in the last year from Search Console. That list is the set of filter pages the new store has to rebuild and redirect.</p></div>



<p class="wp-block-paragraph">A <a href="https://scandiweb.com/blog/seo-technical-audit-why-and-when-you-need-to-perform-it/" target="_blank" rel="noopener">technical SEO audit</a> checks crawl rules, canonicals, and status codes across every template in one pass. It&#8217;s also where our <a href="https://scandiweb.com/seo-services" target="_blank" rel="noopener">eCommerce SEO team</a> starts when filter URLs outnumber the products on a store.</p>



<h2 class="wp-block-heading">Frequently asked questions about faceted navigation SEO</h2>



<h3 class="wp-block-heading">Are filter pages wasting crawl budget?</h3>



<p class="wp-block-paragraph">They can be, if search engines can crawl every filter combination. Check the Crawl Stats report in Search Console and your server logs for the share of Googlebot requests that go to filter and sort URLs. A growing &#8220;Discovered – currently not indexed&#8221; count full of filter URLs is another sign. Blocking combinations with no search value in robots.txt is the fix Google recommends.</p>



<h3 class="wp-block-heading">Should filtered URLs be indexed?</h3>



<p class="wp-block-paragraph">Only the ones people search for. A filter combination deserves an indexable URL when the phrase has search demand, the intent differs from the parent category, enough products stay on the page, it adds no more than one or two filters, and it has a stable page with its own title and copy. Everything else should stay out of the index.</p>



<h3 class="wp-block-heading">Should I use noindex or a canonical tag on filter pages?</h3>



<p class="wp-block-paragraph">Use a canonical tag pointing to the category for a small set of single-filter pages, and robots.txt for everything deeper. Noindex keeps a page out of search but saves no crawling, because Google still has to fetch the page to read the tag. Never combine noindex with a canonical to another URL, since the two send opposite signals.</p>



<h3 class="wp-block-heading">Is robots.txt or rel=canonical better for faceted navigation?</h3>



<p class="wp-block-paragraph">For filter combinations you never want in search, robots.txt is better, and Google calls it the more effective long-term control. A canonical tag still lets Google crawl the URLs and only reduces crawling over time. Use canonicals for the few single-filter pages that should pass their signals to the category, and robots.txt for the rest.</p>



<h3 class="wp-block-heading">Should sort and page-size URLs be indexed?</h3>



<p class="wp-block-paragraph">No. Sorting by price or showing 48 products per page changes the order and number of products, but the page targets the same search as the category. Block these parameters in robots.txt. Shopify&#8217;s default robots.txt already blocks sort_by URLs on collections, and on Magento you add rules for the product_list parameters yourself.</p>



<h3 class="wp-block-heading">How many filters can a page combine and still be worth indexing?</h3>



<p class="wp-block-paragraph">Usually one, sometimes two. Search demand drops fast as filters stack up. In the US, &#8220;black ankle boots&#8221; gets about 5,400 searches a month, &#8220;black leather ankle boots&#8221; about 1,200, and adding a size brings it to zero. Pages with three or more filters almost never have enough demand to justify their own URL.</p>



<h3 class="wp-block-heading">Do AJAX filters solve faceted navigation SEO?</h3>



<p class="wp-block-paragraph">They solve the crawl side, but they don&#8217;t help the long tail. If filters update the product grid without changing the URL, there are no filter URLs to crawl or index. That also means no filter page can rank, so you still need dedicated category or collection pages for the combinations people search for.</p>



<h3 class="wp-block-heading">What happens to filter pages when you migrate platforms?</h3>



<p class="wp-block-paragraph">Their URLs change, because every platform formats filters differently. List the filter pages that get organic traffic before the migration, build matching category or collection pages on the new platform, and 301 redirect the old URLs to them. Set the new robots.txt filter rules before launch, so the new store doesn&#8217;t open its full filter space to crawlers on day one.</p>



<h2 class="wp-block-heading">Faceted navigation SEO comes down to a short list</h2>



<p class="wp-block-paragraph">Faceted navigation SEO is mostly a list: the filter combinations that earn their own page, and a rule that blocks the rest. Build the list from search demand, give each entry a proper category or collection page, block deep combinations, sort orders, and price ranges in robots.txt, and recheck the setup after every release. Review the list each season too, because new filters and new ranges change which phrases have demand.</p>



<script type="application/ld+json">{"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"@type": "Question", "name": "Are filter pages wasting crawl budget?", "acceptedAnswer": {"@type": "Answer", "text": "They can be, if search engines can crawl every filter combination. Check the Crawl Stats report in Search Console and your server logs for the share of Googlebot requests that go to filter and sort URLs. A growing \"Discovered – currently not indexed\" count full of filter URLs is another sign. Blocking combinations with no search value in robots.txt is the fix Google recommends."}}, {"@type": "Question", "name": "Should filtered URLs be indexed?", "acceptedAnswer": {"@type": "Answer", "text": "Only the ones people search for. A filter combination deserves an indexable URL when the phrase has search demand, the intent differs from the parent category, enough products stay on the page, it adds no more than one or two filters, and it has a stable page with its own title and copy. Everything else should stay out of the index."}}, {"@type": "Question", "name": "Should I use noindex or a canonical tag on filter pages?", "acceptedAnswer": {"@type": "Answer", "text": "Use a canonical tag pointing to the category for a small set of single-filter pages, and robots.txt for everything deeper. Noindex keeps a page out of search but saves no crawling, because Google still has to fetch the page to read the tag. Never combine noindex with a canonical to another URL, since the two send opposite signals."}}, {"@type": "Question", "name": "Is robots.txt or rel=canonical better for faceted navigation?", "acceptedAnswer": {"@type": "Answer", "text": "For filter combinations you never want in search, robots.txt is better, and Google calls it the more effective long-term control. A canonical tag still lets Google crawl the URLs and only reduces crawling over time. Use canonicals for the few single-filter pages that should pass their signals to the category, and robots.txt for the rest."}}, {"@type": "Question", "name": "Should sort and page-size URLs be indexed?", "acceptedAnswer": {"@type": "Answer", "text": "No. Sorting by price or showing 48 products per page changes the order and number of products, but the page targets the same search as the category. Block these parameters in robots.txt. Shopify's default robots.txt already blocks sort_by URLs on collections, and on Magento you add rules for the product_list parameters yourself."}}, {"@type": "Question", "name": "How many filters can a page combine and still be worth indexing?", "acceptedAnswer": {"@type": "Answer", "text": "Usually one, sometimes two. Search demand drops fast as filters stack up. In the US, \"black ankle boots\" gets about 5,400 searches a month, \"black leather ankle boots\" about 1,200, and adding a size brings it to zero. Pages with three or more filters almost never have enough demand to justify their own URL."}}, {"@type": "Question", "name": "Do AJAX filters solve faceted navigation SEO?", "acceptedAnswer": {"@type": "Answer", "text": "They solve the crawl side, but they don't help the long tail. If filters update the product grid without changing the URL, there are no filter URLs to crawl or index. That also means no filter page can rank, so you still need dedicated category or collection pages for the combinations people search for."}}, {"@type": "Question", "name": "What happens to filter pages when you migrate platforms?", "acceptedAnswer": {"@type": "Answer", "text": "Their URLs change, because every platform formats filters differently. List the filter pages that get organic traffic before the migration, build matching category or collection pages on the new platform, and 301 redirect the old URLs to them. Set the new robots.txt filter rules before launch, so the new store doesn't open its full filter space to crawlers on day one."}}]}</script>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p><style> p.box { border: 1px solid black; padding-top: 30px; padding-right: 30px; padding-bottom: 30px; padding-left: 30px; } </style> <p class="box"><em>Not sure which of your filter pages belong in Google? </em><a href="https://scandiweb.com/contact" target="_blank" rel="noreferrer noopener"><em>Send us a category URL</em></a><em>, and we&#x27;ll show you which combinations to index and which to block.</em></p></p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/faceted-navigation-seo/">Faceted Navigation SEO: Which Filter Pages to Index and Which to Block</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>B2B Customer Onboarding: Getting Customers to Use Your New Portal</title>
		<link>https://scandiweb.com/blog/b2b-customer-onboarding/</link>
		
		<dc:creator><![CDATA[Olga Kimalana]]></dc:creator>
		<pubDate>Thu, 22 Oct 2026 09:37:00 +0000</pubDate>
				<category><![CDATA[Digital Growth]]></category>
		<category><![CDATA[UX Design]]></category>
		<category><![CDATA[b2b]]></category>
		<category><![CDATA[B2B eCommerce]]></category>
		<category><![CDATA[customer experience]]></category>
		<category><![CDATA[Onboarding]]></category>
		<category><![CDATA[retention]]></category>
		<guid isPermaLink="false">https://scandiweb.com/blog/?p=26055</guid>

					<description><![CDATA[<p>B2B customer onboarding starts at go-live. A 12-month plan to move offline buyers onto your portal, with rep tactics and metrics to track.</p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/b2b-customer-onboarding/">B2B Customer Onboarding: Getting Customers to Use Your New Portal</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="lazyblock-related-Kc7Ob wp-block-lazyblock-related"><div class="related-services">
  <h3>Related Services</h3>
  <ul>
    
    <li>
      <a  href="https://scandiweb.com/b2b-ecommerce-solutions" target=_blank >
        B2B eCommerce solutions
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.com/services/cro-ux" target=_blank >
        CX optimization
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.com/email-marketing-services" target=_blank >
        Email marketing
      </a>
    </li>
    
  </ul>
</div>
</div>


<p class="wp-block-paragraph">If your B2B portal has been live for six months and your best customers still email their orders to the same rep, you are where most suppliers are after launch. The platform usually works. What&#8217;s missing is B2B customer onboarding, and in most companies nobody has been given that job.</p>



<p class="wp-block-paragraph">Suppliers also tend to overrate how far they have come. In a <a href="https://www.deloittedigital.com/content/dam/digital/nl/pdfs/2026/deloitte-digital-b2b-commerce-research-report.pdf" target="_blank" rel="noopener">Deloitte Digital survey</a> of 530 US B2B suppliers and 530 buyers, 72% of suppliers said their sales processes were mostly or highly automated. Only 47% of buyers said their purchasing processes were.</p>



<p class="wp-block-paragraph">Launch is day 0. The 12 months after it decide whether the portal replaces the phone or becomes one more channel your team maintains. This guide covers why existing customers don&#8217;t switch on their own, a five-stage onboarding plan from go-live to month 12, how to pay reps when their customers order online, and the numbers to report to leadership.</p>



<h2 class="wp-block-heading">What is B2B customer onboarding?</h2>



<p class="wp-block-paragraph">B2B customer onboarding is the work of moving existing business accounts from ordering by phone, email, EDI, or through a sales rep to ordering on your B2B customer portal. It covers account setup, the first online order, reasons to come back, and changes to how sales is paid. It runs for months after go-live, account by account.</p>



<p class="wp-block-paragraph">Most guides that rank for this term describe SaaS onboarding: getting a new user to their first &#8220;aha&#8221; moment in software, the topic of our <a href="https://scandiweb.com/blog/user-onboarding-best-practices/" target="_blank" rel="noopener">user onboarding best practices</a>. A supplier&#8217;s problem is different. Your customers already buy from you, and the old way of ordering still works for them.</p>



<figure class="wp-block-table"><table><thead><tr><th></th><th>SaaS customer onboarding</th><th>B2B eCommerce customer onboarding</th></tr></thead><tbody><tr><td>Who you onboard</td><td>New customers who just signed a contract</td><td>Existing accounts who already order from you</td></tr><tr><td>What you compete with</td><td>Doing nothing</td><td>The rep, the phone, email, and EDI</td></tr><tr><td>First value</td><td>First use of a feature</td><td>First order with the right prices and stock</td></tr><tr><td>Who has to change</td><td>The user</td><td>The buyer, the rep, and customer service</td></tr><tr><td>Typical length</td><td>Days to weeks</td><td>6–12 months across the account base</td></tr><tr><td>Success measure</td><td>Activation and retention</td><td>Share of each account&#8217;s orders placed online</td></tr></tbody></table><figcaption class="wp-element-caption">SaaS customer onboarding vs B2B eCommerce customer onboarding</figcaption></figure>



<p class="wp-block-paragraph">Our <a href="https://scandiweb.com/blog/b2b-ecommerce-trends/" target="_blank" rel="noopener">B2B eCommerce trends for 2027</a> put customer adoption among the biggest jobs suppliers face next year. This guide is the detailed plan for that job.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Your portal&#8217;s real competitor is the rep&#8217;s phone number. Time every onboarding step against a phone call, because buyers keep calling until a real order is faster online.</p></div>



<h2 class="wp-block-heading">Why B2B customers don&#8217;t use a new portal</h2>



<p class="wp-block-paragraph">B2B customers keep ordering offline after a portal launches for five common reasons: the old way still works, the portal&#8217;s prices or stock don&#8217;t match what the rep says, their account isn&#8217;t set up, products they buy are missing online, and their rep has no reason to send them there. These are the B2B eCommerce challenges we see most after go-live.</p>



<p class="wp-block-paragraph">Buyers do want to order on their own. <a href="https://www.gartner.com/en/newsroom/press-releases/2026-03-09-gartner-sales-survey-finds-67-percent-of-b2b-buyers-prefer-a-rep-free-experience" target="_blank" rel="noopener">Gartner found</a> that 67% of B2B buyers prefer a rep-free experience, and Deloitte found that 65% choose purchasing channels on ease of use. The same Deloitte research shows how far suppliers are from that: buyers were six times as likely as suppliers to describe the buying process as &#8220;mostly manual,&#8221; and three times as likely to say the supplier is difficult to do business with.</p>



<h3 class="wp-block-heading">The old way still works</h3>



<p class="wp-block-paragraph">A buyer who has emailed the same rep for years often gets a confirmed order back within the hour. Switching means a new login and searching for products they used to name in one line of an email. Unless the portal saves them time on their first order, they go back to email.</p>



<h3 class="wp-block-heading">Prices and stock don&#8217;t match</h3>



<p class="wp-block-paragraph">A portal price that differs from the rep&#8217;s quote or the invoice undoes weeks of onboarding. Buyers call to check, and soon they stop logging in. The fix is upstream: one source for contract pricing and stock, usually the ERP, read by the portal in real time. Our guide to <a href="https://scandiweb.com/blog/ecommerce-erp-integration/" target="_blank" rel="noopener">eCommerce ERP integration</a> covers the patterns.</p>



<h3 class="wp-block-heading">The account isn&#8217;t ready</h3>



<p class="wp-block-paragraph">Many launches send every customer the same invitation email and a password reset link. The buyer logs in to an empty account: no saved lists, no order history, no colleagues set up with the right approval rights. For larger customers, <a href="https://scandiweb.com/blog/ecommerce-sso-integration/" target="_blank" rel="noopener">single sign-on</a> removes the login problem altogether.</p>



<h3 class="wp-block-heading">Products are missing</h3>



<p class="wp-block-paragraph">Buyers won&#8217;t move a whole reorder to a portal that only carries part of what they buy. Wainbee, the largest distributor of Parker products in Canada, had only 10% of its 600,000+ products online because supplier data arrived in CSV and XLS files with no shared structure. A Pimcore PIM connected to its ERP and supplier feeds put the full catalog online.</p>



<p class="wp-block-paragraph"><strong>Read more:</strong> <a href="https://scandiweb.com/blog/case-study-unifying-product-information-with-pimcore-pim/" target="_blank" rel="noopener">Case Study: Unifying Product Information with Pimcore PIM</a></p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-wainbee-full-catalog.png" alt="Wainbee industrial distribution store with product categories shown on desktop and mobile screens" class="wp-image-26044" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-wainbee-full-catalog.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-wainbee-full-catalog-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-wainbee-full-catalog-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-wainbee-full-catalog-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-wainbee-full-catalog-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-wainbee-full-catalog-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-wainbee-full-catalog-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">Wainbee put its full catalog of 600,000+ products online for B2B buyers</figcaption></figure></div>



<h3 class="wp-block-heading">The rep has no reason to help</h3>



<p class="wp-block-paragraph">If a rep&#8217;s commission depends on orders they place themselves, every order a customer places online looks like lost income. So reps keep taking orders by phone, and the portal numbers stay flat. The commission section below covers the fix.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Most adoption problems show up in the portal but start somewhere else: in the ERP, in the product data, or in the sales compensation plan.</p></div>



<h2 class="wp-block-heading">The 5 stages of the B2B customer onboarding process</h2>



<p class="wp-block-paragraph">An onboarding process that works for B2B suppliers runs in five stages: choose and prepare the first accounts before go-live, set up each account in the first 30 days, place first orders together with reps in months 2–3, give buyers reasons to come back in months 4–6, and make online the default for everyone in months 7–12. These B2B customer onboarding best practices come from the B2B projects we support after launch.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-12-month-plan.png" alt="Timeline with five stages: before go-live, days 1 to 30, months 2 to 3, months 4 to 6, and months 7 to 12" class="wp-image-26046" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-12-month-plan.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-12-month-plan-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-12-month-plan-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-12-month-plan-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-12-month-plan-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-12-month-plan-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-12-month-plan-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">The five stages of B2B customer onboarding, from go-live to month 12</figcaption></figure></div>



<h3 class="wp-block-heading">Stage 1: Pick the first accounts before go-live</h3>



<p class="wp-block-paragraph">Don&#8217;t launch to every customer at once. Pick 20 to 50 accounts for the first wave: customers who reorder often from a stable list, buyers who already use other suppliers&#8217; portals, and accounts whose reps are willing to help. Repeat orders are the easiest to move online, because the buyer already knows what they want.</p>



<p class="wp-block-paragraph">For each account, decide before launch who owns the move (usually the rep, with support from customer service), which buyers will log in, and what the first online order will be.</p>



<h3 class="wp-block-heading">Stage 2: Set up each account in the first 30 days</h3>



<p class="wp-block-paragraph">Treat each large account as its own small project. Before the buyer logs in for the first time, the account should already have:</p>



<ul class="wp-block-list">
<li>Its contract prices and payment terms, checked against the last three invoices</li>


<li>Every buyer and approver, with the right roles and spending limits</li>


<li>A saved list of the products they reorder most, built from their order history</li>


<li>Their past orders, so they can reorder from history instead of searching</li>

</ul>



<p class="wp-block-paragraph">Then run a short setup call with the buyer, ideally led by their rep. Thirty minutes on a shared screen does more than any welcome email. If you run Adobe Commerce, features such as company accounts, shared catalogs, requisition lists, and quick order cover most of this, as our overview of <a href="https://scandiweb.com/blog/top-9-adobe-commerce-b2b-features/" target="_blank" rel="noopener">Adobe Commerce B2B features</a> explains.</p>



<h3 class="wp-block-heading">Stage 3: Place the first orders together (months 2–3)</h3>



<p class="wp-block-paragraph">Ask reps to place the first online order with the buyer, either on a call or by logging in to the customer&#8217;s account and building the cart for them to approve. The buyer sees their own prices, stock, and history in the portal, and the rep stays part of the relationship.</p>



<p class="wp-block-paragraph">Macron, the teamwear and sports apparel brand, gave its team a &#8220;Shop as a Customer&#8221; feature on Adobe Commerce. Support staff log in under a partner&#8217;s account and help with bulk orders and complex configurations, using the same catalog and prices the partner sees. With SAP integration for live stock and flexible ordering by SKU, CSV upload, and reorder, Macron cut order creation time by 40%.</p>



<p class="wp-block-paragraph"><strong>Read more:</strong> <a href="https://scandiweb.com/blog/case-study-macron-adobe-commerce-b2b-platform/" target="_blank" rel="noopener">Case Study: Macron&#8217;s B2B Platform Evolution with Adobe Commerce</a></p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-rep-assisted-first-order.png" alt="B2B portal cart with a rep logged in as the customer, contract prices, stock status, and a send for approval button" class="wp-image-26048" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-rep-assisted-first-order.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-rep-assisted-first-order-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-rep-assisted-first-order-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-rep-assisted-first-order-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-rep-assisted-first-order-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-rep-assisted-first-order-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-rep-assisted-first-order-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">A rep builds the first order in the customer&#x27;s account for buyer approval</figcaption></figure></div>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>A first order placed together teaches the portal on a real purchase and shows the buyer that their rep is still their contact.</p></div>



<h3 class="wp-block-heading">Stage 4: Give buyers reasons to come back (months 4–6)</h3>



<p class="wp-block-paragraph">A portal that is only a cart gets used only when someone remembers to order. Give buyers reasons to log in between orders:</p>



<ul class="wp-block-list">
<li><strong>Reorder prompts.</strong> Send reminders when an account&#8217;s usual reorder date passes, based on its real order history, with a one-click link to the saved list.</li>


<li><strong>Order status and documents.</strong> Tracking, invoices, delivery notes, and certificates in the portal stop the &#8220;where is my order&#8221; calls.</li>


<li><strong>Self-service for routine requests.</strong> Returns, statement downloads, and user changes the buyer can do alone.</li>

</ul>



<p class="wp-block-paragraph">This is also where support costs start to fall. advancedlife, Australia&#8217;s national school photography specialist, replaced five legacy systems with one platform that includes a self-service portal for schools. Schools upload rosters, correct student data, and download images without contacting the support team. The platform went live in 14 weeks, before the busiest season, and support load dropped 95% after go-live.</p>



<p class="wp-block-paragraph"><strong>Read more:</strong> <a href="https://scandiweb.com/blog/school-photography-commerce-accelerator/" target="_blank" rel="noopener">School Photography Commerce: Production-Ready Platform in 14 Weeks</a></p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-advancedlife-ordering-platform.png" alt="advancedlife school photo ordering site on desktop and mobile with the four-step online ordering flow" class="wp-image-26049" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-advancedlife-ordering-platform.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-advancedlife-ordering-platform-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-advancedlife-ordering-platform-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-advancedlife-ordering-platform-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-advancedlife-ordering-platform-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-advancedlife-ordering-platform-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-advancedlife-ordering-platform-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">advancedlife cut support load by 95% after its new platform went live</figcaption></figure></div>



<p class="wp-block-paragraph">Reorder prompts work best as a lifecycle email program triggered by order data. Our <a href="https://scandiweb.com/email-marketing-services" target="_blank" rel="noopener">email marketing</a> team builds these flows on top of the portal&#8217;s order history.</p>



<h3 class="wp-block-heading">Stage 5: Make online the default (months 7–12)</h3>



<p class="wp-block-paragraph">By month 7 the first waves are ordering online and the long tail is still on the phone. Now change the defaults:</p>



<ul class="wp-block-list">
<li>Customer service enters phone and email orders into the portal on the customer&#8217;s account, so history and saved lists build up there.</li>


<li>New customers open accounts on the portal from day one.</li>


<li>Small accounts below a set order value get portal-only ordering, with a phone line for exceptions.</li>


<li>Paper order forms and spreadsheet price lists are retired.</li>

</ul>



<p class="wp-block-paragraph">Don&#8217;t force your largest accounts. Some will keep EDI or move to punchout from their procurement system, and that still counts as digital. Deloitte found that 92% of buyers who use EDI today plan to shift partly or fully to other channels such as eCommerce or procurement systems. Later, some orders may come from AI agents through protocols such as Google&#8217;s <a href="https://scandiweb.com/blog/universal-commerce-protocol/" target="_blank" rel="noopener">Universal Commerce Protocol</a>, and they will need the same account prices the portal shows.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>When customer service keeps entering phone orders into the portal, every account builds a usable order history there, even before its buyers log in.</p></div>



<h2 class="wp-block-heading">How to pay sales reps when customers order online</h2>



<p class="wp-block-paragraph">Pay reps on all of their accounts&#8217; revenue, whatever channel the order comes through. If commission only counts orders the rep places, every online order costs the rep money, and they will steer customers back to the phone. Once channel no longer affects pay, reps can treat the portal as a tool that frees their time for new business.</p>



<p class="wp-block-paragraph">Three commission models work in practice:</p>



<ol class="wp-block-list">
<li><strong>Account-based commission.</strong> The rep earns on every order from their accounts, online or offline. This is the simplest fix and usually the first one to make.</li>


<li><strong>Adoption targets on top.</strong> A quarterly bonus for raising each account&#8217;s share of online orders, for example from 20% to 60% over two quarters.</li>


<li><strong>New business weighting.</strong> A higher rate on revenue from new accounts, so time saved on order entry goes into finding new customers.</li>

</ol>



<p class="wp-block-paragraph">Agree on the model before go-live. Reps who learn the new rules after the launch have already decided what the portal means for them.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Your compensation plan is part of the B2B eCommerce project. If it stays the same, expect the order channels to stay the same too.</p></div>



<h2 class="wp-block-heading">How to measure B2B customer onboarding</h2>



<p class="wp-block-paragraph">Measure B2B customer onboarding by the share of each account&#8217;s orders placed online, tracked monthly per account. Add how many invited buyers placed a first order, how many reorder online, and how much time order entry and support take. Logins and traffic alone hide the accounts that never moved.</p>



<figure class="wp-block-table"><table><thead><tr><th>Metric</th><th>What it shows</th><th>Where to find it</th></tr></thead><tbody><tr><td>Online share of orders, per account</td><td>Whether the account has really moved</td><td>ERP order source field</td></tr><tr><td>First online order rate</td><td>Whether setup and the first order work</td><td>Portal accounts vs orders</td></tr><tr><td>Repeat online orders within 90 days</td><td>Whether the first order turned into a habit</td><td>Portal order history</td></tr><tr><td>Returning visitors</td><td>Whether buyers come back between orders</td><td>Analytics</td></tr><tr><td>Order entry time</td><td>Staff hours freed up</td><td>Customer service time tracking</td></tr><tr><td>Support contacts per order</td><td>Whether self-service works</td><td>Help desk</td></tr></tbody></table><figcaption class="wp-element-caption">Metrics to track B2B customer onboarding per account</figcaption></figure>



<p class="wp-block-paragraph">Report these per account. A few large accounts ordering almost everything online can make the total look healthy while two hundred small accounts still order by phone, and each group needs a different next step. Macron&#8217;s results show what to look for: returning visitors grew 32.8% after its new platform launched, and order creation time fell 40%.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-adoption-dashboard.png" alt="Dashboard table of B2B accounts with online order share, first order status, and rep owner, some flagged in red" class="wp-image-26052" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-adoption-dashboard.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-adoption-dashboard-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-adoption-dashboard-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-adoption-dashboard-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-adoption-dashboard-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-adoption-dashboard-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-customer-onboarding-adoption-dashboard-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">Track B2B customer onboarding per account, not as one site-wide average</figcaption></figure></div>



<p class="wp-block-paragraph">If you are not sure where accounts drop off, a <a href="https://scandiweb.com/blog/b2b-ecommerce-customer-experience-audit/" target="_blank" rel="noopener">B2B customer experience audit</a> maps each step from login to reorder and shows which ones lose buyers.</p>



<h2 class="wp-block-heading">FAQ about B2B customer onboarding</h2>



<h3 class="wp-block-heading">How long does B2B customer onboarding take?</h3>



<p class="wp-block-paragraph">In our experience, most suppliers need 6 to 12 months to move the bulk of their accounts online. The first wave of 20 to 50 accounts can be ordering online within the first three months. The long tail of small and infrequent buyers takes longer, and some large accounts move to EDI or punchout instead of the portal.</p>



<h3 class="wp-block-heading">Who should own customer adoption after a B2B portal launch?</h3>



<p class="wp-block-paragraph">One named person should own adoption across all accounts, usually the head of eCommerce or a digital sales manager, with reps owning their own accounts. Without a single owner, adoption falls between the eCommerce team, which built the portal, and sales, which owns the customer, and neither group reports on it.</p>



<h3 class="wp-block-heading">How do you get B2B customers to order online instead of calling?</h3>



<p class="wp-block-paragraph">Make the first online order faster than calling. Load each account&#8217;s prices, buyers, and reorder list before they log in, have the rep place the first order with them, and send reorder reminders based on their order history. Keep prices and stock in the portal identical to the rep&#8217;s quote, or customers will call to check.</p>



<h3 class="wp-block-heading">What should a B2B customer portal include on day one?</h3>



<p class="wp-block-paragraph">On day one, a B2B customer portal needs contract prices, live stock, saved reorder lists, order history, quick order by SKU, and user roles with approvals. Order tracking, invoices, and document downloads give buyers reasons to log in between orders. Features beyond that can wait until the first accounts are ordering online.</p>



<h3 class="wp-block-heading">Should B2B suppliers force customers to order online?</h3>



<p class="wp-block-paragraph">Not at first. Forcing large accounts usually pushes them to a competitor or to email. Start with the accounts most likely to switch, make online ordering easier than the old way, and only make it the default for small accounts once the portal has proven itself, keeping a phone line for exceptions.</p>



<h3 class="wp-block-heading">What are the biggest B2B eCommerce challenges after launch?</h3>



<p class="wp-block-paragraph">The biggest B2B eCommerce challenges after launch are customer adoption, prices and stock that don&#8217;t match the ERP, incomplete product data, and sales compensation that rewards offline orders. Platform features are rarely the blocker. Most stalled portals work technically but have no plan or owner for moving existing customers online.</p>



<h2 class="wp-block-heading">B2B customer onboarding is the second half of the project</h2>



<p class="wp-block-paragraph">B2B customer onboarding turns a working portal into a channel your customers use. Plan it before launch, set up accounts one by one, let reps place the first orders, give buyers reasons to come back, and change pay so reps gain when customers order online. Then measure the online share of orders per account every month. If you want help finding new buyers as well, our guide to <a href="https://scandiweb.com/blog/b2b-seo/" target="_blank" rel="noopener">B2B SEO</a> covers that side.</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p><style> p.box { border: 1px solid black; padding-top: 30px; padding-right: 30px; padding-bottom: 30px; padding-left: 30px; } </style> <p class="box"><em>Portal live but the phone still ringing? </em><a href="https://scandiweb.com/contact" target="_blank" rel="noreferrer noopener"><em>Tell us where your accounts are stuck</em></a><em>, and we&#x27;ll help you plan the next 12 months of adoption.</em></p></p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/b2b-customer-onboarding/">B2B Customer Onboarding: Getting Customers to Use Your New Portal</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ari Partners with Magefan: Install Magefan Extensions for Magento in Chat</title>
		<link>https://scandiweb.com/blog/ari-magefan-partnership/</link>
		
		<dc:creator><![CDATA[Glebs Vrevsky]]></dc:creator>
		<pubDate>Thu, 22 Oct 2026 08:49:55 +0000</pubDate>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[AI agents]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[magento 2]]></category>
		<category><![CDATA[Magento Extensions]]></category>
		<category><![CDATA[magento marketplace extension]]></category>
		<guid isPermaLink="false">https://scandiweb.com/blog/?p=26030</guid>

					<description><![CDATA[<p>scandiweb’s Ari and Magefan are partners. Ari installs Magefan’s Magento extensions on a preview copy of your store in minutes.</p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/ari-magefan-partnership/">Ari Partners with Magefan: Install Magefan Extensions for Magento in Chat</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="lazyblock-related-Z1FJzwP wp-block-lazyblock-related"><div class="related-services">
  <h3>Related Services</h3>
  <ul>
    
    <li>
      <a  href="https://www.withari.ai/marketplace" target=_blank >
        Ari Extension Marketplace
      </a>
    </li>
    
    <li>
      <a  href="https://www.withari.ai/partners" target=_blank >
        Partnering with Ari
      </a>
    </li>
    
    <li>
      <a  href="https://www.withari.ai/expedio" target=_blank >
        Expedio: Magento 2x Faster
      </a>
    </li>
    
  </ul>
</div>
</div>


<p class="wp-block-paragraph">We&#8217;re excited to announce that scandiweb&#8217;s <a href="https://www.withari.ai/" target="_blank" rel="noreferrer noopener">Ari</a> (the first agent for Magento) and <a href="https://magefan.com/">Magefan</a> are now partners. Magefan&#8217;s Magento extensions are available in the <a href="https://www.withari.ai/marketplace" target="_blank" rel="noreferrer noopener">Ari extension marketplace</a>, where Ari installs and configures them for merchants, letting them try each one on a copy of their store before buying a license.</p>



<p class="wp-block-paragraph">Magefan&#8217;s Blog extension perfectly shows what that changes in practice. It has been downloaded more than 2 million times and is live on around 10,000 Magento stores. Setting it up means a Composer install and configuration before anyone can publish before anyone can publish a first post. With Ari, a merchant asks for a blog in chat and has Magefan&#8217;s extension installed on a preview copy of their store a few minutes later.</p>



<p class="wp-block-paragraph"><strong>Also read:<br></strong><a href="https://scandiweb.com/blog/ari-extension-marketplace/" target="_blank" rel="noreferrer noopener">Introducing: Ari Extension Marketplace for Magento</a></p>



<h2 class="wp-block-heading">About Magefan</h2>



<p class="wp-block-paragraph">Magefan has been building Magento 2 extensions for more than 11 years. The catalog today covers 52+ Magento extensions and 8 Shopify apps, with 4M+ downloads worldwide. Their tools handle content, SEO, data tracking, and store optimization for thousands of merchants in 90+ countries.</p>



<p class="wp-block-paragraph">All of Magefan’s extensions are accessible with Ari. To start, here are Magefan’s top extensions, developed over a decade and backed by thousands of positive reviews and downloads:</p>



<ul class="wp-block-list">
<li><a href="https://magefan.com/magento2-blog-extension" target="_blank" rel="noreferrer noopener">Magento 2 Blog Extension</a> – a full blog inside the Magento admin, with posts, categories, tags, authors, and comments, 22+ templates, related products under each post, blog SEO built in, and import tools for moving over from WordPress or another blog module; works with Hyvä and Breeze.</li>



<li><a href="https://magefan.com/magento-2-translation-extension" target="_blank" rel="noreferrer noopener">Magento 2 Translation Extension</a> that translates products, categories, CMS content, emails, and interface text into 200+ languages from the admin, manually or automatically through DeepL, ChatGPT, Google Translate, or DeepSeek, one page at a time, in bulk, or on a schedule.</li>



<li><a href="https://magefan.com/magento-2-seo-extension" target="_blank" rel="noreferrer noopener">Magento 2 SEO Extension</a> with seven SEO tools in one suite, covering meta tag templates, canonical tags, rich snippets, automatic redirects, hreflang, cross-linking, XML and HTML sitemaps, and an llms.txt file for AI crawlers.</li>



<li><a href="https://magefan.com/magento-2-google-tag-manager" target="_blank" rel="noreferrer noopener">Magento 2 Google Tag Manager</a> for connecting the store to GTM, Google Analytics 4, and Google Ads with a ready-made data layer, tracks 13+ eCommerce events from product view to purchase, and supports server-side tracking and Google Consent Mode.</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img fetchpriority="high" decoding="async" width="1024" height="536" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/magefan-top-four-extensions-ari-marketplace-1024x536.png" alt="" class="wp-image-26325" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/magefan-top-four-extensions-ari-marketplace-1024x536.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/magefan-top-four-extensions-ari-marketplace-300x157.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/magefan-top-four-extensions-ari-marketplace-150x79.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/magefan-top-four-extensions-ari-marketplace-768x402.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/magefan-top-four-extensions-ari-marketplace.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">The full list is on Magefan’s <a href="https://magefan.com/magento-2-extensions" target="_blank" rel="noreferrer noopener">Magento 2 extensions</a> page.</p>



<h2 class="wp-block-heading">How installing a Magefan extension with Ari works</h2>



<p class="wp-block-paragraph">Merchants can browse the marketplace and click <strong>Try out</strong> on the listing, or ask for the feature in chat with Ari (“add a blog to my store”), and Ari points to the suitable extension.</p>



<p class="wp-block-paragraph">From there, the install goes like this:</p>



<ol class="wp-block-list">
<li>Ari explains the trial before anything happens, so the merchant knows what is about to change and where.</li>



<li>Ari installs the extension on a copy of the store in a separate conversation. It takes a few minutes, and the merchant can keep working in other conversations meanwhile.</li>



<li>Before the install starts, Ari checks the extension against the store’s theme and the modules already running, and it tests the store before showing the result. A progress card in the chat shows the files changed and the commands run.</li>



<li>When the install is done, Ari shows the merchant around. The extension’s settings and pages open from buttons in the chat, and Ari points to the feature worth turning on first.</li>



<li>The live store does not change until the merchant releases the conversation, the same way they release any other change in Ari.</li>
</ol>



<p class="wp-block-paragraph">After the setup, the merchant can ask Ari how a Magefan feature works, which settings suit their store, or just ask Ari to change the settings for them. Every setting Ari mentions opens in the Magento admin of the preview store, right beside the chat.</p>



<p class="wp-block-paragraph">With the Blog extension, for example, that means a store team asks for a blog, sees Magefan Blog running on their own theme with their own catalog a few minutes later, and gets help from Ari choosing a template, setting URLs, and publishing the first post.</p>



<h2 class="wp-block-heading">Licenses and support</h2>



<p class="wp-block-paragraph">Ari installs the free version of an extension. Paid versions are bought from Magefan, at Magefan’s price and on Magefan’s terms, and Ari installs the extension with the license the merchant gets there.</p>



<p class="wp-block-paragraph">Magefan keeps supporting its extensions the way it does today, which covers bugs in the extension and license questions. Ari and the Ari team take care of the installation and configuration, along with any conflicts with the rest of the store and anything on the Magento side.</p>



<p class="wp-block-paragraph">Ari also works with more than 1,000 Magento extensions beyond what is listed in the marketplace, custom modules included. If a store needs an extension that has no listing yet, the merchant asks for it in the chat, and Ari installs it on the preview copy the same way.</p>



<p class="wp-block-paragraph">Ari creator Alfreds Genkins and co-founder Glebs Vrevsky are showing Ari building a change live in a <a href="https://www.withari.ai/news/webinars/vibe-code-your-magento-with-ari">free webinar on October 28</a>, and hosting a live Q&amp;A with merchants, developers, agencies, and extension providers.</p>



<h2 class="wp-block-heading">Frequently asked questions</h2>



<h3 class="wp-block-heading">Which Magefan extensions can Ari install?</h3>



<p class="wp-block-paragraph">Magefan has made its Magento 2 extensions available to Ari. The Blog, Translation, SEO, and Google Tag Manager extensions are the ones Magefan recommends trying first, and Ari can also suggest other Magefan extensions when they match what a merchant asks for in chat.</p>



<h3 class="wp-block-heading">Do I buy Magefan extensions through Ari or from Magefan?</h3>



<p class="wp-block-paragraph">You buy licenses from Magefan, at Magefan&#8217;s prices and on Magefan&#8217;s terms. Ari installs the extension on a preview copy of your store for the trial, and the extension reaches your live server only after you have bought the license.</p>



<h3 class="wp-block-heading">Who supports a Magefan extension installed by Ari?</h3>



<p class="wp-block-paragraph">Magefan supports its extensions as it does today, including bugs and license questions. The Ari team handles the install and the configuration, along with any conflicts between the extension and the rest of your Magento store.</p>



<h3 class="wp-block-heading">Do Magefan extensions work with Hyvä?</h3>



<p class="wp-block-paragraph">Many of them do. Magefan&#8217;s Blog extension, for example, supports Hyvä and Breeze themes. Ari installs every extension on a preview copy of your store first, so you can check how it behaves on your own theme before buying.</p>



<script type="application/ld+json">{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Which Magefan extensions can Ari install?","acceptedAnswer":{"@type":"Answer","text":"Magefan has made its Magento 2 extensions available to Ari. The Blog, Translation, SEO, and Google Tag Manager extensions are the ones Magefan recommends trying first, and Ari can also suggest other Magefan extensions when they match what a merchant asks for in chat."}},{"@type":"Question","name":"Do I buy Magefan extensions through Ari or from Magefan?","acceptedAnswer":{"@type":"Answer","text":"You buy licenses from Magefan, at Magefan's prices and on Magefan's terms. Ari installs the extension on a preview copy of your store for the trial, and the extension reaches your live server only after you have bought the license."}},{"@type":"Question","name":"Who supports a Magefan extension installed by Ari?","acceptedAnswer":{"@type":"Answer","text":"Magefan supports its extensions as it does today, including bugs and license questions. The Ari team handles the install and the configuration, along with any conflicts between the extension and the rest of your Magento store."}},{"@type":"Question","name":"Do Magefan extensions work with Hyvä?","acceptedAnswer":{"@type":"Answer","text":"Many of them do. Magefan's Blog extension, for example, supports Hyvä and Breeze themes. Ari installs every extension on a preview copy of your store first, so you can check how it behaves on your own theme before buying."}}]}</script>



<div style="height:0px" aria-hidden="true" class="wp-block-spacer"></div>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<style> p.box { border: 1px solid black; padding-top: 30px; padding-right: 30px; padding-bottom: 30px; padding-left: 30px; } </style> <p class="box wp-block-paragraph"><em>Has a Magefan extension been sitting on your wishlist for a while? <a href="https://www.withari.ai/" target="_blank" rel="noreferrer noopener">Connect your store to Ari</a> and ask for it in chat. Ari puts it on a preview copy of your store so you can see it working before you buy the license.</em></em> <em><br><br>Do you build Magento extensions? List them in the Ari marketplace for free, and Ari will install and configure&nbsp;them for merchants. <a href="https://www.withari.ai/partners" target="_blank" rel="noreferrer noopener">Propose your extension</a> on the Ari partners page.</em></p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/ari-magefan-partnership/">Ari Partners with Magefan: Install Magefan Extensions for Magento in Chat</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Black Friday Code Freeze: 2026 Timeline, Load Testing, and Incident Plan</title>
		<link>https://scandiweb.com/blog/black-friday-code-freeze/</link>
		
		<dc:creator><![CDATA[Aigars Pavlovics]]></dc:creator>
		<pubDate>Thu, 22 Oct 2026 07:00:00 +0000</pubDate>
				<category><![CDATA[Digital Growth]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[24/7 support]]></category>
		<category><![CDATA[Black Friday]]></category>
		<category><![CDATA[code freeze]]></category>
		<category><![CDATA[cyber monday]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[eCommerce operations]]></category>
		<category><![CDATA[load testing]]></category>
		<category><![CDATA[peak traffic]]></category>
		<category><![CDATA[site performance]]></category>
		<guid isPermaLink="false">https://scandiweb.com/blog/?p=26181</guid>

					<description><![CDATA[<p>Plan your Black Friday code freeze with 2026 dates, load testing targets, an incident runbook, on-call cover, and safe test orders.</p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/black-friday-code-freeze/">Black Friday Code Freeze: 2026 Timeline, Load Testing, and Incident Plan</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="lazyblock-related-BfCfz wp-block-lazyblock-related"><div class="related-services">
  <h3>Related Services</h3>
  <ul>
    
    <li>
      <a  href="https://scandiweb.com/ecommerce-support-services" target=_blank >
        eCommerce support
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.com/services/performance-optimization" target=_blank >
        Performance optimization
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.com/magento-support" target=_blank >
        Magento support
      </a>
    </li>
    
  </ul>
</div>
</div>


<p class="wp-block-paragraph">If your team is still merging features in late October and someone has just asked when the code freeze starts, the answer for Black Friday 2026 is: in about two weeks. Black Friday falls on November 27 and Cyber Monday on November 30. Count back the time you need to load test, fix what breaks, and test again, and the window for risky changes closes in early November.</p>



<p class="wp-block-paragraph">The outage you&#8217;re trying to prevent rarely comes from a big release. One of our support clients launched a large campaign on a Friday, traffic climbed, and the whole site went down. Restarts didn&#8217;t help. The cause was a product label rule meant to cover the whole catalog except five products, set up by selecting every brand, and it made the platform fetch items in a loop. Nobody had deployed code that day.</p>



<p class="wp-block-paragraph">That&#8217;s why this guide treats Black Friday readiness as three engineering jobs: a code freeze that also covers configuration, a load test with a target you can defend, and an incident plan with named people on call. Marketing, merchandising, and promo planning are covered in our <a href="https://scandiweb.com/blog/black-friday-checklist/" target="_blank" rel="noopener">Black Friday and Cyber Monday checklist</a>.</p>



<h2 class="wp-block-heading">What is a code freeze, and what should it cover?</h2>



<p class="wp-block-paragraph">A code freeze is a period when a team stops deploying changes to production, so the live system stays in a known, tested state. For an online store before Black Friday, a code freeze should cover more than application code: configuration, extension and app updates, infrastructure changes, tracking scripts, and price or promotion rules can all take a store down, and none of them needs a developer to deploy.</p>



<p class="wp-block-paragraph">Software teams use the term in two ways. Before a release, a code freeze means no new features, only bug fixes. Before a peak, it means no changes to production at all unless an agreed process approves them. Some teams call the second one a change freeze, which is the more accurate name for eCommerce, because outages like the one above start with changes that never go through a code review.</p>



<p class="wp-block-paragraph">The freeze also protects your test results. A load test only describes the store you tested. Every change after it, even a small one, makes the result less true.</p>



<h3 class="wp-block-heading">What the freeze allows, and what it blocks</h3>



<p class="wp-block-paragraph">A freeze that blocks everything gets ignored by the third day. Agree in writing which changes are allowed, who approves them, and how they&#8217;re tested.</p>



<figure class="wp-block-table"><table><thead><tr><th>Change</th><th>During the freeze</th><th>How it goes live</th></tr></thead><tbody><tr><td>New features, refactoring, dependency upgrades</td><td>Blocked</td><td>After Cyber Monday</td></tr><tr><td>Extension, app, and plugin updates</td><td>Blocked</td><td>After Cyber Monday, unless it&#8217;s a security fix</td></tr><tr><td>Infrastructure, CDN, DNS, and hosting changes</td><td>Blocked</td><td>Only the agreed scale-up, on a scheduled date</td></tr><tr><td>Tag manager containers and third-party scripts</td><td>Blocked</td><td>Publish final versions before the freeze</td></tr><tr><td>Security patches and hotfixes for live bugs</td><td>Allowed</td><td>Emergency change process: staging test, approval, rollback ready</td></tr><tr><td>Catalog, price, and promotion rules</td><td>Allowed, with limits</td><td>Built and tested on staging, applied at an agreed time</td></tr><tr><td>CMS content, banners, and landing pages</td><td>Allowed</td><td>Through the CMS, with no new templates or scripts</td></tr></tbody></table><figcaption class="wp-element-caption">What a Black Friday code freeze blocks and what it allows</figcaption></figure>



<p class="wp-block-paragraph">Tag manager containers belong on the blocked list. A new marketing pixel is code running in every shopper&#8217;s browser, and a slow third-party script can hold up the checkout as effectively as a bad deploy.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/code-freeze-frozen-vs-allowed-changes.png" alt="Two columns listing changes blocked by the code freeze and changes allowed through an emergency change process" class="wp-image-26176" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/code-freeze-frozen-vs-allowed-changes.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/code-freeze-frozen-vs-allowed-changes-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/code-freeze-frozen-vs-allowed-changes-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/code-freeze-frozen-vs-allowed-changes-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/code-freeze-frozen-vs-allowed-changes-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/code-freeze-frozen-vs-allowed-changes-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/code-freeze-frozen-vs-allowed-changes-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">What a Black Friday code freeze blocks and what it allows through a process</figcaption></figure></div>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Quick takeaway</strong></p>  <p>The changes that break stores in November often come from the admin panel and the tag manager, with no deploy at all. If your freeze only stops the deployment pipeline, it covers the smaller risk.</p></div>



<h2 class="wp-block-heading">When should the code freeze start for Black Friday 2026?</h2>



<p class="wp-block-paragraph">For Black Friday 2026, start the feature freeze on Monday, November 2, and allow no major deployments after Friday, November 13, two weeks before Black Friday. That leaves two weeks for load testing and fixes before the strict freeze, and two weeks of stable production before the peak. Keep the freeze in place through Cyber Monday, November 30, and lift it no earlier than Tuesday, December 1.</p>



<p class="wp-block-paragraph">These dates match what our team has seen work for years. In a scandiweb Black Friday panel, Glebs Vrevskis described the usual pattern: &#8220;A common thing we see is code freeze starting from the first days of November, with no new features being released.&#8221; Reinis Groskops added that &#8220;the latest time to do any major deployments is probably 2 weeks before Black Friday.&#8221; The full <a href="https://scandiweb.com/blog/black-friday-how-not-to-f-up-q-and-a/" target="_blank" rel="noopener">Black Friday Q&amp;A with our team</a> covers the rest of their advice.</p>



<figure class="wp-block-table"><table><thead><tr><th>Date (2026)</th><th>Milestone</th><th>What happens</th></tr></thead><tbody><tr><td>Fri, Oct 23</td><td>Scope locked</td><td>Last features picked, everything else moves to December</td></tr><tr><td>Mon, Oct 26</td><td>Load testing starts</td><td>First test round on a production-sized environment</td></tr><tr><td>Mon, Nov 2</td><td>Feature freeze</td><td>No new features. Bug fixes and test findings only</td></tr><tr><td>Fri, Nov 6</td><td>Capacity booked</td><td>Hosting scale-up requested (Adobe Commerce on cloud: 10 business days ahead is Nov 12 at the latest)</td></tr><tr><td>Fri, Nov 13</td><td>Strict freeze</td><td>Last planned deployment. After this, emergency changes only</td></tr><tr><td>Mon–Fri, Nov 16–20</td><td>Rehearsal week</td><td>Final verification test, runbook walk-through, on-call rota confirmed</td></tr><tr><td>Wed, Nov 25</td><td>Rules applied</td><td>Pre-tested price and promotion rules switched on in the evening</td></tr><tr><td>Thu, Nov 26 – Mon, Nov 30</td><td>Peak</td><td>War room, 24/7 on-call, hourly checks</td></tr><tr><td>Tue, Dec 1</td><td>Review and thaw</td><td>Post-peak review, then the release backlog opens again</td></tr></tbody></table><figcaption class="wp-element-caption">Code freeze timeline for Black Friday 2026</figcaption></figure>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/black-friday-code-freeze-timeline-2026.png" alt="Timeline of the 2026 Black Friday code freeze with feature freeze on November 2 and strict freeze on November 13" class="wp-image-26177" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/black-friday-code-freeze-timeline-2026.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/black-friday-code-freeze-timeline-2026-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/black-friday-code-freeze-timeline-2026-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/black-friday-code-freeze-timeline-2026-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/black-friday-code-freeze-timeline-2026-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/black-friday-code-freeze-timeline-2026-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/black-friday-code-freeze-timeline-2026-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">Code freeze timeline for Black Friday 2026, from scope lock to review</figcaption></figure></div>



<p class="wp-block-paragraph">Two dates in the table are easy to miss. If you&#8217;re on Adobe Commerce on cloud infrastructure, <a href="https://experienceleague.adobe.com/en/docs/support-resources/adobe-support-tools-guide/adobe-commerce-support/adobe-commerce-holiday-readiness/holiday-readiness-overview" target="_blank" rel="noopener">Adobe recommends</a> requesting a temporary compute upsize at least 10 business days before a major promotion, and finishing all patching before the code freeze. Promotions don&#8217;t count as emergencies, and Adobe notes that capacity during Black Friday and Cyber Monday is limited, so book early. If you&#8217;re still on a release line close to end of support, check our <a href="https://scandiweb.com/blog/magento-end-of-life/" target="_blank" rel="noopener">Magento end-of-life guide</a> before the freeze, because a patch you can&#8217;t apply in November waits until December.</p>



<p class="wp-block-paragraph">The other date is November 25. Our support team recommends building price and promotion rules on staging, testing them there, and switching them on the evening before the sale, without a customer email going out at the same moment. On high-load stores, that gives the platform a night to reindex before the traffic arrives, and any problem shows up while there&#8217;s still time to fix it. It&#8217;s the lesson from the outage in the introduction: once the rule was rebuilt to exclude five SKUs, it applied in two to three minutes instead of taking the site down for about an hour, and the fix was worth $500,000 in extra sales for that client.</p>



<p class="wp-block-paragraph"><strong>Read more:</strong> <a href="https://scandiweb.com/blog/how-scandiweb-support-saved-sales-event/" target="_blank" rel="noopener">How scandiweb Support Saved a Client&#8217;s Sales Event</a></p>



<p class="wp-block-paragraph">If your sales start earlier, as many now do, move the whole calendar back by the same number of days. Date the freeze from the first day of heavy traffic, whatever the banner says.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Quick takeaway</strong></p>  <p>Set the freeze date from the load-testing plan. Two test rounds with fixes in between take about two weeks, so a store that starts testing in mid-November has already run out of time.</p></div>



<h2 class="wp-block-heading">Black Friday load testing: targets, scenarios, and pass criteria</h2>



<p class="wp-block-paragraph">eCommerce load testing for Black Friday means simulating your expected peak traffic, measured at the busiest minute, on an environment sized like production, and checking that shoppers can still search, add to cart, and pay within agreed response times. Set the target from your own data, script the full buying journey including checkout, and run at least two rounds with fixes in between.</p>



<h3 class="wp-block-heading">Can the site take 5× traffic?</h3>



<p class="wp-block-paragraph">It depends on what the 5 multiplies. Five times an average day is often below a real Black Friday peak. On one Black Friday we supported, visits were up 10,955% on an average day, and concurrent visitors went from a couple of hundred to more than 17,000 as the first campaigns went out.</p>



<p class="wp-block-paragraph">Build the target from numbers you already have:</p>



<ol class="wp-block-list">
<li><strong>Find last year&#8217;s peak minute.</strong> Take the busiest hour from GA4 or your server logs, then look for the minute-level spikes inside it. Email sends and campaign launches create bursts that an hourly average hides.</li>


<li><strong>Apply this year&#8217;s forecast.</strong> Multiply by the growth the business expects and add any new traffic sources, such as a bigger email list or paid budget.</li>


<li><strong>Translate it into load.</strong> Express the target as concurrent sessions, page requests per second, and orders per minute. Orders per minute is the number that matters most, because checkout is the most expensive journey to serve.</li>


<li><strong>Add headroom.</strong> Test at the forecast peak, then at double it, then keep raising the load until something breaks, so you know where the ceiling is and what fails first.</li>

</ol>



<p class="wp-block-paragraph">Black Friday traffic is also different from normal traffic. Most days, shoppers browse cached category pages. On Black Friday, they add to cart and check out, and those pages aren&#8217;t cached, so the same number of visitors puts far more load on the application and the database.</p>



<h3 class="wp-block-heading">Which scenarios to test</h3>



<p class="wp-block-paragraph">A test that hammers the homepage measures your CDN, and not much else. Script the journeys that make money and the background jobs that run at the same time:</p>



<figure class="wp-block-table"><table><thead><tr><th>Scenario</th><th>Share of simulated users</th><th>Why it matters</th></tr></thead><tbody><tr><td>Browse category and product pages</td><td>50–60%</td><td>Checks caching, images, and search under load</td></tr><tr><td>Search and filtered navigation</td><td>15–20%</td><td>Search and faceted filters often skip the page cache</td></tr><tr><td>Add to cart and view cart</td><td>15–20%</td><td>Uncached, writes to the database</td></tr><tr><td>Checkout with payment</td><td>5–10%</td><td>The slowest journey, plus calls to payment, tax, and shipping services</td></tr><tr><td>Log in and view account or orders</td><td>5%</td><td>Session and customer data under load</td></tr><tr><td>Background: order export, stock sync, imports, cron</td><td>Running throughout</td><td>Shows whether back-office jobs slow the storefront</td></tr><tr><td>Back office: staff processing orders in the admin</td><td>A realistic number of users</td><td>Admin queries compete with shoppers for the same database</td></tr></tbody></table><figcaption class="wp-element-caption">Load testing scenarios and a starting traffic split</figcaption></figure>



<p class="wp-block-paragraph">Point payments at a sandbox or a stub. A load test that sends thousands of real authorizations to your payment provider may trip its fraud checks, and nobody wants to explain that on November 20.</p>



<h3 class="wp-block-heading">Pass criteria that make the result useful</h3>



<p class="wp-block-paragraph">Agree the pass criteria before the first run, so the result is a clear pass or fail. The thresholds below are a starting point to adapt, not a standard:</p>



<figure class="wp-block-table"><table><thead><tr><th>Measure</th><th>Example pass criterion at forecast peak</th></tr></thead><tbody><tr><td>Orders per minute</td><td>Sustained at the forecast peak for at least 30 minutes</td></tr><tr><td>Checkout and cart response time</td><td>95th percentile under 2 seconds per step</td></tr><tr><td>Error rate</td><td>Under 1% of requests, and zero failed orders that the store accepted</td></tr><tr><td>Apdex (Adobe Commerce on cloud, New Relic)</td><td>0.85 or higher, Adobe&#8217;s own target</td></tr><tr><td>Database and application CPU</td><td>Headroom left at the forecast peak, not pinned at 100%</td></tr><tr><td>Queues (orders, emails, stock updates)</td><td>Drain as fast as they fill, with no growing backlog</td></tr></tbody></table><figcaption class="wp-element-caption">Example pass criteria for a Black Friday load test</figcaption></figure>



<p class="wp-block-paragraph">The last row is the one teams forget. On the Black Friday above, the servers held, but orders arrived faster than the order queue could process them, and confirmation emails would have been delayed by days. The fix was a script that moved orders into separate batches on a dedicated instance. A queue-depth check in the load test would have found it earlier.</p>



<p class="wp-block-paragraph"><strong>Read more:</strong> <a href="https://scandiweb.com/blog/scaling-up-to-accommodate-a-40000-increase-in-sales/" target="_blank" rel="noopener">Scaling Up to Accommodate a 40000% Increase in Sales</a></p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/ecommerce-load-testing-ramp-forecast-peak.png" alt="Chart of a load test ramping from forecast peak to double and then to failure, with checkout response time against a 2-second limit" class="wp-image-26178" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/ecommerce-load-testing-ramp-forecast-peak.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ecommerce-load-testing-ramp-forecast-peak-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ecommerce-load-testing-ramp-forecast-peak-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ecommerce-load-testing-ramp-forecast-peak-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ecommerce-load-testing-ramp-forecast-peak-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ecommerce-load-testing-ramp-forecast-peak-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ecommerce-load-testing-ramp-forecast-peak-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">A stepped eCommerce load test, from forecast peak to the break point</figcaption></figure></div>



<h3 class="wp-block-heading">Where to run the load test</h3>



<p class="wp-block-paragraph">Run the main rounds on an environment with the same size, configuration, and CDN setup as production. A staging server with half the CPU tells you little about Black Friday.</p>



<p class="wp-block-paragraph">How you test depends on the platform:</p>



<ul class="wp-block-list">
<li><strong>Adobe Commerce on cloud:</strong> test on a production-sized environment, watch the results in New Relic, and request the temporary upsize you need for the peak. Adobe&#8217;s checklist also covers read replicas, indexers set to Update on Schedule, and asynchronous order processing.</li>


<li><strong>Self-hosted Magento or headless:</strong> you own every layer, so the test has to cover the web servers, database, cache, search engine, message queue, and CDN. Agree any test against production with your host first, and run it at night.</li>


<li><strong>Shopify and Shopify Plus:</strong> Shopify runs and scales the platform, so your test surface is everything you added, such as a headless storefront, custom apps, checkout extensions, and the middleware that connects Shopify to your ERP. Ask Shopify before you point a load generator at the live storefront.</li>

</ul>



<p class="wp-block-paragraph">If the test exposes a slow storefront, our <a href="https://scandiweb.com/blog/magento-2-performance-optimization-with-js-bundling/" target="_blank" rel="noopener">Magento performance optimization guide</a> and <a href="https://scandiweb.com/blog/shopify-performance-optimization/" target="_blank" rel="noopener">Shopify performance playbook</a> cover the usual fixes. For drops and limited releases where demand can exceed any capacity you&#8217;d buy, a <a href="https://scandiweb.com/blog/the-waiting-room-virtual-queuing-for-ecommerce/" target="_blank" rel="noopener">virtual waiting room</a> keeps checkout working for the shoppers already inside.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Quick takeaway</strong></p>  <p>A load test that passes on the first run usually tested too little. Plan for the first round to find the bottleneck, the second to confirm the fix, and the third to find the ceiling.</p></div>



<h2 class="wp-block-heading">The incident plan: runbook, roles, and on-call rotation</h2>



<p class="wp-block-paragraph">An eCommerce incident plan for Black Friday is a short document that says who is on call, how an incident is declared, who decides, and what the first action is for each likely failure. It should name people, list phone numbers for every outside provider, define severity levels, and include a tested rollback, so that at 9 p.m. on Black Friday nobody has to work out the process while the checkout is down.</p>



<p class="wp-block-paragraph">The order of steps matters more than the detail. During an incident, restore sales first, through a rollback, a disabled extension, or a switched payment method. Find the root cause afterward.</p>



<h3 class="wp-block-heading">Roles to name before the peak</h3>



<p class="wp-block-paragraph">Each role needs a named person and a backup for every shift:</p>



<ul class="wp-block-list">
<li><strong>Incident lead:</strong> declares the incident, sets the severity, and keeps the timeline. This person coordinates and doesn&#8217;t debug.</li>


<li><strong>On-call developer:</strong> investigates and applies the fix or rollback.</li>


<li><strong>Infrastructure or hosting contact:</strong> scales, restarts, or fails over servers, and talks to the host.</li>


<li><strong>Business owner:</strong> decides on trade-offs, such as pausing a campaign email or switching off a payment method.</li>


<li><strong>Communications:</strong> posts updates to the team every 30 minutes and decides what customers see, such as a site banner.</li>

</ul>



<h3 class="wp-block-heading">On-call rotation from Thanksgiving to Cyber Monday</h3>



<p class="wp-block-paragraph">Write the on-call rotation down, with names, shifts, and phone numbers, and keep a copy outside Slack, because the person you need may be offline. For the peak weekend, plan for 24/7 cover with handovers at fixed times, a second person on call for severity 1 incidents, and no one on call for more than 12 hours in a row.</p>



<p class="wp-block-paragraph">List the outside contacts in the runbook too: hosting, CDN, payment provider, ERP and warehouse integrations, search, and your agency, each with an emergency number and the account ID they&#8217;ll ask for. If you&#8217;re agreeing response times with an agency for the first time, our guide to <a href="https://scandiweb.com/blog/website-maintenance-cost/">support SLA tiers and 24/7 cover</a> explains what to ask for.</p>



<h3 class="wp-block-heading">Playbooks for the failures you can predict</h3>



<p class="wp-block-paragraph">Most Black Friday website crashes follow a few patterns. Write a first action for each one before the peak:</p>



<figure class="wp-block-table"><table><thead><tr><th>Failure</th><th>First signal</th><th>First action</th></tr></thead><tbody><tr><td>Checkout or payments failing</td><td>Payment success rate drops, checkout errors rise</td><td>Switch to a backup payment method, check the provider&#8217;s status page</td></tr><tr><td>Site slow or down under load</td><td>Response time and error rate climb</td><td>Scale up, switch non-essential extensions and recommendations off, enable the waiting room</td></tr><tr><td>A promo rule misfires</td><td>Wrong prices, or load spikes right after a rule change</td><td>Disable the rule, restore the tested version</td></tr><tr><td>Stock sync or ERP integration stops</td><td>Orders oversell, export queue grows</td><td>Pause the affected products, switch the sync to batch mode</td></tr><tr><td>Order or email queue backs up</td><td>Queue depth grows, confirmation emails delayed</td><td>Add workers or move processing to a separate instance</td></tr><tr><td>Bot traffic or card testing</td><td>Traffic spike with no orders, many failed payments</td><td>Turn on CDN bot rules and rate limits, add a checkout challenge</td></tr></tbody></table><figcaption class="wp-element-caption">Incident playbooks for predictable Black Friday failures</figcaption></figure>



<p class="wp-block-paragraph">Each playbook needs a kill switch: a configuration flag or admin setting that turns the risky feature off without a deploy. Test every one of them during rehearsal week.</p>



<h3 class="wp-block-heading">What to watch on the dashboard</h3>



<p class="wp-block-paragraph">Put the measures that show lost revenue on one screen, compared with the forecast for that hour:</p>



<ul class="wp-block-list">
<li>Orders per minute against the forecast</li>


<li>Payment success rate by method</li>


<li>Checkout and cart error rate</li>


<li>Server response time and error rate</li>


<li>Queue depth for orders, emails, and stock updates</li>


<li>Purchase events arriving in GA4 and your ad platforms</li>

</ul>



<p class="wp-block-paragraph">The last line catches a quiet failure. If purchase events stop arriving, the ad platforms keep spending on the busiest days of the year with no conversion data. If your tracking runs through a <a href="https://scandiweb.com/blog/server-side-tracking/" target="_blank" rel="noopener">server-side tracking setup</a>, add the server container&#8217;s error rate to the same screen.</p>



<p class="wp-block-paragraph">Practice the plan once before it&#8217;s needed. In rehearsal week, simulate one incident, such as a failed payment provider on staging, and time how long it takes from the alert to the workaround.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/black-friday-incident-runbook-roles-escalation.png" alt="Escalation path from a checkout alert to the on-call developer, incident lead, business owner, hosting contact and payment provider" class="wp-image-26179" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/black-friday-incident-runbook-roles-escalation.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/black-friday-incident-runbook-roles-escalation-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/black-friday-incident-runbook-roles-escalation-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/black-friday-incident-runbook-roles-escalation-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/black-friday-incident-runbook-roles-escalation-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/black-friday-incident-runbook-roles-escalation-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/black-friday-incident-runbook-roles-escalation-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">How an incident is escalated during the Black Friday peak</figcaption></figure></div>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Quick takeaway</strong></p>  <p>The incident lead and the person fixing the problem should be two different people. When one person does both, nobody updates the business, and nobody decides whether to pause the email that is still sending traffic to a broken checkout.</p></div>



<h2 class="wp-block-heading">Test orders on production during peak</h2>



<p class="wp-block-paragraph">Yes, you can place test orders on production during the peak, and you should, as long as they follow agreed rules. A small number of real test orders each morning of the peak and after every approved change is the most direct proof that checkout, payment, stock, and order export still work end to end. Agree who places them, how they&#8217;re marked, and how they&#8217;re cancelled and refunded.</p>



<figure class="wp-block-table"><table><thead><tr><th>Method</th><th>Best for</th><th>Watch for</th></tr></thead><tbody><tr><td>Real card, small order, then cancel and refund</td><td>Confirming the live payment path end to end</td><td>Processor fees, and the order reaching the warehouse unless it&#8217;s flagged</td></tr><tr><td>Hidden test product or test customer group</td><td>Order export, emails, and ERP sync</td><td>It must stay hidden from search, feeds, and sitemaps</td></tr><tr><td>Payment provider test mode</td><td>Staging, not live stores</td><td>Shopify says not to switch Shopify Payments test mode on in a store that&#8217;s in production</td></tr><tr><td>Shopify Bogus Gateway</td><td>Shopify test stores</td><td>Other card providers have to be deactivated first, which isn&#8217;t practical on a live store</td></tr></tbody></table><figcaption class="wp-element-caption">Ways to place test orders on a live store</figcaption></figure>



<p class="wp-block-paragraph">Mark every test order clearly, for example with a test customer email and an order note, and tell the warehouse and finance teams which orders to ignore. Exclude them from reporting, or your peak-day numbers will be slightly wrong in every dashboard.</p>



<h2 class="wp-block-heading">FAQ about the Black Friday code freeze</h2>



<h3 class="wp-block-heading">What is a code freeze?</h3>



<p class="wp-block-paragraph">A code freeze is a set period when no changes are deployed to a production system, so it stays in a tested, known state. Before Black Friday, eCommerce teams use a code freeze to protect the store during the peak. A good one also covers configuration, extension updates, tag manager changes, and infrastructure, with an emergency process for security fixes.</p>



<h3 class="wp-block-heading">When should the code freeze start for Black Friday?</h3>



<p class="wp-block-paragraph">For Black Friday 2026, on November 27, start a feature freeze on November 2 and make the last planned deployment on November 13, two weeks before the peak. Use the time in between for load testing and fixes. If your sales start earlier in November, move each date back by the same number of days.</p>



<h3 class="wp-block-heading">How long should a Black Friday code freeze last?</h3>



<p class="wp-block-paragraph">Most stores keep the strict freeze for about two to three weeks: from two weeks before Black Friday until the day after Cyber Monday. For 2026, that means November 13 to December 1. Stores with heavy December trade often keep a lighter freeze until their last Christmas delivery date.</p>



<h3 class="wp-block-heading">Can we deploy a fix during the code freeze?</h3>



<p class="wp-block-paragraph">Yes, through an emergency change process. Security patches and fixes for bugs that hurt sales can go live during the freeze if they&#8217;re tested on staging, approved by a named person, deployed at a quiet hour, and have a rollback ready. Everything else waits until the freeze lifts.</p>



<h3 class="wp-block-heading">Can the site take 5× traffic?</h3>



<p class="wp-block-paragraph">Only a load test can answer that, and only once you define what 5× means. Base the target on last year&#8217;s busiest minute, multiplied by this year&#8217;s forecast, then test at that level, at double it, and up to the break point. Five times an average day is often less than a real Black Friday peak.</p>



<h3 class="wp-block-heading">Should we load test on production?</h3>



<p class="wp-block-paragraph">Run the main load tests on an environment that matches production in size and configuration. Test production itself only with your hosting provider&#8217;s agreement, at a low-traffic hour, with payments pointed at a sandbox. On Shopify, check with Shopify before running load against the live storefront.</p>



<h3 class="wp-block-heading">Can we place test orders on production?</h3>



<p class="wp-block-paragraph">Yes, with rules. Place a few real test orders each morning of the peak and after any approved change, using a small real payment you cancel and refund, or a hidden test product. Mark the orders clearly, tell the warehouse and finance teams, and exclude them from reporting. Don&#8217;t switch payment test modes on in a live store.</p>



<h3 class="wp-block-heading">Who should be on call during Black Friday?</h3>



<p class="wp-block-paragraph">At minimum, an incident lead, an on-call developer, a hosting or infrastructure contact, and a business owner who can pause campaigns or switch payment methods. Cover the full Thanksgiving to Cyber Monday window around the clock, name a backup for each shift, and keep phone numbers for every outside provider in the runbook.</p>



<h2 class="wp-block-heading">Plan the code freeze this week</h2>



<p class="wp-block-paragraph">A Black Friday code freeze works when it starts from the load-testing plan, covers configuration as well as code, and ends with a team that knows who answers the phone. For 2026, that means locking scope this week, testing from late October, freezing features on November 2, and keeping production stable from November 13 through Cyber Monday. Write the runbook now, while there&#8217;s time to rehearse it.</p>



<script type="application/ld+json">
{
 "@context": "https://schema.org",
 "@type": "FAQPage",
 "mainEntity": [
  {
   "@type": "Question",
   "name": "What is a code freeze?",
   "acceptedAnswer": {
    "@type": "Answer",
    "text": "A code freeze is a set period when no changes are deployed to a production system, so it stays in a tested, known state. Before Black Friday, eCommerce teams use a code freeze to protect the store during the peak. A good one also covers configuration, extension updates, tag manager changes, and infrastructure, with an emergency process for security fixes."
   }
  },
  {
   "@type": "Question",
   "name": "When should the code freeze start for Black Friday?",
   "acceptedAnswer": {
    "@type": "Answer",
    "text": "For Black Friday 2026, on November 27, start a feature freeze on November 2 and make the last planned deployment on November 13, two weeks before the peak. Use the time in between for load testing and fixes. If your sales start earlier in November, move each date back by the same number of days."
   }
  },
  {
   "@type": "Question",
   "name": "How long should a Black Friday code freeze last?",
   "acceptedAnswer": {
    "@type": "Answer",
    "text": "Most stores keep the strict freeze for about two to three weeks: from two weeks before Black Friday until the day after Cyber Monday. For 2026, that means November 13 to December 1. Stores with heavy December trade often keep a lighter freeze until their last Christmas delivery date."
   }
  },
  {
   "@type": "Question",
   "name": "Can we deploy a fix during the code freeze?",
   "acceptedAnswer": {
    "@type": "Answer",
    "text": "Yes, through an emergency change process. Security patches and fixes for bugs that hurt sales can go live during the freeze if they're tested on staging, approved by a named person, deployed at a quiet hour, and have a rollback ready. Everything else waits until the freeze lifts."
   }
  },
  {
   "@type": "Question",
   "name": "Can the site take 5× traffic?",
   "acceptedAnswer": {
    "@type": "Answer",
    "text": "Only a load test can answer that, and only once you define what 5× means. Base the target on last year's busiest minute, multiplied by this year's forecast, then test at that level, at double it, and up to the break point. Five times an average day is often less than a real Black Friday peak."
   }
  },
  {
   "@type": "Question",
   "name": "Should we load test on production?",
   "acceptedAnswer": {
    "@type": "Answer",
    "text": "Run the main load tests on an environment that matches production in size and configuration. Test production itself only with your hosting provider's agreement, at a low-traffic hour, with payments pointed at a sandbox. On Shopify, check with Shopify before running load against the live storefront."
   }
  },
  {
   "@type": "Question",
   "name": "Can we place test orders on production?",
   "acceptedAnswer": {
    "@type": "Answer",
    "text": "Yes, with rules. Place a few real test orders each morning of the peak and after any approved change, using a small real payment you cancel and refund, or a hidden test product. Mark the orders clearly, tell the warehouse and finance teams, and exclude them from reporting. Don't switch payment test modes on in a live store."
   }
  },
  {
   "@type": "Question",
   "name": "Who should be on call during Black Friday?",
   "acceptedAnswer": {
    "@type": "Answer",
    "text": "At minimum, an incident lead, an on-call developer, a hosting or infrastructure contact, and a business owner who can pause campaigns or switch payment methods. Cover the full Thanksgiving to Cyber Monday window around the clock, name a backup for each shift, and keep phone numbers for every outside provider in the runbook."
   }
  }
 ]
}
</script>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p><style> p.box { border: 1px solid black; padding-top: 30px; padding-right: 30px; padding-bottom: 30px; padding-left: 30px; } </style> <p class="box"><em>Not sure your store will hold at the peak? </em><a href="https://scandiweb.com/contact" target="_blank" rel="noreferrer noopener"><em>Talk to our team about load testing and on-call cover</em></a><em> before the freeze starts.</em></p></p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/black-friday-code-freeze/">Black Friday Code Freeze: 2026 Timeline, Load Testing, and Incident Plan</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>AI Shopping Assistants for eCommerce: Options, Costs and Where They Pay Off</title>
		<link>https://scandiweb.com/blog/ai-shopping-assistant/</link>
		
		<dc:creator><![CDATA[Glebs Vrevsky]]></dc:creator>
		<pubDate>Wed, 21 Oct 2026 15:00:00 +0000</pubDate>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[AI agents]]></category>
		<category><![CDATA[ai assistant]]></category>
		<category><![CDATA[AI shopping assistant]]></category>
		<category><![CDATA[chatbot]]></category>
		<category><![CDATA[conversational commerce]]></category>
		<category><![CDATA[MCP]]></category>
		<guid isPermaLink="false">https://scandiweb.com/blog/?p=26119</guid>

					<description><![CDATA[<p>An AI shopping assistant can sell or just answer tickets. Compare SaaS, platform and custom options, prices, and the use cases that pay.</p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/ai-shopping-assistant/">AI Shopping Assistants for eCommerce: Options, Costs and Where They Pay Off</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="lazyblock-related-AiShA wp-block-lazyblock-related"><div class="related-services">
  <h3>Related Services</h3>
  <ul>
    
    <li>
      <a  href="https://scandiweb.com/services/ai-chatbot-development" target=_blank >
        Conversational commerce services
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.com/services/ai" target=_blank >
        AI strategy consulting
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.com/services/mcp-app-development" target=_blank >
        MCP app development
      </a>
    </li>
    
  </ul>
</div>
</div>


<p class="wp-block-paragraph">If someone on your leadership team has asked for an AI shopping assistant, and every vendor demo you&#8217;ve seen since looks the same, the hard part is comparing what&#8217;s underneath. One vendor quotes per seat, another per resolution, a third per conversation, and a custom build gets quoted in tokens. None of them tells you which use case will move revenue on your store.</p>



<p class="wp-block-paragraph">This guide maps the three types of assistant, ranks the use cases by impact, and puts the published prices side by side. It also covers what your catalog needs before launch and how to prove the assistant pays for itself.</p>



<h2 class="wp-block-heading">What is an AI shopping assistant?</h2>



<p class="wp-block-paragraph">An AI shopping assistant is a chat interface on your store that uses a large language model to answer shoppers in plain language. It reads your catalog, prices, stock, and policies, then recommends products, answers questions, and handles tasks such as order tracking. Older eCommerce chatbots followed fixed scripts and button menus. A modern assistant understands open questions and replies with your own product data.</p>



<p class="wp-block-paragraph">The term covers two different things, and search results mix them up. <a href="https://scandiweb.com/blog/agentic-commerce-explained/">Consumer AI shopping agents</a> such as ChatGPT shopping, Perplexity, and Amazon&#8217;s Rufus shop across many stores on the buyer&#8217;s behalf. This guide is about the assistant you run on your own store, in your app, or in WhatsApp, which only sells your products. If you want your products to show up in the consumer tools, our guide to <a href="https://scandiweb.com/blog/chatgpt-shopping/" target="_blank" rel="noopener">ChatGPT shopping</a> covers that side.</p>



<p class="wp-block-paragraph">Shopper-facing assistants are also different from merchant tools. Shopify Sidekick, for example, helps your team run the Shopify admin and never talks to customers.</p>



<h2 class="wp-block-heading">Three types of AI assistants for online stores</h2>



<p class="wp-block-paragraph">There are three types of AI shopping assistants. SaaS chat widgets install without a development project and charge per conversation or resolution. Platform-native assistants come with your commerce or search platform and use its catalog data directly. Custom LLM assistants are built on a model API and connected to your own systems, which costs more upfront but gives you full control over data, logic, and running costs.</p>



<figure class="wp-block-table"><table><thead><tr><th>Type</th><th>Examples</th><th>Pricing unit</th><th>Best at</th><th>Main limit</th></tr></thead><tbody><tr><td>SaaS chat widget</td><td>Tidio Lyro, Gorgias AI Agent, Intercom Fin, Zendesk AI agents</td><td>Per conversation or per resolution</td><td>Support questions, fast pilots</td><td>Shallow product logic, fees grow with volume</td></tr><tr><td>Platform-native</td><td>Shopify Inbox agent, Salesforce Agentforce, Adobe Brand Concierge, Algolia</td><td>Free, per conversation, or by contract</td><td>Using the platform&#8217;s own catalog and customer data</td><td>Tied to one vendor&#8217;s roadmap and limits</td></tr><tr><td>Custom LLM</td><td>Built on OpenAI, Anthropic, or open models, connected through APIs and MCP</td><td>Model tokens plus hosting and maintenance</td><td>Complex catalogs, many channels, custom rules</td><td>Upfront build and a team to run it</td></tr></tbody></table><figcaption class="wp-element-caption">The three types of AI shopping assistant compared</figcaption></figure>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/ai-shopping-assistant-types-comparison.png" alt="Comparison of SaaS chat widget, platform-native and custom LLM AI shopping assistants by pricing unit and control" class="wp-image-26114" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/ai-shopping-assistant-types-comparison.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ai-shopping-assistant-types-comparison-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ai-shopping-assistant-types-comparison-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ai-shopping-assistant-types-comparison-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ai-shopping-assistant-types-comparison-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ai-shopping-assistant-types-comparison-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ai-shopping-assistant-types-comparison-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">The three types of AI shopping assistant and how each one is priced</figcaption></figure></div>



<h3 class="wp-block-heading">SaaS chat widgets</h3>



<p class="wp-block-paragraph">Most eCommerce chatbot tools started as helpdesks and added an AI agent later. Tidio, Gorgias, Intercom, and Zendesk all install on Shopify through an app. They read your help center, policies, and product pages, answer questions, and pass the conversation to a human when they can&#8217;t help.</p>



<p class="wp-block-paragraph">Their strength is speed, because you can switch one on without a development project. Their weakness is depth. A support-first AI chatbot for eCommerce answers &#8220;where is my order?&#8221; well and &#8220;which of these drills handles masonry?&#8221; less well, because it reads product pages as text and can&#8217;t query structured attributes.</p>



<h3 class="wp-block-heading">Platform-native assistants</h3>



<p class="wp-block-paragraph">Your commerce platform may already include one. Shopify Inbox is free and, in Shopify&#8217;s words, &#8220;puts an AI-powered sales associate on your storefront.&#8221; It learns from your catalog, policies, and store content, and it personalizes answers when the shopper signs in with Shop. For many stores, it is the cheapest way to test an AI chatbot for Shopify before paying for anything else.</p>



<p class="wp-block-paragraph">Salesforce sells Agentforce for customer-facing agents at $2 per conversation, or through Flex Credits. Adobe has made Brand Concierge generally available and announced an integration with Adobe Commerce, so check its status for your edition before you plan around it. Search vendors such as Algolia offer shopping assistants that generate answers from the live catalog, which suits stores that already run their <a href="https://scandiweb.com/blog/ecommerce-site-search-best-practices/">site search</a> on them.</p>



<p class="wp-block-paragraph">Platform-native assistants use your platform&#8217;s data model, so they see prices, stock, and customer accounts without a separate integration. In return, you get the logic the vendor built, on the vendor&#8217;s timeline.</p>



<h3 class="wp-block-heading">Custom LLM assistants</h3>



<p class="wp-block-paragraph">A custom assistant uses a model from OpenAI, Anthropic, or an open-source family, and your developers connect it to the store: product search, live stock and price, customer accounts, order management, and the CMS. Platforms now make this easier. Shopify exposes catalog and cart tools to AI agents through the Model Context Protocol (MCP), and BigCommerce opened its Storefront MCP to every live store in 2026. Our guides on <a href="https://scandiweb.com/blog/what-is-mcp-model-context-protocol/" target="_blank" rel="noopener">what MCP is</a> and <a href="https://scandiweb.com/blog/how-to-build-an-mcp-server/" target="_blank" rel="noopener">how to build an MCP server</a> explain how this works, and the <a href="https://scandiweb.com/blog/magento-mcp-server/" target="_blank" rel="noopener">Magento MCP server</a> shows it on Magento (Adobe Commerce).</p>



<p class="wp-block-paragraph">A custom build makes sense when the catalog needs reasoning on top of lookup: project-based shopping, configurable products, <a href="https://scandiweb.com/blog/shopify-b2b/">B2B price lists</a>, or one assistant across the website, WhatsApp, and physical stores. scandiweb&#8217;s own <a href="https://scandiweb.com/blog/chat-to-buy/" target="_blank" rel="noopener">Chat to Buy</a> is built this way, and our <a href="https://scandiweb.com/services/ai-chatbot-development" target="_blank" rel="noopener">conversational commerce services</a> cover custom assistants built around your catalog.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>The type you pick decides how you pay, and that matters as much as what the assistant can say. SaaS tools and Agentforce bill per conversation or resolution, a custom build bills per token, and the gap widens as volume grows.</p></div>



<h2 class="wp-block-heading">AI shopping assistant use cases ranked by impact</h2>



<p class="wp-block-paragraph">Shopping assistant use cases rank by impact in this order for most stores: product discovery and guided selling, order status questions, returns and exchanges, and win-back conversations with past customers. Discovery moves revenue but needs the cleanest product data. Order status and returns cut support load quickly and are easier to measure. Start where your data is ready and the volume is high.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/ai-shopping-assistant-use-cases-ranked.png" alt="Four AI shopping assistant use cases ranked from product discovery to win-back, with impact and effort bars" class="wp-image-26115" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/ai-shopping-assistant-use-cases-ranked.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ai-shopping-assistant-use-cases-ranked-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ai-shopping-assistant-use-cases-ranked-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ai-shopping-assistant-use-cases-ranked-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ai-shopping-assistant-use-cases-ranked-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ai-shopping-assistant-use-cases-ranked-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ai-shopping-assistant-use-cases-ranked-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">AI shopping assistant use cases ranked by revenue impact and data effort</figcaption></figure></div>



<h3 class="wp-block-heading">1. Product discovery and guided selling</h3>



<p class="wp-block-paragraph">A shopper types &#8220;I&#8217;m building a deck, 12 square meters, what do I need?&#8221; and gets a list of boards, screws, and quantities. A search box would have returned 400 results. This is <a href="https://scandiweb.com/blog/top-9-website-personalization-tools/">AI product recommendations</a> in conversation form, and it pays most in catalogs where shoppers don&#8217;t know the product names: DIY, electronics, beauty, sports gear, and B2B parts.</p>



<p class="wp-block-paragraph">We built this kind of assistant for a Nordic DIY retailer, trained on common projects and connected to its full catalog. As our <a href="https://scandiweb.com/blog/conversational-commerce-explained/" target="_blank" rel="noopener">conversational commerce guide</a> describes, the project led to 95% higher average order value and a 68% increase in conversions.</p>



<p class="wp-block-paragraph">The largest public example is Amazon&#8217;s Rufus. Amazon said in its Q3 2025 earnings call that customers who use Rufus during a shopping trip are 60% more likely to complete a purchase, and that Rufus is on track to add over $10 billion in annualized sales. Read the 60% carefully. It compares people who chose to use Rufus with people who didn&#8217;t, and the first group was probably closer to buying anyway.</p>



<h3 class="wp-block-heading">2. Order status</h3>



<p class="wp-block-paragraph">&#8220;Where is my order?&#8221; is among the most repetitive questions in eCommerce support, and one of the easiest to automate well. The assistant asks for an order number or uses the logged-in account, calls your order management system or carrier API, and answers with the real status. It sells nothing, but every resolved chat is a ticket your team doesn&#8217;t handle, so the saving is easy to count.</p>



<h3 class="wp-block-heading">3. Returns and exchanges</h3>



<p class="wp-block-paragraph">Returns are expensive. The NRF and Happy Returns put US returns at $849.9 billion in 2025, with 19.3% of online sales sent back. An assistant helps on both sides of the purchase. Before it, the assistant answers the sizing and compatibility questions that lead to wrong orders. After it, the assistant starts a return or offers an exchange. This use case needs your return rules written down precisely, because the assistant will quote them.</p>



<h3 class="wp-block-heading">4. Win-back conversations</h3>



<p class="wp-block-paragraph">The assistant can also start the conversation, much like <a href="https://scandiweb.com/blog/klaviyo-vs-mailchimp/">a win-back email flow</a>. For a pet food retailer, we built a WhatsApp sales concierge that contacted lapsed customers with messages based on their order history and recommended products from the catalog. In the first few weeks, 31% of contacted customers replied and 4% bought.</p>



<p class="wp-block-paragraph"><strong>Read more:</strong> <a href="https://scandiweb.com/blog/case-study-conversational-commerce-brings-back-churned-customers/" target="_blank" rel="noopener">Case Study: Conversational Commerce Brings 31% of Churned Customers Back</a></p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Order status is the safest first launch because it has one right answer and a clear cost saving. Product discovery has the bigger upside, so plan it as phase two once your attributes are clean.</p></div>



<h2 class="wp-block-heading">How much does an AI shopping assistant cost?</h2>



<p class="wp-block-paragraph">An AI shopping assistant costs from nothing to tens of thousands of dollars a month, depending on type and volume. SaaS agents charge about $0.90 to $2.00 per resolved conversation. Shopify&#8217;s Inbox agent is free. A custom build costs mainly integration work upfront, then model usage that is often a few cents per conversation, plus hosting and maintenance.</p>



<h3 class="wp-block-heading">Licence and usage fees</h3>



<p class="wp-block-paragraph">These are the published prices on each vendor&#8217;s pricing page in October 2026:</p>



<figure class="wp-block-table"><table><thead><tr><th>Vendor</th><th>AI pricing</th><th>What else you pay for</th></tr></thead><tbody><tr><td>Shopify Inbox</td><td>Free</td><td>Nothing extra, Shopify stores only</td></tr><tr><td>Tidio Lyro AI Agent</td><td>From $32.50 a month for 50 conversations</td><td>Higher conversation tiers, base plan</td></tr><tr><td>Gorgias AI Agent</td><td>$0.90 per automated interaction (annual), $1.00 (monthly)</td><td>A Gorgias helpdesk plan</td></tr><tr><td>Intercom Fin</td><td>$0.99 per outcome</td><td>Monthly minimum, seats for human agents from $29</td></tr><tr><td>Zendesk AI agents</td><td>$1.50 per automated resolution (committed), $2.00 pay as you go</td><td>Suite plans from $55 per agent a month</td></tr><tr><td>Salesforce Agentforce</td><td>$2 per conversation, or $0.10 per action with Flex Credits</td><td>Salesforce licences</td></tr></tbody></table><figcaption class="wp-element-caption">Published AI shopping assistant prices, October 2026</figcaption></figure>



<p class="wp-block-paragraph">Check the unit before the headline price. A per-resolution fee charges only for chats the AI closes without a human. A per-conversation fee charges for every chat, including the ones that end with &#8220;let me get a colleague.&#8221;</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/ai-shopping-assistant-monthly-cost-10k-conversations.png" alt="Bar chart comparing monthly AI shopping assistant fees for Agentforce, Zendesk, Intercom, Gorgias and a custom build" class="wp-image-26116" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/ai-shopping-assistant-monthly-cost-10k-conversations.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ai-shopping-assistant-monthly-cost-10k-conversations-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ai-shopping-assistant-monthly-cost-10k-conversations-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ai-shopping-assistant-monthly-cost-10k-conversations-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ai-shopping-assistant-monthly-cost-10k-conversations-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ai-shopping-assistant-monthly-cost-10k-conversations-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ai-shopping-assistant-monthly-cost-10k-conversations-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">Monthly AI shopping assistant usage fees at 10,000 conversations, published prices</figcaption></figure></div>



<p class="wp-block-paragraph">Take a store with 10,000 assistant conversations a month, where the AI resolves 60% without a human. At list prices, the AI fees alone come to about $5,400 on Gorgias, $5,940 on Intercom, $9,000 on Zendesk with committed resolutions, and $20,000 on Agentforce&#8217;s per-conversation model. Helpdesk plans and seats come on top.</p>



<h3 class="wp-block-heading">Integration work</h3>



<p class="wp-block-paragraph">Vendors talk about this cost least. A widget that only reads your help center needs almost no integration. An assistant that recommends products, checks stock, and looks up orders needs connections to the catalog or PIM, the inventory source, the order management system, and customer accounts. On Shopify, most of that comes through the platform&#8217;s APIs. On Magento (Adobe Commerce) with custom modules, an ERP for stock, and a PIM for attributes, each connection is real development work. Ask every vendor which of your systems their assistant can query live, and which it only reads as crawled text.</p>



<h3 class="wp-block-heading">Running costs of a custom build</h3>



<p class="wp-block-paragraph">A custom assistant pays for model usage per token. On OpenAI&#8217;s standard prices in October 2026, gpt-6-sol costs $2 per million input tokens and $10 per million output tokens, and the smaller gpt-6-luna costs $0.10 and $0.50. Picture a six-message shopping conversation that sends about 4,000 tokens of instructions, product data, and history per message and gets 300 tokens back each time. It uses about 24,000 input and 1,800 output tokens, which is roughly 7 cents on gpt-6-sol and under half a cent on gpt-6-luna.</p>



<p class="wp-block-paragraph">At 10,000 conversations, model usage comes to about $660 a month on the larger model. Add hosting, a vector search index for the catalog, monitoring, and a developer who updates prompts and integrations. Over a year, that developer time usually costs more than the tokens.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Per-resolution pricing looks cheap in a pilot and expensive at scale. Run your own conversation volume through each vendor&#8217;s unit before you compare demos.</p></div>



<h2 class="wp-block-heading">Data and catalog prerequisites</h2>



<p class="wp-block-paragraph">An AI assistant on your store needs structured product attributes, live price and stock data, written policies, and access to order data. Attributes such as size, material, and compatibility must be stored as fields, because a sentence in a description is hard to query. Prices and availability must come from an API at answer time. If the data is thin, the assistant guesses or says it doesn&#8217;t know, and both cost sales.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/ai-shopping-assistant-data-prerequisites.png" alt="AI shopping assistant chat answer linked to its data sources: PIM attributes, stock API, policy pages and order history" class="wp-image-26117" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/ai-shopping-assistant-data-prerequisites.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ai-shopping-assistant-data-prerequisites-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ai-shopping-assistant-data-prerequisites-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ai-shopping-assistant-data-prerequisites-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ai-shopping-assistant-data-prerequisites-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ai-shopping-assistant-data-prerequisites-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ai-shopping-assistant-data-prerequisites-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">The data behind every answer an AI shopping assistant gives</figcaption></figure></div>



<p class="wp-block-paragraph">Check these before you sign anything:</p>



<ul class="wp-block-list">
<li><strong>Attributes as fields.</strong> &#8220;Works with masonry&#8221; in a description is hard to filter on, and a &#8220;material compatibility&#8221; attribute is easy. A PIM helps here, and our <a href="https://scandiweb.com/blog/how-to-choose-the-best-pim-software/" target="_blank" rel="noopener">PIM software guide</a> compares the options.</li>


<li><strong>Live price and stock.</strong> The assistant must call your systems when it answers. A model that remembers yesterday&#8217;s price will quote it.</li>


<li><strong>Policies in writing.</strong> Shipping times, return windows, and warranty terms need to be on pages the assistant reads, current and unambiguous.</li>


<li><strong>Order and account access.</strong> Order status and returns need authenticated access to order data, with the shopper&#8217;s identity checked first.</li>


<li><strong>Every language you sell in.</strong> If your Finnish catalog has half the attributes of your English one, the Finnish assistant will be half as useful.</li>

</ul>



<p class="wp-block-paragraph">The same data work pays twice. Clean attributes and live feeds also decide whether your products appear in ChatGPT and Google AI Mode, and our <a href="https://scandiweb.com/blog/product-catalog-management-tips-strategies/" target="_blank" rel="noopener">product catalog management guide</a> covers how to organize them.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Ask for a demo on your own catalog with your ten hardest product questions. A vendor&#8217;s demo store has perfect data, and yours probably doesn&#8217;t.</p></div>



<h2 class="wp-block-heading">How to measure the ROI of an AI shopping assistant</h2>



<p class="wp-block-paragraph">Measure the assistant with a holdout test. Show the assistant to most visitors, hide it from a random 10–20%, and compare conversion rate, average order value, and revenue per visitor between the two groups. Comparing chat users with everyone else overstates the effect, because shoppers who choose to chat are often more motivated already.</p>



<p class="wp-block-paragraph">Track four groups of numbers:</p>



<ol class="wp-block-list">
<li><strong>Revenue:</strong> conversion rate, average order value, and revenue per visitor for the exposed group against the holdout.</li>


<li><strong>Support:</strong> resolution rate, tickets per order, and how often the assistant hands over to a human.</li>


<li><strong>Quality:</strong> a weekly sample of transcripts checked for wrong answers, especially prices, stock, and policies.</li>


<li><strong>Cost:</strong> licence, usage, and maintenance per resolved conversation, tracked monthly as volume changes.</li>

</ol>



<p class="wp-block-paragraph">The ROI math is then straightforward: incremental gross margin from the holdout test, plus support hours saved, minus licence, usage, hosting, and maintenance. <a href="https://scandiweb.com/blog/ga4-unassigned-traffic/">Send assistant events into GA4</a>, such as chat opened, product recommended, and product added to cart from chat, so you can follow the path to purchase. Test design is part of our <a href="https://scandiweb.com/services/cro-ux" target="_blank" rel="noopener">CRO and UX work</a> if you want a second pair of eyes on it.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Agree on the holdout before launch. Once the assistant is live for everyone, you lose the cleanest way to prove it sells.</p></div>



<h2 class="wp-block-heading">Guardrails to set before launch</h2>



<p class="wp-block-paragraph">An assistant that sounds confident and is wrong costs more than no assistant. In February 2024, a Canadian tribunal held Air Canada liable after its website chatbot gave a passenger wrong information about bereavement fares. The airline argued that the chatbot was a separate entity responsible for its own answers. The tribunal said it was &#8220;still just a part of Air Canada&#8217;s website.&#8221;</p>



<p class="wp-block-paragraph">Set these rules before go-live:</p>



<ul class="wp-block-list">
<li><strong>Live data for prices, stock, and policies.</strong> The model writes the sentence, and your systems supply the facts.</li>


<li><strong>Limits on what it can promise.</strong> No custom discounts, delivery dates, or exceptions unless a rule allows them.</li>


<li><strong>A visible way to reach a human,</strong> with the conversation passed along so the shopper doesn&#8217;t repeat themselves.</li>


<li><strong>An AI label.</strong> Since 2 August 2026, the EU AI Act requires AI systems that talk to people to make clear they are AI. Our <a href="https://scandiweb.com/blog/eu-ai-act-for-ecommerce-frequently-asked/" target="_blank" rel="noopener">EU AI Act guide for eCommerce</a> explains who is responsible.</li>


<li><strong>Logging and review</strong> of conversations, with personal data handled under your privacy policy.</li>


<li><strong>Protection against prompt injection,</strong> so a shopper can&#8217;t talk the assistant into ignoring its rules.</li>

</ul>



<h2 class="wp-block-heading">How to choose the right AI shopping assistant</h2>



<p class="wp-block-paragraph">Pick the type that fits your catalog and your volume. A SaaS widget suits stores whose main problem is support load. A platform-native assistant suits stores whose platform already holds clean catalog and customer data. A custom build suits complex catalogs, several channels, and high volumes, where per-resolution fees would exceed what the model costs to run.</p>



<p class="wp-block-paragraph"><strong>Choose a SaaS chat widget if:</strong></p>



<ul class="wp-block-list">
<li>Most of your chat volume is order status, shipping, and returns questions</li>


<li>Your catalog is small enough that product pages describe it well</li>


<li>You have no developer time for an integration this quarter</li>


<li>You want a pilot running within a month</li>

</ul>



<p class="wp-block-paragraph"><strong>Choose a platform-native assistant if:</strong></p>



<ul class="wp-block-list">
<li>You run on Shopify, Salesforce Commerce Cloud, or a search platform that already holds your catalog</li>


<li>You want the assistant to use the platform&#8217;s customer accounts and order data without a separate integration</li>


<li>You accept the vendor&#8217;s logic and roadmap in exchange for less maintenance</li>


<li>Your team already works in that vendor&#8217;s admin every day</li>

</ul>



<p class="wp-block-paragraph"><strong>Choose a custom LLM assistant if:</strong></p>



<ul class="wp-block-list">
<li>Your products need reasoning, such as projects, bundles, configurable items, or B2B price lists</li>


<li>You run Magento (Adobe Commerce) with custom modules, an ERP, and a PIM</li>


<li>You sell in several markets and languages from one catalog</li>


<li>Your conversation volume makes per-resolution fees more expensive than model usage</li>


<li>You want one assistant across the website, app, WhatsApp, and stores</li>

</ul>



<p class="wp-block-paragraph">Not sure which group you&#8217;re in? Our <a href="https://scandiweb.com/services/ai" target="_blank" rel="noopener">AI strategy consulting</a> starts with that question and your own conversation data.</p>



<h2 class="wp-block-heading">Frequently asked questions about AI shopping assistants</h2>



<h3 class="wp-block-heading">What does an AI shopping assistant do?</h3>



<p class="wp-block-paragraph">An AI shopping assistant answers shoppers&#8217; questions in chat using your own store data. It recommends products based on what the shopper describes, compares options, checks stock and prices, explains shipping and return policies, and tracks orders. More advanced assistants also build carts, start returns, and contact past customers with personal recommendations.</p>



<h3 class="wp-block-heading">What is the difference between an AI chatbot for eCommerce and an AI shopping assistant?</h3>



<p class="wp-block-paragraph">The terms overlap. An AI chatbot for eCommerce usually means a support tool that answers questions from your help center. A shopping assistant also sells: it queries the catalog, recommends specific products, and helps the shopper decide. Many tools do both, so judge each one by the data it can query live.</p>



<h3 class="wp-block-heading">Is there a free AI shopping assistant for online stores?</h3>



<p class="wp-block-paragraph">Yes, for Shopify stores. Shopify Inbox is a free app that adds an AI sales associate to your storefront, trained on your catalog, policies, and store content. Most other tools charge per conversation or per resolution after a small entry tier, and a custom build costs development time even when model usage is cheap.</p>



<h3 class="wp-block-heading">Do AI shopping assistants increase conversion?</h3>



<p class="wp-block-paragraph">They can, mainly through product discovery. A scandiweb-built assistant for a Nordic DIY retailer led to 95% higher average order value and 68% more conversions, and Amazon reports that shoppers using Rufus are 60% more likely to buy. Your own result depends on data quality, so prove it with a holdout test before a full rollout.</p>



<h3 class="wp-block-heading">Do you have to tell shoppers they are talking to AI?</h3>



<p class="wp-block-paragraph">In the EU, yes. Since 2 August 2026, the EU AI Act requires AI systems that interact with people to make it clear they are AI, unless that is obvious from the context. A short line at the start of the chat, such as &#8220;I&#8217;m an AI assistant,&#8221; covers it. Check that your vendor&#8217;s widget shows one.</p>



<h3 class="wp-block-heading">Can you add an AI chatbot or shopping assistant to Magento (Adobe Commerce)?</h3>



<p class="wp-block-paragraph">Yes. Some SaaS helpdesks, such as Gorgias, offer a Magento 2 integration, and a custom assistant can use Magento&#8217;s GraphQL API for catalog, cart, and customer data. scandiweb&#8217;s open-source MCP server for Magento connects AI tools to the store for your own team. Adobe has also announced a Brand Concierge integration for Adobe Commerce.</p>



<h2 class="wp-block-heading">Start with one use case and a holdout</h2>



<p class="wp-block-paragraph">An AI shopping assistant pays off when it answers from live data, starts with the use case your data can support, and is measured against shoppers who never saw it. For most stores, that means order status first and product discovery second, on whichever type matches your catalog and volume. If you want to see how a custom assistant would handle your products, our <a href="https://scandiweb.com/services/ai-chatbot-development" target="_blank" rel="noopener">conversational commerce</a> team can build a demo with your catalog and typical customer questions.</p>



<script type="application/ld+json">{"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"@type": "Question", "name": "What does an AI shopping assistant do?", "acceptedAnswer": {"@type": "Answer", "text": "An AI shopping assistant answers shoppers' questions in chat using your own store data. It recommends products based on what the shopper describes, compares options, checks stock and prices, explains shipping and return policies, and tracks orders. More advanced assistants also build carts, start returns, and contact past customers with personal recommendations."}}, {"@type": "Question", "name": "What is the difference between an AI chatbot for eCommerce and an AI shopping assistant?", "acceptedAnswer": {"@type": "Answer", "text": "The terms overlap. An AI chatbot for eCommerce usually means a support tool that answers questions from your help center. A shopping assistant also sells: it queries the catalog, recommends specific products, and helps the shopper decide. Many tools do both, so judge each one by the data it can query live."}}, {"@type": "Question", "name": "Is there a free AI shopping assistant for online stores?", "acceptedAnswer": {"@type": "Answer", "text": "Yes, for Shopify stores. Shopify Inbox is a free app that adds an AI sales associate to your storefront, trained on your catalog, policies, and store content. Most other tools charge per conversation or per resolution after a small entry tier, and a custom build costs development time even when model usage is cheap."}}, {"@type": "Question", "name": "Do AI shopping assistants increase conversion?", "acceptedAnswer": {"@type": "Answer", "text": "They can, mainly through product discovery. A scandiweb-built assistant for a Nordic DIY retailer led to 95% higher average order value and 68% more conversions, and Amazon reports that shoppers using Rufus are 60% more likely to buy. Your own result depends on data quality, so prove it with a holdout test before a full rollout."}}, {"@type": "Question", "name": "Do you have to tell shoppers they are talking to AI?", "acceptedAnswer": {"@type": "Answer", "text": "In the EU, yes. Since 2 August 2026, the EU AI Act requires AI systems that interact with people to make it clear they are AI, unless that is obvious from the context. A short line at the start of the chat, such as \"I'm an AI assistant,\" covers it. Check that your vendor's widget shows one."}}, {"@type": "Question", "name": "Can you add an AI chatbot or shopping assistant to Magento (Adobe Commerce)?", "acceptedAnswer": {"@type": "Answer", "text": "Yes. Some SaaS helpdesks, such as Gorgias, offer a Magento 2 integration, and a custom assistant can use Magento's GraphQL API for catalog, cart, and customer data. scandiweb's open-source MCP server for Magento connects AI tools to the store for your own team. Adobe has also announced a Brand Concierge integration for Adobe Commerce."}}]}</script>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p><style> p.box { border: 1px solid black; padding-top: 30px; padding-right: 30px; padding-bottom: 30px; padding-left: 30px; } </style> <p class="box"><em>Comparing AI assistant demos and getting four different price units? </em><a href="https://scandiweb.com/contact" target="_blank" rel="noreferrer noopener"><em>Send us your monthly chat volume</em></a><em>, and we&#x27;ll show you what each option would cost on your store.</em></p></p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/ai-shopping-assistant/">AI Shopping Assistants for eCommerce: Options, Costs and Where They Pay Off</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>The B2B Buyer Journey in 2027: How Buyers Use AI and Sales Reps</title>
		<link>https://scandiweb.com/blog/b2b-buyer-journey/</link>
		
		<dc:creator><![CDATA[Glebs Vrevsky]]></dc:creator>
		<pubDate>Wed, 21 Oct 2026 13:23:00 +0000</pubDate>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[Digital Growth]]></category>
		<category><![CDATA[b2b]]></category>
		<category><![CDATA[B2B eCommerce]]></category>
		<category><![CDATA[customer experience]]></category>
		<category><![CDATA[Customer Journey]]></category>
		<category><![CDATA[ERP]]></category>
		<category><![CDATA[PIM]]></category>
		<category><![CDATA[sales]]></category>
		<guid isPermaLink="false">https://scandiweb.com/blog/?p=26056</guid>

					<description><![CDATA[<p>The B2B buyer journey in 2027: six stages, where AI and sales reps fit, and what suppliers must keep consistent to win the order.</p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/b2b-buyer-journey/">The B2B Buyer Journey in 2027: How Buyers Use AI and Sales Reps</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="lazyblock-related-Bj6vR wp-block-lazyblock-related"><div class="related-services">
  <h3>Related Services</h3>
  <ul>
    
    <li>
      <a  href="https://scandiweb.com/b2b-ecommerce-solutions" target=_blank >
        B2B eCommerce solutions
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.com/integrations" target=_blank >
        eCommerce integrations
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.com/services/ai-search-optimization" target=_blank >
        AI search optimization
      </a>
    </li>
    
  </ul>
</div>
</div>


<p class="wp-block-paragraph">If your sales team keeps hearing &#8220;we already looked you up in ChatGPT&#8221; on the first call, or your reps spend more time correcting what buyers read than selling, the B2B buyer journey has changed under them. In a Gartner survey of 645 B2B buyers, 67% said they prefer a rep-free experience. In the same survey, 69% said they prefer to check AI-generated insights with a sales rep.</p>



<p class="wp-block-paragraph">Those two numbers describe the same buyer. They research alone, with AI tools and supplier websites, and they bring in a person when they need to know the answer is right. The rep&#8217;s job moves from explaining the product to confirming what the buyer already found: the price, the lead time, and the fit for their application.</p>



<p class="wp-block-paragraph">This guide walks through the six stages of that journey, who is in the buying group, where AI and reps each fit, and what a manufacturer or distributor has to keep consistent so that the website, the AI answer, the rep, and the invoice tell the buyer the same thing.</p>



<h2 class="wp-block-heading">What is the B2B buyer journey in 2027?</h2>



<p class="wp-block-paragraph">The B2B buyer journey is the path a business buyer, or more often a buying group, takes from noticing a problem to placing an order and reordering. In 2027 most of that path happens before a supplier hears from the buyer. AI assistants and search build the shortlist, supplier websites provide the evidence, and sales reps come in to validate the choice and close it.</p>



<p class="wp-block-paragraph">Gartner describes the B2B buying journey as six buying jobs: identifying the problem, exploring solutions, building requirements, selecting a supplier, validating the choice, and creating consensus inside the buying group. Buyers loop back between them. A plant manager can be halfway through supplier selection when finance asks for a different budget, and the group goes back to requirements.</p>



<p class="wp-block-paragraph">For a manufacturer or distributor, the journey continues after the first order. A first order from a new account is often small. The value is in the next fifty orders, and those are won or lost in the portal, the ERP, and the account team long after the first sale.</p>



<h2 class="wp-block-heading">The 6 stages of the B2B buyer journey</h2>



<p class="wp-block-paragraph">The six stages of the B2B buyer journey are problem definition, research and shortlist, evaluation by the buying group, validation, purchase and approval, and reorder. AI tools now do most of the work in the first two stages. Sales reps matter most in validation and in getting the purchase approved.</p>



<figure class="wp-block-table"><table><thead><tr><th>Stage</th><th>What the buyer does</th><th>Where AI fits</th><th>Where the rep fits</th><th>What the supplier must provide</th></tr></thead><tbody><tr><td>1. Problem definition</td><td>Names the problem and the budget</td><td>Explains options and terms</td><td>Frames complex problems</td><td>Content by problem and application</td></tr><tr><td>2. Research and shortlist</td><td>Builds a list of 3–4 suppliers</td><td>Names suppliers, compares specs</td><td>Rarely involved</td><td>Public specs, documents, coverage</td></tr><tr><td>3. Evaluation</td><td>Each role checks its part</td><td>Summarizes specs and terms</td><td>Answers technical questions</td><td>Datasheets, certifications, case studies</td></tr><tr><td>4. Validation</td><td>Checks AI answers with a person</td><td>The claim being checked</td><td>Confirms price, stock, and fit</td><td>Rep access to the buyer&#8217;s data</td></tr><tr><td>5. Purchase and approval</td><td>Procurement negotiates and approves</td><td>Drafts comparisons</td><td>Builds the quote, handles terms</td><td>Accurate quotes, contract prices, terms</td></tr><tr><td>6. Reorder and expansion</td><td>Reorders and adds products</td><td>Automates repeat orders</td><td>Grows the account</td><td>Portal with prices, history, invoices</td></tr></tbody></table><figcaption class="wp-element-caption">The 6 stages of the B2B buyer journey and where AI and reps fit</figcaption></figure>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-buyer-journey-six-stages-ai-and-reps.png" alt="Diagram of the six stages of the B2B buyer journey showing where AI tools and sales reps each fit" class="wp-image-26045" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-buyer-journey-six-stages-ai-and-reps.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-buyer-journey-six-stages-ai-and-reps-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-buyer-journey-six-stages-ai-and-reps-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-buyer-journey-six-stages-ai-and-reps-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-buyer-journey-six-stages-ai-and-reps-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-buyer-journey-six-stages-ai-and-reps-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-buyer-journey-six-stages-ai-and-reps-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">Where AI and sales reps each do the work across the six stages</figcaption></figure></div>



<h3 class="wp-block-heading">1. Problem definition</h3>



<p class="wp-block-paragraph">The journey starts when someone in the business names a problem, such as a packing line that keeps stopping or a new product that needs a component the current supplier doesn&#8217;t stock. Today that person often asks an AI assistant to explain the options before speaking to anyone.</p>



<p class="wp-block-paragraph">Gartner found that reps are still the most important source of information when buyers define a business problem. That applies mostly to complex problems, where the buyer doesn&#8217;t yet know what to ask. Your website helps at this stage with content organized by problem and application, such as &#8220;how to cut changeover time on a filling line,&#8221; linked to the products that solve it.</p>



<h3 class="wp-block-heading">2. Research and shortlist</h3>



<p class="wp-block-paragraph">Research has changed more than any other stage. Buyers ask ChatGPT, Gemini, or Google which suppliers make what they need, ship to their region, and hold the right certifications. The answer becomes the shortlist. <a href="https://www.businesswire.com/news/home/20251112018032/en" target="_blank" rel="noopener">6sense found</a> that 94% of buying groups rank their preferred vendors before first contact, and they buy from that favorite 77% of the time.</p>



<p class="wp-block-paragraph">Suppliers get on that list through what AI tools and search engines can read: open product pages, full specs, coverage and certification details, and mentions on sites those tools trust. Our guide to <a href="https://scandiweb.com/blog/b2b-seo/" target="_blank" rel="noopener">B2B SEO in 2027</a> covers how to rank on Google and get recommended by AI for this stage.</p>



<h3 class="wp-block-heading">3. Evaluation by the buying group</h3>



<p class="wp-block-paragraph">Once the shortlist exists, each member of the buying group checks the part they are responsible for. Engineering reads the datasheet. Quality checks the certifications. Finance compares total cost. Sustainability asks for material and origin data, which EU rules such as the <a href="https://scandiweb.com/blog/digital-product-passport/" target="_blank" rel="noopener">digital product passport</a> are turning into a requirement.</p>



<p class="wp-block-paragraph">Each of them may run their own AI query, on their own schedule, and get a slightly different answer. A supplier whose data is complete and identical everywhere gives every member the same facts.</p>



<h3 class="wp-block-heading">4. Validation</h3>



<p class="wp-block-paragraph">Validation is the stage where buyers bring in a person. Gartner found that 69% of B2B buyers prefer to validate AI-generated insights with a sales rep. The questions are specific: is this the current price for our account, can you deliver 400 units by the 15th, and is this part compatible with the pump we already run?</p>



<p class="wp-block-paragraph">The rep wins this stage by answering quickly, with numbers that match what the buyer already saw. A rep who has to check three systems and call the warehouse gives the buyer a reason to doubt everything else.</p>



<p class="wp-block-paragraph">Many industrial buyers start this stage by phone. Wainbee, an engineering systems distributor in Canada with 14 locations, has many customers who call or write before they buy. When we rebuilt its Google Ads account, we added tracking for phone calls and other contacts the customer starts, so the team could see which searches led to a conversation. In six months, contact form submissions grew 320% and phone calls 21%, while the cost per conversion fell 60.6%.</p>



<p class="wp-block-paragraph"><strong>Read more:</strong> <a href="https://scandiweb.com/blog/ppc-case-study-more-leads-with-less-costs/" target="_blank" rel="noopener">PPC Case Study: 320% More Leads in 6 Months with Less Costs</a></p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-buyer-journey-wainbee-first-contact.png" alt="Wainbee engineering systems distributor website shown on desktop and mobile screens" class="wp-image-26047" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-buyer-journey-wainbee-first-contact.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-buyer-journey-wainbee-first-contact-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-buyer-journey-wainbee-first-contact-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-buyer-journey-wainbee-first-contact-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-buyer-journey-wainbee-first-contact-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-buyer-journey-wainbee-first-contact-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-buyer-journey-wainbee-first-contact-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">Wainbee tracks the calls and forms that start most of its B2B deals</figcaption></figure></div>



<h3 class="wp-block-heading">5. Purchase and approval</h3>



<p class="wp-block-paragraph">Procurement usually leads this stage. They want the quote, the contract price, the payment terms, and the PO process to work without surprises, and they compare the final offer against what the buyer saw online.</p>



<p class="wp-block-paragraph">This is where a broken handoff costs the most. If the quote doesn&#8217;t match the web price, or the portal can&#8217;t take a PO with net terms, the buyer&#8217;s internal approval stalls. B2B platforms such as Adobe Commerce include company accounts with buyer roles, approval rules, and negotiable quotes for this stage. Our list of <a href="https://scandiweb.com/blog/top-9-adobe-commerce-b2b-features/" target="_blank" rel="noopener">Adobe Commerce B2B features</a> shows what comes built in.</p>



<h3 class="wp-block-heading">6. Reorder and expansion</h3>



<p class="wp-block-paragraph">After the first order, the journey turns into a loop. Buyers want to reorder in a few clicks, see their contract prices, track deliveries, and download invoices without asking anyone. Some of those reorders will be placed by software: procurement systems, punchout, and, over time, AI agents using protocols such as the <a href="https://scandiweb.com/blog/universal-commerce-protocol/" target="_blank" rel="noopener">Universal Commerce Protocol</a>.</p>



<p class="wp-block-paragraph">The rep&#8217;s job here is the account. They spot the categories the customer buys elsewhere and bring them in. The first order is day 0 of the relationship, and most of the revenue comes after it.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Two stages of the journey now happen almost entirely without you: problem research and the shortlist. The rep&#8217;s first real chance to change the outcome comes at validation, so that conversation has to be fast and exact.</p></div>



<h2 class="wp-block-heading">Who is in the B2B buying group</h2>



<p class="wp-block-paragraph">A B2B buying group is everyone who shapes a purchase decision. <a href="https://www.forrester.com/press-newsroom/forrester-2026-the-state-of-business-buying/" target="_blank" rel="noopener">Forrester&#8217;s 2026 State of Business Buying</a> report puts the typical group at 13 internal stakeholders and nine external influencers, such as consultants, peers, and analysts. The number grows for complex or strategic purchases.</p>



<p class="wp-block-paragraph">In an industrial purchase, the internal group usually includes engineering or maintenance, operations, quality, procurement, and finance, and sometimes sustainability and IT. Procurement carries real weight: Forrester found procurement professionals are decision-makers in 53% of business buying cycles.</p>



<p class="wp-block-paragraph">Buyers also test before they commit. More than 60% of business buyers now use a trial, and 78% of those spending $10 million or more do. For a distributor, a trial often means a sample order, a pilot site, or a first small PO.</p>



<p class="wp-block-paragraph">Every member of the group needs to find their answer without calling. Here is what each role usually checks:</p>



<ul class="wp-block-list">
<li><strong>Engineering and maintenance:</strong> specs, drawings, compatibility, and substitutes.</li>


<li><strong>Quality:</strong> certifications, test reports, and standards.</li>


<li><strong>Procurement:</strong> contract prices, lead times, and the PO and invoice process.</li>


<li><strong>Finance:</strong> total cost, payment terms, and credit.</li>


<li><strong>Sustainability:</strong> material, origin, and carbon data.</li>


<li><strong>IT:</strong> punchout and integration with procurement systems and the ERP.</li>

</ul>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Thirteen people rarely read the same page. Plan product pages and documents for each role in the buying group, because the person who blocks the deal is often one your rep never met.</p></div>



<h2 class="wp-block-heading">How AI changes B2B buying behavior</h2>



<p class="wp-block-paragraph">AI changes B2B buying behavior mainly at the research stage. In Gartner&#8217;s survey, 45% of buyers used generative AI in a recent purchase, mostly to research vendors and products, alongside an average of seven information sources. Buyers use it for speed, and they still check its answers with people.</p>



<p class="wp-block-paragraph">Buyers also doubt AI and reps about equally. In the same survey, 51% said they are more likely to get misleading information from generative AI, and 49% said the same about sales reps. Buyers treat both as sources that can be wrong. They use AI because it is fast and available at 11 p.m., and reps because a rep can be held to an answer.</p>



<p class="wp-block-paragraph">Forrester&#8217;s 2026 research found the same pattern: AI answer engines are now the starting point for business buyers, but they often deliver incomplete or unreliable information, so buyers look for validation from trusted sources.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-buyer-journey-ai-vs-rep-trust.png" alt="Gartner 2026 survey figures on how B2B buyers trust generative AI and sales reps" class="wp-image-26050" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-buyer-journey-ai-vs-rep-trust.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-buyer-journey-ai-vs-rep-trust-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-buyer-journey-ai-vs-rep-trust-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-buyer-journey-ai-vs-rep-trust-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-buyer-journey-ai-vs-rep-trust-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-buyer-journey-ai-vs-rep-trust-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-buyer-journey-ai-vs-rep-trust-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">B2B buyers doubt AI and reps about equally, then use reps to check the AI</figcaption></figure></div>



<p class="wp-block-paragraph">For suppliers, that creates two jobs. Make sure the AI answer about you is right, by publishing complete and consistent product data. Then make sure the person the buyer calls can confirm it in one conversation. To see what AI tools say about you today, our guide to <a href="https://scandiweb.com/blog/tracking-brand-mentions-in-llm-ai-generated-answers/" target="_blank" rel="noopener">tracking brand mentions in LLMs</a> shows a repeatable method, and our <a href="https://scandiweb.com/services/ai-search-optimization" target="_blank" rel="noopener">AI search optimization</a> team runs the same check across hundreds of buyer prompts.</p>



<h2 class="wp-block-heading">What the B2B sales rep does now</h2>



<p class="wp-block-paragraph">The B2B sales rep in 2027 mainly validates what buyers have already found and manages the account after the first order. Buyers come to the rep with research already done and ask them to confirm price, availability, and technical fit, to help win internal approval, and to finalize the order.</p>



<p class="wp-block-paragraph">Gartner names four moments where reps remain the most important information source: defining the business problem, identifying a preferred supplier, securing internal support, and finalizing the purchase. Robert Blaisdell, VP Analyst at Gartner, warned sales leaders not to read the preference for digital self-service as &#8220;a signal that sellers matter less.&#8221; Gartner&#8217;s advice is to stop adding reps to every stage and bring them in where they add the most.</p>



<p class="wp-block-paragraph">The validator job needs four things many B2B sellers don&#8217;t have yet:</p>



<ul class="wp-block-list">
<li><strong>The customer&#8217;s view.</strong> The rep sees the same prices, stock, and order history the buyer sees in the portal.</li>


<li><strong>Live data.</strong> Stock and lead times come straight from the ERP during the call.</li>


<li><strong>One price logic.</strong> A rep&#8217;s quote uses the same contract price rules as the website.</li>


<li><strong>The research trail.</strong> The rep knows which products and pages the account viewed before calling, from the CRM and web analytics.</li>

</ul>



<p class="wp-block-paragraph">Macron, the teamwear and sportswear brand, solved the first of these on Adobe Commerce. Its &#8220;Shop as a Customer&#8221; feature lets Macron&#8217;s team log in under a partner&#8217;s account and help with bulk orders and complex configurations, using the prices and catalog that partner sees. Macron serves distributors, sports clubs, and retailers in more than 150 countries, and the platform is integrated with its SAP ERP. Order creation time fell 40%.</p>



<p class="wp-block-paragraph"><strong>Read more:</strong> <a href="https://scandiweb.com/blog/case-study-macron-adobe-commerce-b2b-platform/" target="_blank" rel="noopener">Case Study: Macron&#8217;s B2B Platform Evolution with Adobe Commerce</a></p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>A rep who sees exactly what the customer sees can validate in one call. A rep working from a different price list creates the inconsistency that makes buyers switch suppliers.</p></div>



<h2 class="wp-block-heading">What suppliers must keep consistent across the journey</h2>



<p class="wp-block-paragraph">Suppliers must keep product data, prices, stock, lead times, and terms the same everywhere a buyer meets them: the website, AI answers, the rep&#8217;s quote, the portal, and the invoice. McKinsey&#8217;s 2026 B2B Pulse survey of nearly 4,000 decision-makers names inconsistent information as a leading reason buyers switch suppliers.</p>



<p class="wp-block-paragraph"><a href="https://www.mckinsey.com/capabilities/growth-marketing-and-sales/our-insights/the-surprising-economics-of-b2b-growth-the-new-survival-threshold-and-what-it-takes-to-thrive" target="_blank" rel="noopener">McKinsey</a> also found that buyers use around ten channels during a purchase. Each channel is a chance for a different number. Most inconsistencies have the same cause: the fact is stored in more than one system, or typed by hand into a quote.</p>



<figure class="wp-block-table"><table><thead><tr><th>Fact</th><th>Where buyers see it</th><th>Where it should come from</th></tr></thead><tbody><tr><td>Specs and compatibility</td><td>Product pages, AI answers, datasheets</td><td>PIM</td></tr><tr><td>Contract price</td><td>Portal, rep quote, invoice</td><td>ERP price rules</td></tr><tr><td>Stock and lead time</td><td>Product page, checkout, rep call</td><td>ERP or warehouse system, live</td></tr><tr><td>Payment terms and credit</td><td>Checkout, quote, invoice</td><td>ERP customer record</td></tr><tr><td>Certifications and documents</td><td>Product pages, tenders, AI answers</td><td>PIM or DAM</td></tr><tr><td>Order history</td><td>Portal, rep view, account review</td><td>ERP, through the commerce platform</td></tr></tbody></table><figcaption class="wp-element-caption">Which system each buyer-facing fact should come from</figcaption></figure>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-buyer-journey-one-source-of-facts.png" alt="Diagram of ERP and PIM data feeding the website, AI answers, sales rep quotes, the portal, and invoices" class="wp-image-26051" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-buyer-journey-one-source-of-facts.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-buyer-journey-one-source-of-facts-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-buyer-journey-one-source-of-facts-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-buyer-journey-one-source-of-facts-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-buyer-journey-one-source-of-facts-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-buyer-journey-one-source-of-facts-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/b2b-buyer-journey-one-source-of-facts-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">Every place a buyer checks a fact should read it from the same system</figcaption></figure></div>



<p class="wp-block-paragraph">The fix is usually integration work. Connect the PIM and the ERP to the storefront, the rep tools, and the feeds AI tools read, so every channel reads from one source. Our guides to <a href="https://scandiweb.com/blog/ecommerce-erp-integration/" target="_blank" rel="noopener">eCommerce ERP integration</a> and <a href="https://scandiweb.com/blog/pim-ecommerce-integration-what-you-need-to-know/" target="_blank" rel="noopener">PIM and eCommerce integration</a> explain how to scope both.</p>



<p class="wp-block-paragraph"><strong>Test for your team:</strong> ask ChatGPT for the lead time and price range of your three bestsellers, then ask a rep, then check the portal. Every answer that differs is a question a buyer will ask too.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>A buyer can catch a mismatch in any fact that appears in two places. Count how many systems store your contract prices: each extra one is another chance for the quote and the invoice to differ.</p></div>



<h2 class="wp-block-heading">How to map your B2B buyer journey</h2>



<p class="wp-block-paragraph">To map your B2B buyer journey, start from real deals. Interview recent customers, list the roles in each buying group, record which sources each role used at each stage, and mark where your website, AI answers, and reps gave different information. Then fix the stage where the most deals stall.</p>



<ol class="wp-block-list">
<li><strong>Pick ten recent deals, won and lost.</strong> Ask each customer how they found you, who was involved, and what made them get in touch.</li>


<li><strong>Name the roles.</strong> Write down who in each buying group checked what, using the six stages above.</li>


<li><strong>Ask AI what your buyers ask it.</strong> Run your buyers&#8217; real questions in ChatGPT, Gemini, and Perplexity, and record whether you are named and whether the facts are right.</li>


<li><strong>Trace each fact to its source.</strong> For price, stock, lead time, and specs, find the system it comes from on the website, in quotes, and on invoices.</li>


<li><strong>Find where deals stall.</strong> CRM data on time in stage and lost reasons shows where the journey breaks.</li>


<li><strong>Fix one stage at a time.</strong> Start with the stage that loses the most revenue, which is usually validation or reorder.</li>

</ol>



<p class="wp-block-paragraph">If you are deciding what to fund first next year, our guide to <a href="https://scandiweb.com/blog/b2b-ecommerce-trends/" target="_blank" rel="noopener">B2B eCommerce trends for 2027</a> covers which gaps to close first, and our <a href="https://scandiweb.com/b2b-ecommerce-solutions" target="_blank" rel="noopener">B2B eCommerce solutions</a> page shows how we approach the work after go-live.</p>



<h2 class="wp-block-heading">FAQ about the B2B buyer journey</h2>



<h3 class="wp-block-heading">What are the stages of the B2B buyer journey?</h3>



<p class="wp-block-paragraph">The B2B buyer journey has six stages: problem definition, research and shortlist, evaluation by the buying group, validation, purchase and approval, and reorder. Buyers often loop back to an earlier stage when the group&#8217;s needs change. In 2027, AI tools handle much of the research and shortlist, and sales reps matter most at validation and approval.</p>



<h3 class="wp-block-heading">Do B2B buyers still want to talk to sales reps?</h3>



<p class="wp-block-paragraph">Yes, at specific moments. Gartner found that 67% of B2B buyers prefer a rep-free experience, and 69% prefer to validate AI-generated insights with a sales rep. Buyers want to research and reorder on their own, then talk to a rep to confirm price, availability, and technical fit, and to get internal approval for larger orders.</p>



<h3 class="wp-block-heading">How do B2B buyers use AI in the buying journey?</h3>



<p class="wp-block-paragraph">B2B buyers use AI mostly to research suppliers and products. In a 2026 Gartner survey, 45% had used generative AI in a recent purchase, alongside about seven other information sources. Buyers ask AI tools to explain options, name suppliers, and compare specs, then check the answers with a sales rep or the supplier&#8217;s website.</p>



<h3 class="wp-block-heading">How many people are in a B2B buying group?</h3>



<p class="wp-block-paragraph">Forrester&#8217;s 2026 research puts the typical B2B buying decision at 13 internal stakeholders and nine external influencers, and the number grows for complex purchases. In manufacturing and distribution, the group usually includes engineering, operations, quality, procurement, and finance. Procurement professionals are decision-makers in 53% of buying cycles.</p>



<h3 class="wp-block-heading">How is the B2B buyer journey different from B2C?</h3>



<p class="wp-block-paragraph">A B2B purchase involves a buying group instead of one shopper, longer evaluation, contract prices and payment terms, and procurement approval. It also continues after the first order through reorders. A B2C journey usually ends at checkout and depends on one person&#8217;s decision, while a B2B journey depends on many people agreeing on the same facts.</p>



<h3 class="wp-block-heading">What does a B2B sales rep do?</h3>



<p class="wp-block-paragraph">A B2B sales rep helps business customers choose, buy, and reorder products. In 2027 that job is shifting toward validation: confirming the price, stock, and fit that buyers already researched online or with AI, helping them win internal approval, and growing the account after the first order. Reps need access to the same data the customer sees.</p>



<h2 class="wp-block-heading">The B2B buyer journey in 2027 runs on one set of facts</h2>



<p class="wp-block-paragraph">The B2B buyer journey in 2027 starts with AI and search and ends with a rep, a quote, and a portal that the buyer comes back to. Buyers move between those sources freely and check one against another. Suppliers keep winning orders when their website, AI answers, reps, and invoices all show the same price, stock, and specs. Start by tracing where each of those facts comes from, then give your reps the same view of the account that the customer has.</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p><style> p.box { border: 1px solid black; padding-top: 30px; padding-right: 30px; padding-bottom: 30px; padding-left: 30px; } </style> <p class="box"><em>Hearing &quot;we already compared you in ChatGPT&quot; from new buyers? </em><a href="https://scandiweb.com/contact" target="_blank" rel="noreferrer noopener"><em>Tell us where your deals stall today</em></a><em>, and we&#x27;ll show you which part of the journey to fix first.</em></p></p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/b2b-buyer-journey/">The B2B Buyer Journey in 2027: How Buyers Use AI and Sales Reps</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Why GA4 Doesn&#8217;t Match Your Orders: Unassigned Traffic, (not set), and Missing Sales</title>
		<link>https://scandiweb.com/blog/ga4-unassigned-traffic/</link>
		
		<dc:creator><![CDATA[Andres Reitsnik]]></dc:creator>
		<pubDate>Wed, 21 Oct 2026 11:00:00 +0000</pubDate>
				<category><![CDATA[Data Analytics]]></category>
		<category><![CDATA[Digital Growth]]></category>
		<category><![CDATA[Data Tracking]]></category>
		<category><![CDATA[ecommerce data analytics]]></category>
		<category><![CDATA[GA4]]></category>
		<category><![CDATA[GA4 unassigned traffic]]></category>
		<category><![CDATA[Google Analytics]]></category>
		<category><![CDATA[Google Analytics 4]]></category>
		<category><![CDATA[Google Consent Mode]]></category>
		<category><![CDATA[Google Tag Manager]]></category>
		<guid isPermaLink="false">https://scandiweb.com/blog/?p=26062</guid>

					<description><![CDATA[<p>GA4 unassigned traffic, (not set) and missing orders explained: which gaps are normal, what to fix, and a monthly check against your store.</p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/ga4-unassigned-traffic/">Why GA4 Doesn&#8217;t Match Your Orders: Unassigned Traffic, (not set), and Missing Sales</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="lazyblock-related-Ga4Ut wp-block-lazyblock-related"><div class="related-services">
  <h3>Related Services</h3>
  <ul>
    
    <li>
      <a  href="https://scandiweb.com/services/analytics" target=_blank >
        Analytics services
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.com/ga4-migration-consultancy" target=_blank >
        GA4 migration and setup
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.com/services/google-analytics-4-support" target=_blank >
        GA4 support
      </a>
    </li>
    
  </ul>
</div>
</div>


<p class="wp-block-paragraph">If your store backend shows more orders than GA4 again this month, or if the Unassigned row in your traffic report keeps growing, you&#8217;re probably asking one question: is this a tracking problem, or are we really selling less?</p>



<p class="wp-block-paragraph">GA4 unassigned traffic, (not set) values, and missing purchases usually point at the same few causes: consent, blocked tags, payment pages that send shoppers back as referrals, purchase events that fire twice or not at all, and bots. Below, we go through each cause and how to confirm it in your own reports. The guide ends with a monthly check that compares GA4 with your order database, so the next gap gets caught in weeks.</p>



<h2 class="wp-block-heading">Is the gap between GA4 and your orders normal?</h2>



<p class="wp-block-paragraph">GA4 will never match your order database exactly, and it isn&#8217;t meant to. The backend records every paid order. GA4 records the purchases it was allowed to see and managed to receive. A stable gap is normal. A gap that suddenly grows, sits on one payment method, or comes with a jump in GA4 unassigned traffic usually means something in the tracking broke.</p>



<h3 class="wp-block-heading">Gaps you should expect</h3>



<p class="wp-block-paragraph">Some orders never reach GA4 by design.</p>



<ul class="wp-block-list">
<li>Shoppers who decline analytics cookies, when consent mode blocks the Google tag</li>


<li>Browsers and extensions that block requests to Google Analytics</li>


<li>Phone, marketplace, and manually created orders that never pass through the website</li>


<li>Orders completed on a payment provider&#8217;s page when the shopper never comes back to the confirmation page</li>

</ul>



<p class="wp-block-paragraph">Other differences come from how each system counts. GA4 reports in the property&#8217;s time zone, so orders placed near midnight can land on a different day than in the backend. Standard GA4 properties also keep processing data for 24–48 hours, so yesterday&#8217;s numbers may still change. And refunds or cancellations only reduce GA4 revenue if your store sends a refund event.</p>



<h3 class="wp-block-heading">Signs the gap is a tracking problem</h3>



<figure class="wp-block-table"><table><thead><tr><th>What you see</th><th>What it usually means</th></tr></thead><tbody><tr><td>The gap jumps after a theme, checkout, or app release</td><td>The purchase tag or dataLayer changed</td></tr><tr><td>GA4 shows more purchases than the backend</td><td>Purchase events fire twice, often on confirmation page reloads</td></tr><tr><td>The gap sits on one payment method</td><td>Shoppers don&#8217;t return from that provider&#8217;s page</td></tr><tr><td>paypal.com or a bank domain appears as a referral</td><td>Payment domains are missing from the unwanted referrals list</td></tr><tr><td>Unassigned or (not set) share grows month over month</td><td>Tags fire in the wrong order, or UTM values don&#8217;t match channel rules</td></tr><tr><td>Revenue matches but order counts don&#8217;t</td><td>Transaction IDs are missing or reused</td></tr></tbody></table><figcaption class="wp-element-caption">Signs that a GA4 gap is a tracking problem, and what each one usually means</figcaption></figure>



<p class="wp-block-paragraph">If the gap opened right after a replatform, start with tracking before you look at rankings. The traffic-drop triage in our <a href="https://scandiweb.com/blog/seo-migration-checklist/" target="_blank" rel="noopener">SEO migration checklist</a> puts the same check first.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-order-gap-causes.png" alt="Waterfall chart comparing store backend orders with GA4 purchases, with bars for consent, blocked tags, payment redirects and duplicates" class="wp-image-26057" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-order-gap-causes.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-order-gap-causes-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-order-gap-causes-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-order-gap-causes-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-order-gap-causes-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-order-gap-causes-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-order-gap-causes-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">Where orders fall out between your store backend and GA4</figcaption></figure></div>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Watch how the gap moves from month to month. If consent costs you around 15% of orders every month, that&#8217;s your baseline. If the gap jumps from 8% to 20% in one week, look for a broken tag.</p></div>



<h2 class="wp-block-heading">What is unassigned traffic in GA4?</h2>



<p class="wp-block-paragraph">Unassigned traffic in GA4 is traffic that GA4 couldn&#8217;t place in any default channel. Google defines Unassigned as &#8220;the value Analytics uses when there are no other channel rules that match the event data.&#8221; It usually appears when a UTM source or medium doesn&#8217;t match any channel rule, or when events reach GA4 without the session or user details that attribution needs.</p>



<p class="wp-block-paragraph">Direct is a separate channel with its own rule: the source has to be exactly &#8220;(direct)&#8221; with no medium. A session lands in Unassigned when GA4 got a source it couldn&#8217;t match to any rule, or got no usable source at all.</p>



<h3 class="wp-block-heading">Common causes of GA4 unassigned traffic</h3>



<p class="wp-block-paragraph">The most common cause is campaign tagging. GA4 puts a session in Email only when the source or medium is &#8220;email&#8221;, &#8220;e-mail&#8221;, &#8220;e_mail&#8221; or &#8220;e mail&#8221;, so a link tagged utm_medium=newsletter matches no rule and lands in Unassigned. Medium values like &#8220;banner&#8221; or &#8220;influencer&#8221;, or a campaign name typed into the medium field, end up in the same place.</p>



<p class="wp-block-paragraph">The other causes are technical.</p>



<ul class="wp-block-list">
<li>Purchase or lead events sent from your server through the Measurement Protocol, without the browser&#8217;s client ID and session ID, can&#8217;t be joined to a session</li>


<li>Custom events that fire before the Google tag&#8217;s config command can&#8217;t be tied to a session properly, and Google lists this as a cause of both unassigned and (not set) values</li>


<li>A cookie prefix that differs between pages, or a cross-domain linker that changes the client ID, splits one visit into short sessions that GA4 can&#8217;t attribute</li>

</ul>



<h3 class="wp-block-heading">How to fix unassigned traffic in GA4</h3>



<p class="wp-block-paragraph">Start by finding out what is inside the Unassigned row. In Reports, open Acquisition, then Traffic acquisition, and change the primary dimension to Session source / medium while filtering for Unassigned. Each row points to a cause.</p>



<ol class="wp-block-list">
<li>Readable source and medium values, such as &#8220;klaviyo / newsletter&#8221;, mean your UTM naming doesn&#8217;t match GA4&#8217;s rules. Agree a naming convention with the marketing team and fix the links at the source. A custom channel group can relabel these sessions in reports, but the links stay wrong until someone retags them.</li>


<li>&#8220;(not set) / (not set)&#8221; usually means missing session data. Check that the Google tag fires first, on the Initialization trigger in Google Tag Manager, before any event tags.</li>


<li>Unassigned traffic that rises around purchase or lead events usually comes from server-side events. Send the client ID and session ID with every Measurement Protocol event.</li>

</ol>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-acquisition-report.png" alt="GA4 traffic acquisition table with the unassigned channel highlighted and a panel of source and medium values behind it" class="wp-image-26058" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-acquisition-report.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-acquisition-report-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-acquisition-report-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-acquisition-report-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-acquisition-report-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-acquisition-report-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-acquisition-report-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">The source / medium values inside the Unassigned row show what to fix</figcaption></figure></div>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Check the campaign links before you touch the tags. A one-page UTM naming guide for everyone who builds links, agencies included, often clears more of the Unassigned row than a developer can.</p></div>



<h2 class="wp-block-heading">What does (not set) mean in GA4?</h2>



<p class="wp-block-paragraph">(not set) in GA4 means a dimension had no value: GA4 received the data without a piece of information it expected. The same label appears in many reports, and the cause depends on which dimension shows it, so check the dimension before changing any tags.</p>



<ul class="wp-block-list">
<li>In Session source / medium, (not set) means the session has no session_start event, and Google&#8217;s fix is to fire the Google tag on the &#8220;Initialization &#8211; All pages&#8221; trigger in Google Tag Manager</li>


<li>In Landing page, it means the session has no page_view event, which happens when a session starts with another event, such as a purchase sent from a server</li>


<li>In Google Ads dimensions, it means the Ads account isn&#8217;t linked to GA4 or auto-tagging is off</li>


<li>In a newly registered custom parameter, it can show for the first 24 hours</li>

</ul>



<p class="wp-block-paragraph">Consent settings can also cause (not set). Google notes that calling the consent default command again when a shopper changes their choice, instead of the update command, can drop the session_start event. Sending events marked as denied after the shopper has accepted cookies does the same. If your consent banner went live around the time (not set) appeared, check how it sends consent changes. Our guide to <a href="https://scandiweb.com/blog/google-consent-mode-v2/" target="_blank" rel="noopener">Google Consent Mode v2</a> covers the setup itself.</p>



<h2 class="wp-block-heading">Why GA4 is missing transactions</h2>



<p class="wp-block-paragraph">When GA4 shows fewer purchases than your backend, the cause is usually one of three things: the shopper didn&#8217;t come back from the payment page, consent or a blocker stopped the tag, or the purchase event fired wrongly. Check them in that order, because the first one leaves the clearest trace in your reports.</p>



<h3 class="wp-block-heading">Payment redirects and self-referrals</h3>



<p class="wp-block-paragraph">Many payment flows send the shopper away from your store: PayPal, Klarna, bank transfer pages, or a bank&#8217;s 3-D Secure check. Two things can go wrong.</p>



<p class="wp-block-paragraph">The shopper pays but closes the tab before the confirmation page loads, so the purchase event never fires. The order exists in the backend and is missing from GA4.</p>



<p class="wp-block-paragraph">Or the shopper returns, and GA4 treats the payment domain as a new referral. The purchase then gets credited to paypal.com instead of the ad or email that brought the shopper in. To stop that, add every payment and 3-D Secure domain to the unwanted referrals list in the GA4 data stream settings. GA4 allows up to 50 conditions per stream. The list only works going forward, so sessions already credited to those domains stay as they are.</p>



<p class="wp-block-paragraph">For the orders that never reach the confirmation page, the only full fix is to <a href="https://scandiweb.com/blog/server-side-tracking/">send the purchase from your server</a> when the order is created, through the Measurement Protocol, with the shopper&#8217;s client ID and session ID attached. Without those IDs, the purchase shows up in GA4 as unassigned.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-missing-transactions-payment-redirect.png" alt="Diagram of a checkout leaving the store for a payment page and returning, with the points where GA4 loses or misattributes the purchase" class="wp-image-26059" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-missing-transactions-payment-redirect.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-missing-transactions-payment-redirect-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-missing-transactions-payment-redirect-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-missing-transactions-payment-redirect-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-missing-transactions-payment-redirect-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-missing-transactions-payment-redirect-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-missing-transactions-payment-redirect-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">Where payment redirects lose purchases and create self-referrals in GA4</figcaption></figure></div>



<h3 class="wp-block-heading">Consent, ad blockers, and short cookies</h3>



<p class="wp-block-paragraph">Shoppers who decline analytics cookies, or browse with a blocker, don&#8217;t send observed purchases to GA4. That gap is real and permanent. With advanced consent mode, GA4 can model some of the missing behavior, but only once the property passes Google&#8217;s thresholds: at least 1,000 events a day with analytics consent denied for 7 days, and at least 1,000 daily users who accepted on 7 of the last 28 days. Smaller stores often never qualify.</p>



<p class="wp-block-paragraph">Safari also <a href="https://scandiweb.com/blog/ready-for-cookieless-future/">limits cookies set by JavaScript to seven days</a>. A shopper who comes back after two weeks looks like a new user, and the earlier campaign gets no credit for the sale. The order still reaches GA4, but the campaign that won it shows up as Direct.</p>



<p class="wp-block-paragraph">How much consent costs you depends on your markets and your banner. Compare the gap for EU countries with the gap for countries where you don&#8217;t show a banner, and you&#8217;ll see the size of it. The <a href="https://scandiweb.com/blog/google-consent-mode-v2/" target="_blank" rel="noopener">consent mode guide</a> explains the basic and advanced options.</p>



<h3 class="wp-block-heading">Purchase events that fire twice or not at all</h3>



<p class="wp-block-paragraph">GA4 removes duplicate purchases when they share the same transaction ID, but only for the same user and only on web data streams. That covers most confirmation page reloads. These four problems get through anyway.</p>



<ul class="wp-block-list">
<li>An empty transaction ID: Google says GA4 deduplicates every purchase sent with transaction_id=&#8221;&#8221;, so they collapse into one and you undercount</li>


<li>Two tags for one purchase, such as a platform app and a Google Tag Manager tag, where only one of them sends the transaction ID</li>


<li>A cart ID or quote ID sent in place of the order number, which makes different orders look like duplicates</li>


<li>A purchase tag that fires on page load before the order data is in the dataLayer, so it sends no value or no items</li>

</ul>



<p class="wp-block-paragraph">Test this with real orders. Place orders with each payment method in GA4&#8217;s DebugView and compare the transaction ID, value, and currency with the backend. Our guide to <a href="https://scandiweb.com/blog/data-tracking-setup-datalayer/" target="_blank" rel="noopener">dataLayer QA</a> covers the checks for each eCommerce event.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Export a month of GA4 transaction IDs and match them against backend order numbers. The orders that are missing tell you more than the totals do: if most of them used one payment method, you&#8217;ve found the leak.</p></div>



<h2 class="wp-block-heading">How to spot and filter bot traffic in GA4</h2>



<p class="wp-block-paragraph">GA4 removes traffic from known bots and spiders automatically, using Google&#8217;s research and the IAB&#8217;s International Spiders and Bots List. You can&#8217;t turn this off, and you can&#8217;t see how much it removed. Bots that aren&#8217;t on the list still get through, and they often appear as sudden spikes in Direct, Unassigned, or Referral traffic.</p>



<p class="wp-block-paragraph">GA4 bot traffic usually follows a pattern you can see in an exploration.</p>



<ul class="wp-block-list">
<li>A spike in sessions with no matching rise in orders or add-to-carts</li>


<li>Average engagement time close to zero and an engagement rate far below normal</li>


<li>Most sessions from one city, often near a data center, or from one unusual screen resolution</li>


<li>One landing page, or a hostname that isn&#8217;t your store</li>

</ul>



<p class="wp-block-paragraph">Once you&#8217;ve confirmed a spike, you have three options. For reporting, build a segment or a report filter that excludes the pattern, which hides it without deleting anything. For future data, GA4&#8217;s data filters cover internal traffic, developer traffic, and traffic from other hostnames. Those filters are permanent and only apply from the day you activate them, so test them on a copy of the report first. For the bots themselves, block them at your CDN or firewall, before they reach the store.</p>



<p class="wp-block-paragraph">Bots don&#8217;t only inflate traffic. Card-testing bots also create real failed or fraudulent orders in your backend, which makes the GA4 gap look worse than it is. Our guide to <a href="https://scandiweb.com/blog/magento-fraud-prevention/" target="_blank" rel="noopener">Magento fraud prevention</a> explains how to spot card testing.</p>



<h2 class="wp-block-heading">A monthly GA4 reconciliation routine</h2>



<p class="wp-block-paragraph">A monthly reconciliation compares GA4 with your order database on the same terms, so you know your normal gap and spot a new one within weeks. Once the exports are scheduled, it&#8217;s a short monthly job.</p>



<ol class="wp-block-list">
<li>Export last month&#8217;s paid orders from the backend, without test orders, and with the order number, payment method, country, and total</li>


<li>Export GA4 purchases for the same month with transaction ID, payment method if you send it, country, and purchase revenue</li>


<li>Set both exports to the same time zone and currency before comparing</li>


<li>Calculate the capture rate: GA4 purchases divided by backend orders</li>


<li>Match transaction IDs to order numbers and list the missing orders by payment method and country</li>


<li>Check for transaction IDs that appear more than once in GA4</li>


<li>Record the share of Unassigned and (not set) sessions, and note any traffic spikes</li>


<li>Compare everything with the last three months, next to a log of site releases and changes to the consent banner or payment methods</li>

</ol>



<p class="wp-block-paragraph">On Magento, the order export can be scheduled, so step 1 runs on its own. Our guide to <a href="https://scandiweb.com/blog/how-to-export-orders-magento-2/" target="_blank" rel="noopener">exporting orders in Magento 2</a> shows the options.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-monthly-reconciliation-sheet.png" alt="Spreadsheet comparing monthly backend orders with GA4 purchases, capture rate and unassigned share, with one month flagged" class="wp-image-26060" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-monthly-reconciliation-sheet.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-monthly-reconciliation-sheet-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-monthly-reconciliation-sheet-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-monthly-reconciliation-sheet-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-monthly-reconciliation-sheet-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-monthly-reconciliation-sheet-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-monthly-reconciliation-sheet-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">A monthly GA4 reconciliation sheet shows when the gap changes</figcaption></figure></div>



<p class="wp-block-paragraph">When the capture rate moves by more than a few points from its three-month average, treat it as a tracking incident first. Most of the time, the cause is in the release log from the same week.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Add a column for the release log to the reconciliation sheet. When the capture rate drops, the cause is usually listed a row above it, as a theme update or a new checkout app.</p></div>



<h2 class="wp-block-heading">Frequently asked questions about GA4 unassigned traffic</h2>



<h3 class="wp-block-heading">Why is GA4 showing unassigned traffic?</h3>



<p class="wp-block-paragraph">GA4 shows unassigned traffic when it can&#8217;t match a session&#8217;s source and medium to any default channel rule. The most common cause is UTM tagging that doesn&#8217;t follow GA4&#8217;s naming, such as utm_medium=newsletter instead of email. Server-side events without a client ID and session ID, and tags that fire before the Google tag&#8217;s config command, also create unassigned sessions.</p>



<h3 class="wp-block-heading">What does (not set) mean in Google Analytics 4?</h3>



<p class="wp-block-paragraph">(not set) means GA4 received data without a value for that dimension. For session source / medium, the session is missing its session_start event. For landing page, the session has no page_view event. For Google Ads dimensions, the Ads account isn&#8217;t linked. The fix depends on the dimension, so check which report shows it before changing tags.</p>



<h3 class="wp-block-heading">Why doesn&#8217;t GA4 revenue match Shopify or Magento?</h3>



<p class="wp-block-paragraph">GA4 revenue rarely matches Shopify or Magento because the store records every paid order, while GA4 only records purchases it is allowed to see. Declined consent, blocked tags, shoppers who don&#8217;t return from payment pages, time zone differences, and refunds that aren&#8217;t sent to GA4 all widen the gap. A stable gap is normal, and a sudden change points to a tracking fault.</p>



<h3 class="wp-block-heading">Does GA4 filter bot traffic automatically?</h3>



<p class="wp-block-paragraph">Yes, GA4 automatically excludes known bots and spiders using Google&#8217;s research and the IAB International Spiders and Bots List. You can&#8217;t turn it off or see how much traffic it removed. Bots that aren&#8217;t on the list still get through, so spikes with near-zero engagement time need a segment, a data filter, or blocking at your CDN or firewall.</p>



<h3 class="wp-block-heading">How do I stop PayPal from showing as a referral in GA4?</h3>



<p class="wp-block-paragraph">Add paypal.com, and every other payment or 3-D Secure domain your checkout uses, to the unwanted referrals list in your GA4 web data stream settings. GA4 then ignores those domains as traffic sources when shoppers return to your store. The change only applies to new data, so sessions already credited to PayPal stay in past reports.</p>



<h3 class="wp-block-heading">How much difference between GA4 and backend orders is normal?</h3>



<p class="wp-block-paragraph">There is no single normal figure, because it depends on your markets, consent banner, and payment methods. Stores that show a consent banner to EU shoppers can expect a bigger gap than stores without one. What matters is that the gap stays stable from month to month. Track the capture rate each month and investigate when it moves by more than a few points.</p>



<h2 class="wp-block-heading">Tracking problem or real drop: how to tell</h2>



<p class="wp-block-paragraph">GA4 unassigned traffic, (not set) values, and missing orders are almost always tracking questions before they are sales questions. Check the gap against your own baseline, look inside the Unassigned row, follow the missing orders by payment method, and filter out bots before anyone cuts a budget. If the capture rate holds steady while orders fall in both systems, the drop is real, and the conversation can move on to demand and pricing.</p>



<script type="application/ld+json">{"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"@type": "Question", "name": "Why is GA4 showing unassigned traffic?", "acceptedAnswer": {"@type": "Answer", "text": "GA4 shows unassigned traffic when it can't match a session's source and medium to any default channel rule. The most common cause is UTM tagging that doesn't follow GA4's naming, such as utm_medium=newsletter instead of email. Server-side events without a client ID and session ID, and tags that fire before the Google tag's config command, also create unassigned sessions."}}, {"@type": "Question", "name": "What does (not set) mean in Google Analytics 4?", "acceptedAnswer": {"@type": "Answer", "text": "(not set) means GA4 received data without a value for that dimension. For session source / medium, the session is missing its session_start event. For landing page, the session has no page_view event. For Google Ads dimensions, the Ads account isn't linked. The fix depends on the dimension, so check which report shows it before changing tags."}}, {"@type": "Question", "name": "Why doesn't GA4 revenue match Shopify or Magento?", "acceptedAnswer": {"@type": "Answer", "text": "GA4 revenue rarely matches Shopify or Magento because the store records every paid order, while GA4 only records purchases it is allowed to see. Declined consent, blocked tags, shoppers who don't return from payment pages, time zone differences, and refunds that aren't sent to GA4 all widen the gap. A stable gap is normal, and a sudden change points to a tracking fault."}}, {"@type": "Question", "name": "Does GA4 filter bot traffic automatically?", "acceptedAnswer": {"@type": "Answer", "text": "Yes, GA4 automatically excludes known bots and spiders using Google's research and the IAB International Spiders and Bots List. You can't turn it off or see how much traffic it removed. Bots that aren't on the list still get through, so spikes with near-zero engagement time need a segment, a data filter, or blocking at your CDN or firewall."}}, {"@type": "Question", "name": "How do I stop PayPal from showing as a referral in GA4?", "acceptedAnswer": {"@type": "Answer", "text": "Add paypal.com, and every other payment or 3-D Secure domain your checkout uses, to the unwanted referrals list in your GA4 web data stream settings. GA4 then ignores those domains as traffic sources when shoppers return to your store. The change only applies to new data, so sessions already credited to PayPal stay in past reports."}}, {"@type": "Question", "name": "How much difference between GA4 and backend orders is normal?", "acceptedAnswer": {"@type": "Answer", "text": "There is no single normal figure, because it depends on your markets, consent banner, and payment methods. Stores that show a consent banner to EU shoppers can expect a bigger gap than stores without one. What matters is that the gap stays stable from month to month. Track the capture rate each month and investigate when it moves by more than a few points."}}]}</script>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p><style> p.box { border: 1px solid black; padding-top: 30px; padding-right: 30px; padding-bottom: 30px; padding-left: 30px; } </style> <p class="box"><em>Not sure whether your GA4 gap is tracking or real? </em><a href="https://scandiweb.com/contact" target="_blank" rel="noreferrer noopener"><em>Send us your last month&#x27;s numbers</em></a><em>, and we&#x27;ll show you where the orders go missing.</em></p></p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/ga4-unassigned-traffic/">Why GA4 Doesn&#8217;t Match Your Orders: Unassigned Traffic, (not set), and Missing Sales</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Shopify B2B Explained: Features, Plan Limits, and Workarounds</title>
		<link>https://scandiweb.com/blog/shopify-b2b/</link>
		
		<dc:creator><![CDATA[Andres Reitsnik]]></dc:creator>
		<pubDate>Wed, 21 Oct 2026 07:00:00 +0000</pubDate>
				<category><![CDATA[Platform Comparisons]]></category>
		<category><![CDATA[Shopify]]></category>
		<category><![CDATA[adobe commerce]]></category>
		<category><![CDATA[b2b]]></category>
		<category><![CDATA[B2B eCommerce]]></category>
		<category><![CDATA[ecommerce platform]]></category>
		<category><![CDATA[ERP]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[Shopify B2B]]></category>
		<category><![CDATA[Shopify Plus]]></category>
		<guid isPermaLink="false">https://scandiweb.com/blog/?p=26087</guid>

					<description><![CDATA[<p>Shopify B2B now runs on every plan from Basic to Plus. See how catalogs, buyer roles, and net terms work, and where the limits are.</p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/shopify-b2b/">Shopify B2B Explained: Features, Plan Limits, and Workarounds</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="lazyblock-related-Sb2Bx wp-block-lazyblock-related"><div class="related-services">
  <h3>Related Services</h3>
  <ul>
    
    <li>
      <a  href="https://scandiweb.com/shopify-services/development" target=_blank >
        Shopify Development
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.com/shopify-services/integrations" target=_blank >
        Shopify Integrations
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.com/magento-b2b" target=_blank >
        Magento B2B Development
      </a>
    </li>
    
  </ul>
</div>
</div>


<p class="wp-block-paragraph">If your trade customers still email orders that someone retypes into Shopify, or if you&#8217;re trying to work out whether Shopify B2B can carry your price lists and payment terms without a pile of apps, this guide gives you the honest version. We build B2B stores on both Shopify and Magento, so we see where each platform does the job and where the custom work starts.</p>



<p class="wp-block-paragraph">Since April 2026, Shopify B2B is no longer a Plus-only feature. Below, we cover what it includes on each plan, how company accounts, catalogs, and payment terms work, where the limits are, and when a Magento B2B build is the better fit.</p>



<h2 class="wp-block-heading">What is Shopify B2B?</h2>



<p class="wp-block-paragraph">Shopify B2B is the set of wholesale features built into the Shopify admin. It lets you sell to business customers from the same store and checkout as your retail shoppers. Buyers belong to company accounts with their own locations, catalogs with negotiated prices, quantity rules, and payment terms such as Net 30. It runs on the Basic, Grow, Advanced, and Plus plans, with Plus unlocking customer-specific catalogs, deposits, and partial payments.</p>



<p class="wp-block-paragraph">The model has four layers, and almost every limit in this guide comes from how they connect.</p>



<ul class="wp-block-list">
<li><strong>Company:</strong> the business you sell to, such as a retailer or a contractor</li>


<li><strong>Company location:</strong> a branch, store, or warehouse of that company, each with its own addresses, catalogs, payment terms, tax settings, and checkout rules</li>


<li><strong>Customer:</strong> a person who buys on behalf of a location, with a role that controls what they can do</li>


<li><strong>Catalog:</strong> the products and prices a location can see, built from a price list and a product publication</li>

</ul>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-company-location-catalog-model.png" alt="Shopify B2B diagram showing a company with two locations, their buyers and roles, catalogs and Net 30 payment terms" class="wp-image-26082" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-company-location-catalog-model.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-company-location-catalog-model-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-company-location-catalog-model-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-company-location-catalog-model-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-company-location-catalog-model-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-company-location-catalog-model-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-company-location-catalog-model-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">How Shopify B2B links companies, locations, buyers, catalogs, and payment terms</figcaption></figure></div>



<p class="wp-block-paragraph">Most settings belong to the location, which suits buyers with many branches. A hardware chain with 40 stores can give its head office Net 60 and its franchise stores card payment at checkout, all under one company record. You can run B2B inside your retail store (a &#8220;blended&#8221; store) or as a separate store for wholesale only, using Shopify&#8217;s Trade theme, which can hide prices from visitors who aren&#8217;t logged in.</p>



<h2 class="wp-block-heading">Shopify B2B vs Shopify Plus B2B: what each plan includes</h2>



<p class="wp-block-paragraph">On 2 April 2026, Shopify <a href="https://www.shopify.com/news/b2b-for-all" target="_blank" rel="noopener">extended native B2B</a> to the Basic, Grow, and Advanced plans at no extra cost. Before that, Shopify Plus B2B was the only native option, and most guides you&#8217;ll find still say so. Starter and Retail plans don&#8217;t include B2B.</p>



<figure class="wp-block-table"><table><thead><tr><th>Feature</th><th>Basic, Grow</th><th>Advanced</th><th>Plus</th></tr></thead><tbody><tr><td>Companies, locations, buyer roles</td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td></tr><tr><td>B2B catalogs</td><td>Up to 3</td><td>Up to 3</td><td>Unlimited</td></tr><tr><td>Catalogs assigned directly to a company location</td><td>Not included</td><td>Not included</td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td></tr><tr><td>Quantity rules and volume pricing</td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td></tr><tr><td>Net terms, vaulted cards, PO numbers</td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td></tr><tr><td>Draft orders, checkout to draft, reorders</td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td></tr><tr><td>Deposits and partial payments</td><td>Not included</td><td>Not included</td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td></tr><tr><td>Different storefront and checkout content for B2B buyers</td><td>Not included</td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td></tr></tbody></table><figcaption class="wp-element-caption">Shopify B2B features by plan, Basic to Shopify Plus</figcaption></figure>



<p class="wp-block-paragraph">The three-catalog cap applies across all your B2B markets, so on a non-Plus plan you get three price tiers in total, such as &#8220;trade&#8221;, &#8220;distributor&#8221;, and &#8220;key accounts&#8221;. On these plans, catalogs attach to B2B markets, and a single company can&#8217;t get a catalog of its own. If every customer has their own negotiated prices, Shopify B2B without Plus won&#8217;t hold them. The non-Plus catalog features also require the new <a href="https://scandiweb.com/blog/shopify-markets/" target="_blank" rel="noopener">Shopify Markets</a> setup.</p>



<p class="wp-block-paragraph">Plus removes the cap and lets you assign a catalog straight to one company location, which is how customer-specific pricing works on Shopify. For the wider differences in fees, checkout, and expansion stores, see our comparison of <a href="https://scandiweb.com/blog/shopify-vs-shopify-plus/" target="_blank" rel="noopener">Shopify vs Shopify Plus</a>, and check <a href="https://www.shopify.com/plus/pricing" target="_blank" rel="noopener">Shopify&#8217;s pricing page</a> for the current Plus fee.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Your plan depends on whether prices are set per tier or per customer. Up to three tiers fit Grow or Advanced, and per-customer pricing needs Plus.</p></div>



<h2 class="wp-block-heading">Company accounts and buyer roles</h2>



<p class="wp-block-paragraph">Company accounts are where Shopify B2B wholesale starts. You create a company in the admin, invite buyers by email, or let them apply through a request form on your store. Existing retail customers and their order history can be moved into a company, which helps when trade buyers have been ordering through your normal checkout with discount codes.</p>



<h3 class="wp-block-heading">How companies, locations, and buyers fit together</h3>



<p class="wp-block-paragraph">Each company can have up to 10,000 locations and 10,000 customers. Each location can have up to 50 customers with permissions on it. The 50-buyer cap rarely matters for a small wholesaler, but it does for a national account where every site manager orders for the same distribution center.</p>



<p class="wp-block-paragraph">Buyers sign in through Shopify&#8217;s customer accounts, and that login is what shows them wholesale prices, their catalogs, and their payment terms. If you use a corporate login provider, Shopify supports third-party identity providers through OpenID Connect.</p>



<h3 class="wp-block-heading">Buyer roles and order approvals</h3>



<p class="wp-block-paragraph">As of October 2026, Shopify has two B2B buyer roles per location.</p>



<ul class="wp-block-list">
<li><strong>Ordering only:</strong> places orders for the location and sees their own orders, which is the default for a new contact</li>


<li><strong>Location admin:</strong> places orders, sees every order for the location, edits its shipping and billing addresses, reorders, and submits returns</li>

</ul>



<p class="wp-block-paragraph">There are no custom buyer roles. You can&#8217;t create a &#8220;requester&#8221; who builds a cart for a manager to approve, or a finance user who sees invoices without ordering. Shopify&#8217;s developer community has an open feature request for custom roles, and Shopify staff have acknowledged the gap.</p>



<p class="wp-block-paragraph">Approvals work at the merchant level instead. You can set a location to &#8220;Submit all orders as drafts for review&#8221;, and its buyers then see a &#8220;Submit for approval&#8221; button at checkout instead of paying. In this flow your team approves the order. If the buyer&#8217;s own manager has to sign off first, you need an app or custom work.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-checkout-net-30-submit-for-approval.png" alt="Shopify B2B checkout for a company buyer with a PO number, Net 30 payment terms and a Submit for approval button" class="wp-image-26083" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-checkout-net-30-submit-for-approval.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-checkout-net-30-submit-for-approval-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-checkout-net-30-submit-for-approval-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-checkout-net-30-submit-for-approval-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-checkout-net-30-submit-for-approval-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-checkout-net-30-submit-for-approval-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-checkout-net-30-submit-for-approval-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">A Shopify B2B checkout with Net 30 terms and draft review switched on</figcaption></figure></div>



<h2 class="wp-block-heading">How Shopify B2B pricing works: catalogs and price lists</h2>



<p class="wp-block-paragraph">Shopify B2B pricing runs through catalogs. A catalog sets which products a company location can see and what it pays, using either an overall percentage adjustment, such as 30% off retail, or fixed prices per product or variant. Fixed prices override the percentage. When a location has several catalogs that price the same product, the buyer sees the lowest price.</p>



<p class="wp-block-paragraph">In the API, every catalog has one price list and one product publication, and a location can carry up to 25 catalogs. A buyer who qualifies for a &#8220;distributor&#8221; catalog and a &#8220;spring promotion&#8221; catalog gets whichever price is lower. If your contract says a key account pays a fixed net price that never stacks with promotions, Shopify won&#8217;t enforce that by itself. You have to design the catalogs so the overlap never happens.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-catalog-price-resolution-lowest-price.png" alt="Diagram of a product priced in three Shopify B2B catalogs, with the lowest price of $70 shown to the buyer" class="wp-image-26084" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-catalog-price-resolution-lowest-price.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-catalog-price-resolution-lowest-price-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-catalog-price-resolution-lowest-price-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-catalog-price-resolution-lowest-price-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-catalog-price-resolution-lowest-price-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-catalog-price-resolution-lowest-price-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-catalog-price-resolution-lowest-price-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">When catalogs overlap, Shopify B2B shows the buyer the lowest price</figcaption></figure></div>



<p class="wp-block-paragraph">The other pricing tools stack on top of catalogs.</p>



<ul class="wp-block-list">
<li><strong>Quantity rules:</strong> a minimum, maximum, or increment per variant, such as cases of 12</li>


<li><strong>Volume pricing:</strong> up to 10 price breaks per product within a catalog, such as $8 each from 100 units</li>


<li><strong>B2B discounts:</strong> automatic discounts or codes limited to B2B markets, and custom discount logic through Shopify Functions</li>


<li><strong>Price lists by CSV:</strong> fixed prices import and export per catalog, which is how most teams load prices from an ERP before an integration exists</li>

</ul>



<p class="wp-block-paragraph">Most wholesalers keep their prices in an ERP. Once you pass a few thousand fixed prices that change every month, the CSV routine becomes a weekly chore, and that&#8217;s the point where teams connect the ERP to Shopify&#8217;s B2B APIs. Our <a href="https://scandiweb.com/shopify-services/integrations" target="_blank" rel="noopener">Shopify integrations</a> work usually starts with exactly that price sync.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Every B2B price on Shopify comes from a catalog, and when catalogs overlap the lowest price wins. Contract pricing works when you design the catalogs so they never overlap on the same product.</p></div>



<h2 class="wp-block-heading">Payment terms, net terms, and draft orders</h2>



<p class="wp-block-paragraph">Shopify B2B payment terms are set per company location: due immediately, Net 7, 15, 30, 45, 60, or 90, or due on fulfillment. Terms start on the day the order is placed. Draft orders can also use a fixed due date. Buyers can pay early from their customer account, and unpaid orders turn overdue when the terms run out.</p>



<h3 class="wp-block-heading">What the payment settings do and don&#8217;t do</h3>



<p class="wp-block-paragraph">Three details catch finance teams out.</p>



<ul class="wp-block-list">
<li><strong>Nothing is charged automatically when terms expire.</strong> If a buyer has a card saved on file, your team still charges it manually in the admin</li>


<li><strong>There&#8217;s no native credit limit.</strong> Shopify doesn&#8217;t stop a buyer on Net 30 from placing a new order while an old one is overdue, so credit control stays in your ERP, an app, or a manual check</li>


<li><strong>Deposits are Plus only.</strong> A percentage deposit at checkout, or on a draft order, needs Shopify Plus, and it&#8217;s calculated on the subtotal only</li>

</ul>



<p class="wp-block-paragraph">Payment reminders on the due date run through Shopify Flow. ACH payments are available in the US. If terms should change by order value or cart contents, you can build that with the Payment Customization Function or a third-party app.</p>



<h3 class="wp-block-heading">Shopify draft orders as quotes</h3>



<p class="wp-block-paragraph">Shopify has no quote-request button. Draft orders do that job. A sales rep creates a draft for a company location, sets a custom price on any line, locks the prices, and sends it as an invoice. The buyer pays by card or accepts the terms, and the draft becomes an order. Price locks keep the quoted prices fixed even if the catalog changes, though they don&#8217;t work on product bundles.</p>



<p class="wp-block-paragraph">The &#8220;checkout to draft&#8221; setting from the roles section turns any cart into a draft for review, which covers &#8220;send us your order and we&#8217;ll confirm prices and freight&#8221;. It doesn&#8217;t cover back-and-forth negotiation in the storefront, where a buyer asks for a better price on 500 units and your team counters. That workflow needs a quote app or custom development on top of draft orders.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Net terms on Shopify set a due date and nothing more. If your finance team needs credit limits and order holds, decide which system enforces them before launch.</p></div>



<h2 class="wp-block-heading">Where Shopify B2B runs out</h2>



<p class="wp-block-paragraph">The native feature set covers standard wholesale well: tiered prices, case quantities, net terms, reorders, and a clean checkout. It runs out at the edges that make B2B different from retail, mainly per-customer pricing at scale, negotiation, buyer-side approvals, credit control, and ERP-owned catalogs.</p>



<figure class="wp-block-table"><table><thead><tr><th>Limit</th><th>What happens</th><th>Fix</th></tr></thead><tbody><tr><td>3 catalogs on Basic, Grow, and Advanced</td><td>No room for per-customer price lists</td><td>Upgrade to Plus, or group customers into 3 tiers</td></tr><tr><td>Lowest price wins across catalogs</td><td>Promotions undercut contract prices</td><td>Design non-overlapping catalogs, or move logic to Shopify Functions</td></tr><tr><td>No quote negotiation</td><td>Buyers email for prices on large orders</td><td>Draft orders plus a quote app or admin extension</td></tr><tr><td>Two buyer roles only</td><td>No requester, approver, or finance-only user</td><td>B2B portal app or custom customer account extension</td></tr><tr><td>No credit limits</td><td>Overdue buyers keep ordering</td><td>ERP check through an app or Shopify Flow</td></tr><tr><td>ERP owns prices, stock, and customers</td><td>Manual CSV updates and mismatched prices</td><td>Middleware or custom integration to the B2B APIs</td></tr><tr><td>Shopify Scripts retired on 30 June 2026</td><td>Old wholesale pricing scripts stopped running</td><td>Rebuild them as Shopify Functions</td></tr></tbody></table><figcaption class="wp-element-caption">Shopify B2B limits and the usual workarounds</figcaption></figure>



<p class="wp-block-paragraph">Two of these come up in nearly every B2B project on Shopify that we scope. The first is per-customer pricing on a non-Plus plan, which usually decides the plan. The second is the ERP. If customer accounts, price agreements, and stock live in an ERP, Shopify becomes the ordering layer on top of it, and the integration is the real project.</p>



<p class="wp-block-paragraph">The old Shopify Plus Wholesale channel closed on 30 April 2024, so any setup guide that still mentions &#8220;the wholesale channel&#8221; describes a retired product.</p>



<h2 class="wp-block-heading">How teams fill the gaps: apps, Functions, and ERP integration</h2>



<p class="wp-block-paragraph">Most B2B stores on Shopify close the gaps with a mix of four kinds of tools. The right mix depends on how much of your B2B logic you want inside Shopify.</p>



<ol class="wp-block-list">
<li><strong>Shopify B2B apps</strong> add quotes, credit limits, buyer portals, and registration flows. They&#8217;re the fastest route, but each one adds a monthly fee and its own data model, so check how they handle catalogs and company locations before you install two that overlap</li>


<li><strong>Shopify Functions</strong> replace the retired Scripts for discounts, payment methods, delivery options, and cart validation. Use them for rules like &#8220;hide Net 60 for orders under $2,000&#8221; or &#8220;block checkout below the case quantity&#8221;</li>


<li><strong>Checkout and customer account extensions</strong> change what buyers see, such as a custom approval screen or an account page that shows open invoices from your ERP</li>


<li><strong>ERP integration</strong> syncs companies, locations, catalogs, prices, stock, and orders through Shopify&#8217;s B2B APIs, either with a connector or a custom service. Our guide to <a href="https://scandiweb.com/blog/ecommerce-erp-integration/" target="_blank" rel="noopener">eCommerce ERP integration</a> covers how to scope it</li>

</ol>



<p class="wp-block-paragraph">Our advice is to keep the source of truth where it already is, usually the ERP, and let Shopify display prices and collect orders based on what the ERP decides. Teams that rebuild ERP pricing logic in Shopify apps end up maintaining it twice. When the fill list grows past a few apps and a pricing sync, it&#8217;s worth scoping it as a <a href="https://scandiweb.com/shopify-services/development" target="_blank" rel="noopener">Shopify development</a> project before launch rather than adding pieces after it.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Two apps and a price sync is a normal B2B setup on Shopify. Six apps plus custom approval logic usually means the platform choice deserves a second look.</p></div>



<h2 class="wp-block-heading">Shopify B2B vs Magento B2B: who should choose which</h2>



<p class="wp-block-paragraph">Choose Shopify B2B when your wholesale model is close to standard: tiered or customer-specific prices, case quantities, net terms, and buyers who mostly reorder. Choose Magento, in practice Adobe Commerce with its B2B module, when buyers negotiate quotes in the storefront, companies need custom roles and approval chains, or you need company credit lines inside the platform.</p>



<figure class="wp-block-table"><table><thead><tr><th>Capability</th><th>Shopify B2B</th><th>Adobe Commerce B2B</th></tr></thead><tbody><tr><td>Company accounts</td><td>Companies with locations</td><td>Companies with divisions and parent-child hierarchy</td></tr><tr><td>Buyer roles</td><td>2 fixed roles</td><td>Custom roles and permissions set by the company admin</td></tr><tr><td>Customer-specific prices</td><td>Plus, catalog per location</td><td>Shared catalogs per company</td></tr><tr><td>Quotes</td><td>Draft orders, quote apps</td><td>Native negotiable quotes</td></tr><tr><td>Purchase approvals</td><td>Merchant draft review</td><td>Purchase orders with approval rules</td></tr><tr><td>Credit limits</td><td>Not native</td><td>Company credit with Pay on Account</td></tr><tr><td>Reorder tools</td><td>Reorders, quick order list</td><td>Requisition lists, quick order by SKU</td></tr><tr><td>Hosting and upgrades</td><td>Managed by Shopify</td><td>Your team or partner, or Adobe&#8217;s cloud options</td></tr></tbody></table><figcaption class="wp-element-caption">Shopify B2B vs Adobe Commerce B2B compared</figcaption></figure>



<p class="wp-block-paragraph">Adobe Commerce covers more of the B2B workflow natively, which our overview of <a href="https://scandiweb.com/blog/top-9-adobe-commerce-b2b-features/" target="_blank" rel="noopener">Adobe Commerce B2B features</a> walks through feature by feature. You pay for that in license, <a href="https://scandiweb.com/blog/website-maintenance-cost/" target="_blank" rel="noopener">hosting, and development cost</a>. Shopify gives you less B2B logic but takes hosting, security patches, and checkout upkeep off your team.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-vs-magento-b2b-capabilities.png" alt="Comparison grid of Shopify B2B and Adobe Commerce B2B features with native, app, and custom markers for each" class="wp-image-26085" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-vs-magento-b2b-capabilities.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-vs-magento-b2b-capabilities-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-vs-magento-b2b-capabilities-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-vs-magento-b2b-capabilities-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-vs-magento-b2b-capabilities-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-vs-magento-b2b-capabilities-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-vs-magento-b2b-capabilities-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">Shopify B2B vs Magento B2B: which features are native on each platform</figcaption></figure></div>



<p class="wp-block-paragraph"><strong>Choose Shopify B2B if</strong></p>



<ul class="wp-block-list">
<li>You sell to a few price tiers, or to named accounts you can fit into Plus catalogs</li>


<li>Your buyers mostly reorder known products at agreed prices</li>


<li>You run retail and wholesale from the same catalog and want one admin</li>


<li>Credit control and invoicing already happen in your ERP or accounting system</li>


<li>You&#8217;d rather not run hosting, <a href="https://scandiweb.com/blog/magento-end-of-life/" target="_blank" rel="noopener">upgrades, and security patches</a> yourself</li>

</ul>



<p class="wp-block-paragraph"><strong>Choose Magento B2B if</strong></p>



<ul class="wp-block-list">
<li>Your buyers negotiate prices on large orders in the storefront</li>


<li>Customer companies need their own roles, budgets, and approval chains</li>


<li>You extend credit lines and want them enforced at checkout</li>


<li>Your catalog, pricing, or ordering flow depends on custom logic your competitors don&#8217;t have</li>


<li>You already run Magento with deep ERP integration that works</li>

</ul>



<p class="wp-block-paragraph">If you&#8217;re on Magento today and weighing the move, our guide to <a href="https://scandiweb.com/blog/magento-to-shopify-migration/" target="_blank" rel="noopener">Magento to Shopify migration</a> covers costs, data, and how to decide. If the answer is to stay, our <a href="https://scandiweb.com/magento-b2b" target="_blank" rel="noopener">Magento B2B development</a> team builds and extends Adobe Commerce B2B stores.</p>



<h2 class="wp-block-heading">Frequently asked questions about Shopify B2B</h2>



<h3 class="wp-block-heading">Is Shopify B2B only available on Shopify Plus?</h3>



<p class="wp-block-paragraph">No. Since 2 April 2026, it&#8217;s available on the Basic, Grow, Advanced, and Plus plans. Non-Plus plans get company accounts, up to three B2B catalogs, quantity rules, volume pricing, and payment terms. Plus adds unlimited catalogs, catalogs assigned to individual company locations, deposits, and partial payments. Starter and Retail plans don&#8217;t include B2B.</p>



<h3 class="wp-block-heading">How much does Shopify B2B cost?</h3>



<p class="wp-block-paragraph">There&#8217;s no separate fee for B2B. The features are included in your Shopify plan, from Basic up to Plus, and Shopify&#8217;s pricing page lists the current plan fees. The real costs are usually elsewhere: B2B apps for quotes or credit limits, an ERP integration, and Plus itself if you need customer-specific pricing.</p>



<h3 class="wp-block-heading">Can Shopify B2B handle quotes?</h3>



<p class="wp-block-paragraph">Partly. Shopify has no native quote-request button, but draft orders work as quotes. Your team sets custom line prices, locks them, and sends the draft as an invoice the buyer can pay or accept on terms. For buyers to request and negotiate quotes in the storefront, you need a quote app or custom development.</p>



<h3 class="wp-block-heading">Can you sell B2B and B2C on one Shopify store?</h3>



<p class="wp-block-paragraph">Yes. A blended store serves retail shoppers and logged-in business buyers from the same storefront, catalog, and checkout. B2B buyers see their own catalogs, prices, and payment terms after they log in. On Advanced and Plus, you can also show different content and checkout options to B2B buyers.</p>



<h3 class="wp-block-heading">Does Shopify B2B support credit limits?</h3>



<p class="wp-block-paragraph">No, not natively. Shopify supports net payment terms, but it doesn&#8217;t track a credit limit or block new orders when a buyer has overdue invoices. Merchants usually handle credit control in their ERP or accounting system and connect it to Shopify, or add a B2B app that checks credit before checkout.</p>



<h3 class="wp-block-heading">Can Shopify B2B connect to an ERP?</h3>



<p class="wp-block-paragraph">Yes. Shopify&#8217;s B2B APIs let an ERP create and update companies, locations, catalogs, fixed prices, payment terms, and orders. Most wholesalers sync prices and stock from the ERP into Shopify and send orders back. You can use a ready-made connector for common ERPs or build a custom integration for ERPs with unusual pricing logic.</p>



<h2 class="wp-block-heading">Is Shopify B2B enough for your wholesale business?</h2>



<p class="wp-block-paragraph">Shopify B2B is now a real option on every plan from Basic to Plus, and for tiered pricing, case quantities, and net terms, it does the job without much custom work. Check three things before you commit: whether your prices are set per tier or per customer, where credit control lives, and how much of your ERP logic has to reach the storefront. The answers tell you which plan you need, which apps you&#8217;ll add, or whether Magento B2B or another <a href="https://scandiweb.com/blog/shopify-alternatives-buyers-guide/" target="_blank" rel="noopener">Shopify alternative</a> is the better fit. For what&#8217;s changing in wholesale buying more widely, see our <a href="https://scandiweb.com/blog/b2b-ecommerce-trends/" target="_blank" rel="noopener">B2B eCommerce trends</a>, and once the store is live, our <a href="https://scandiweb.com/blog/b2b-seo/" target="_blank" rel="noopener">B2B SEO guide</a> covers how buyers find it.</p>



<script type="application/ld+json">{"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"@type": "Question", "name": "Is Shopify B2B only available on Shopify Plus?", "acceptedAnswer": {"@type": "Answer", "text": "No. Since 2 April 2026, it's available on the Basic, Grow, Advanced, and Plus plans. Non-Plus plans get company accounts, up to three B2B catalogs, quantity rules, volume pricing, and payment terms. Plus adds unlimited catalogs, catalogs assigned to individual company locations, deposits, and partial payments. Starter and Retail plans don't include B2B."}}, {"@type": "Question", "name": "How much does Shopify B2B cost?", "acceptedAnswer": {"@type": "Answer", "text": "There's no separate fee for B2B. The features are included in your Shopify plan, from Basic up to Plus, and Shopify's pricing page lists the current plan fees. The real costs are usually elsewhere: B2B apps for quotes or credit limits, an ERP integration, and Plus itself if you need customer-specific pricing."}}, {"@type": "Question", "name": "Can Shopify B2B handle quotes?", "acceptedAnswer": {"@type": "Answer", "text": "Partly. Shopify has no native quote-request button, but draft orders work as quotes. Your team sets custom line prices, locks them, and sends the draft as an invoice the buyer can pay or accept on terms. For buyers to request and negotiate quotes in the storefront, you need a quote app or custom development."}}, {"@type": "Question", "name": "Can you sell B2B and B2C on one Shopify store?", "acceptedAnswer": {"@type": "Answer", "text": "Yes. A blended store serves retail shoppers and logged-in business buyers from the same storefront, catalog, and checkout. B2B buyers see their own catalogs, prices, and payment terms after they log in. On Advanced and Plus, you can also show different content and checkout options to B2B buyers."}}, {"@type": "Question", "name": "Does Shopify B2B support credit limits?", "acceptedAnswer": {"@type": "Answer", "text": "No, not natively. Shopify supports net payment terms, but it doesn't track a credit limit or block new orders when a buyer has overdue invoices. Merchants usually handle credit control in their ERP or accounting system and connect it to Shopify, or add a B2B app that checks credit before checkout."}}, {"@type": "Question", "name": "Can Shopify B2B connect to an ERP?", "acceptedAnswer": {"@type": "Answer", "text": "Yes. Shopify's B2B APIs let an ERP create and update companies, locations, catalogs, fixed prices, payment terms, and orders. Most wholesalers sync prices and stock from the ERP into Shopify and send orders back. You can use a ready-made connector for common ERPs or build a custom integration for ERPs with unusual pricing logic."}}]}</script>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p><style> p.box { border: 1px solid black; padding-top: 30px; padding-right: 30px; padding-bottom: 30px; padding-left: 30px; } </style> <p class="box"><em>Not sure whether your price lists and terms fit Shopify B2B or need Magento? </em><a href="https://scandiweb.com/contact" target="_blank" rel="noreferrer noopener"><em>Send us how your wholesale pricing works today</em></a><em>, and we&#x27;ll tell you what each platform would need to run it.</em></p></p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/shopify-b2b/">Shopify B2B Explained: Features, Plan Limits, and Workarounds</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Shopify Markets vs Expansion Stores: How to Sell in Multiple Countries</title>
		<link>https://scandiweb.com/blog/shopify-markets/</link>
		
		<dc:creator><![CDATA[Andres Reitsnik]]></dc:creator>
		<pubDate>Tue, 20 Oct 2026 16:00:00 +0000</pubDate>
				<category><![CDATA[Shopify]]></category>
		<category><![CDATA[hreflang]]></category>
		<category><![CDATA[International]]></category>
		<category><![CDATA[international seo]]></category>
		<category><![CDATA[localization]]></category>
		<category><![CDATA[market expansion]]></category>
		<category><![CDATA[multi-store]]></category>
		<category><![CDATA[Shopify Markets]]></category>
		<category><![CDATA[Shopify Plus]]></category>
		<guid isPermaLink="false">https://scandiweb.com/blog/?p=26113</guid>

					<description><![CDATA[<p>Shopify Markets or a store per country? See what Markets handles, when expansion stores win, and how currencies, VAT, and hreflang work.</p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/shopify-markets/">Shopify Markets vs Expansion Stores: How to Sell in Multiple Countries</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="lazyblock-related-ShMk7 wp-block-lazyblock-related"><div class="related-services">
  <h3>Related Services</h3>
  <ul>
    
    <li>
      <a  href="https://scandiweb.com/shopify-services/consulting" target=_blank >
        Shopify consulting
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.com/shopify-services/shopify-plus" target=_blank >
        Shopify Plus development
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.com/shopify-services/seo" target=_blank >
        Shopify SEO
      </a>
    </li>
    
  </ul>
</div>
</div>


<p class="wp-block-paragraph">If you&#8217;re <a href="https://scandiweb.com/blog/ecommerce-market-research-guide/">adding a new country</a> and someone on the team has asked whether that means a new Shopify store, or if you already run three country stores and wonder whether Shopify Markets could fold them back into one, this guide gives you the rules to decide. Markets lets one store sell to many countries with local currencies, prices, languages, domains, and duties. Expansion stores are separate Shopify Plus stores under one organization, each with its own admin, catalog, and checkout.</p>



<p class="wp-block-paragraph">Most brands should start with Markets. The ones that shouldn&#8217;t usually find out from their ERP or their catalog, months before the storefront shows a problem. Shopify updates Markets several times a year, so the plan limits below are the ones in Shopify&#8217;s help center in October 2026.</p>



<h2 class="wp-block-heading">Shopify Markets or expansion stores: the short answer</h2>



<p class="wp-block-paragraph">Use Shopify Markets when every country sells mostly the same products, run by one team, and the differences are currency, price, language, domain, and duties. Markets handles all of those inside one store. Use expansion stores when a country needs its own catalog structure, its own apps or checkout, its own ERP company, or a team that works apart from the others. Expansion stores need Shopify Plus, which includes nine of them.</p>



<p class="wp-block-paragraph">In the client conversations we track, two questions come up again and again: &#8220;Markets or a separate store per country?&#8221; and &#8220;How do we handle currencies, VAT, and languages?&#8221; The answer to the second one usually settles the first. Once you know what Markets can localize inside one store, whatever is left over is the case for a second store.</p>



<h2 class="wp-block-heading">What Shopify Markets handles inside one store</h2>



<p class="wp-block-paragraph">Shopify Markets groups customers by country or region, B2B company, retail location, or sales channel, and changes what each group sees. Inside one store you can set local currencies, catalogs with adjusted or fixed prices, languages, a domain or subfolder, and how duties and taxes appear at checkout. Creating regional markets is free on every Shopify plan. A few settings, such as a different theme per market, need the Advanced or Plus plan.</p>



<p class="wp-block-paragraph">Each market has conditions (who it applies to) and customizations (what they see). A submarket, such as Germany inside a Europe market, inherits its parent&#8217;s settings and can override them. Shoppers who match no market get your backup region, which is your store&#8217;s home country by default, according to Shopify&#8217;s <a href="https://help.shopify.com/en/manual/markets/getting-started/overview" target="_blank" rel="noopener">Markets overview</a>.</p>



<figure class="wp-block-table"><table><thead><tr><th>Markets setting</th><th>What it changes</th><th>Plan notes</th></tr></thead><tbody><tr><td>Currency</td><td>Local prices with automatic or manual exchange rates and optional rounding</td><td>Needs Shopify Payments or Adyen to charge in local currency</td></tr><tr><td>Catalogs</td><td>Which products a market can buy, percentage price changes, fixed prices per product</td><td>All plans. B2B: 3 active catalogs on Basic, Grow, and Advanced</td></tr><tr><td>Languages</td><td>Translated storefront and checkout</td><td>Up to 20 languages, 30 on Plus</td></tr><tr><td>Domains</td><td>Subfolder, subdomain, or separate domain per market</td><td>All plans</td></tr><tr><td>Duties and taxes</td><td>Tax-inclusive prices, duties at checkout or included in the price</td><td>Transaction fee when duties are calculated</td></tr><tr><td>Theme and checkout</td><td>Theme content and checkout pages per market</td><td>Advanced and Plus. Checkout blocks per market on Plus only</td></tr><tr><td>Business entities</td><td>Which legal entity takes payment in a market</td><td>Plus only, with several Shopify Payments accounts</td></tr></tbody></table><figcaption class="wp-element-caption">What Shopify Markets can change per market, with plan notes</figcaption></figure>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-admin-market-list.png" alt="Shopify Markets admin list showing Europe, UK, US and B2B markets with currencies, subfolders and languages per market" class="wp-image-26108" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-admin-market-list.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-admin-market-list-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-admin-market-list-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-admin-market-list-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-admin-market-list-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-admin-market-list-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-admin-market-list-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">One Shopify store with Markets: each market gets its own currency, URL, and language</figcaption></figure></div>



<h3 class="wp-block-heading">Currencies and prices across markets</h3>



<p class="wp-block-paragraph">To charge shoppers in their own currency, your store has to use <a href="https://scandiweb.com/blog/adyen-vs-stripe/">Shopify Payments or Adyen</a>. With any other payment provider, customers pay in your store currency. Automatic exchange rates follow the market rate and build Shopify&#8217;s conversion fee, 1.5% or 2% depending on where your store is based, into the price the shopper sees. Manual rates hold a price in place and take the fee from your payouts instead. Rounding turns a converted €9.73 into €10.00, per Shopify&#8217;s <a href="https://help.shopify.com/en/manual/markets/customizations/local-currencies" target="_blank" rel="noopener">currency guide</a>.</p>



<p class="wp-block-paragraph">Exchange rates don&#8217;t set your price positioning. Catalogs do. A catalog decides which products a market can buy and lets you raise or lower every price in it by a percentage. You can then set a fixed price on individual products, which is how a €49 price in Germany and a £45 price in the UK stay put when the exchange rate moves.</p>



<h3 class="wp-block-heading">Duties, taxes, and VAT</h3>



<p class="wp-block-paragraph">Each market has its own tax display. Shopify can show tax-inclusive prices where shoppers expect them, such as the EU and Australia, and add tax at checkout in the US and Canada. Before Shopify collects VAT or sales tax for a market, you need to add your tax registration for the regions in it. Markets calculates and displays the tax, and the registration and filing stay with you.</p>



<p class="wp-block-paragraph">Duties are also set per market. You can add them at checkout as a line item, or include them in your prices and absorb them. Accurate estimates need an HS code and a country of origin on every product. Calculating duties at checkout carries a transaction fee: temporarily 0.5% since February 2, 2025, against a standard 0.85% when Shopify Payments is your main gateway and 1.5% with other providers, according to Shopify&#8217;s <a href="https://help.shopify.com/en/manual/international/duties-and-import-taxes/charging-duties" target="_blank" rel="noopener">duties guide</a>.</p>



<h3 class="wp-block-heading">Domains, subfolders, and languages</h3>



<p class="wp-block-paragraph">Every market can run on a subfolder (yourstore.com/de/), a subdomain (de.yourstore.com), or its own domain (yourstore.de). You can sell in up to 20 languages on Basic, Grow, and Advanced, and up to 30 on Plus. Shopify&#8217;s Translate &amp; Adapt app machine-translates up to two languages for free and lets you change copy per market, for example British and American spelling.</p>



<p class="wp-block-paragraph">Shopify&#8217;s <a href="https://help.shopify.com/en/manual/international/languages/requirements" target="_blank" rel="noopener">language requirements</a> list two limits that catch teams out. Product, article, and blog tags can&#8217;t be translated. URL slugs can be translated per language but can&#8217;t be customized per market, so Germany and Austria on German share the same product URLs.</p>



<h3 class="wp-block-heading">B2B markets</h3>



<p class="wp-block-paragraph">B2B markets group company locations, so a wholesale buyer in France can see a different catalog from a retail shopper in France. On Basic, Grow, and Advanced you can assign up to 3 active catalogs across all your B2B markets, and Plus removes that cap. If your wholesale pricing runs on dozens of <a href="https://scandiweb.com/blog/shopify-b2b/">customer-specific price lists</a>, that cap decides your plan before it decides your store setup.</p>



<h3 class="wp-block-heading">What Shopify Managed Markets adds</h3>



<p class="wp-block-paragraph">Managed Markets, the product formerly called Markets Pro, makes Global-e the merchant of record in the countries you turn on. As the legal seller, Global-e collects and pays duties and taxes, so you don&#8217;t need a tax registration in each country, and it adds local payment methods. It&#8217;s open to merchants based in the continental US and to certain stores in Canada and the UK.</p>



<p class="wp-block-paragraph">Since August 24, 2026, Managed Markets no longer supports delivered duty unpaid (DDU) in countries where it supports delivered duty paid (DDP), according to Shopify&#8217;s <a href="https://changelog.shopify.com/posts/managed-markets-is-ending-delivered-duty-unpaid-ddu-support" target="_blank" rel="noopener">changelog</a>. Shoppers in those countries now pay duties at checkout instead of to the carrier. Shopify&#8217;s own pages quote different Managed Markets fees, so confirm the current rate with Shopify before you model margins.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Most of what teams picture as a reason for a second store, such as euro prices, German copy, a .de domain, or VAT-inclusive pricing, is a market setting. Test your plan against Markets before anyone budgets a second theme build.</p></div>



<h2 class="wp-block-heading">Where one store with Markets stops working</h2>



<p class="wp-block-paragraph">One store with Markets stops working when countries need different things behind the storefront. The usual breaking points are regional catalogs with a different structure, apps or checkout logic that must differ by country, an ERP that runs each country as a separate company, and regional teams that need their own admin. Differences in price, language, and currency alone rarely justify a second store.</p>



<p class="wp-block-paragraph">Start with the catalog. Markets can hide products and change prices, but every market shares the same products, variants, options, and metafields. If your EU range uses different variant structures, product data, or compliance fields than your US range, one store forces a single catalog model on both ranges.</p>



<p class="wp-block-paragraph">Apps and checkout come next. Apps are installed once per store, so if the US needs <a href="https://scandiweb.com/blog/ecommerce-subscription-integration/">a subscription app</a> and Europe needs a different invoicing app, one store means running both for everyone and configuring around them. A theme customized per market needs Advanced or Plus, and checkout blocks per market need Plus.</p>



<p class="wp-block-paragraph">The back office is where most decisions are made. Many ERP setups run one company per country, and each company expects its own sales channel. On Plus, <a href="https://help.shopify.com/en/manual/markets/customizations/business-entities" target="_blank" rel="noopener">business entities</a> let a different legal entity take payment in each market from one store, which solves payouts. Orders, stock, and invoices still have to land in the right ERP company, and that mapping is integration work in either setup. Our <a href="https://scandiweb.com/blog/ecommerce-erp-integration/" target="_blank" rel="noopener">ERP integration guide</a> covers how to scope it.</p>



<p class="wp-block-paragraph">Teams are the last test. Shopify has no per-market staff permissions, so anyone who can edit markets can edit all of them. A regional team that should only touch its own prices and content has no clean boundary in a single store.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Look at the back office before the storefront. If every country&#8217;s orders can go into one ERP company and one team runs merchandising, one store with Markets will cost less to run for years.</p></div>



<h2 class="wp-block-heading">When Shopify expansion stores make sense</h2>



<p class="wp-block-paragraph">Shopify expansion stores make sense when a country or channel needs its own catalog, apps, checkout, or team, and running another store costs less than bending one store around that need. On Shopify Plus, an organization can run one main store and nine expansion stores with no extra platform fee. Shopify pre-approves international stores, B2B wholesale stores, and physical retail stores as expansion store types.</p>



<p class="wp-block-paragraph">Each expansion store has its own settings, configuration, and storefront, while users and billing stay at the organization level. When you create one, you can import data such as products from another store in your organization. According to Shopify&#8217;s <a href="https://help.shopify.com/en/manual/organization-settings/expansion-stores" target="_blank" rel="noopener">expansion store guide</a>, that import is only possible at creation. After that you manage each store&#8217;s data yourself, which in practice means a PIM, an ERP, or a sync app.</p>



<p class="wp-block-paragraph">Shopify Plus costs $2,300 per month on a three-year term or $2,500 on a one-year term, and every store beyond the ten included adds $300 per month, per Shopify&#8217;s <a href="https://www.shopify.com/plus/pricing" target="_blank" rel="noopener">Plus pricing</a>. Our <a href="https://scandiweb.com/blog/shopify-vs-shopify-plus/" target="_blank" rel="noopener">Shopify vs Shopify Plus guide</a> covers what else changes when you upgrade.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-vs-expansion-stores-architecture.png" alt="Diagram comparing one Shopify store with three markets and one ERP link against a Plus organization with three expansion stores" class="wp-image-26109" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-vs-expansion-stores-architecture.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-vs-expansion-stores-architecture-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-vs-expansion-stores-architecture-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-vs-expansion-stores-architecture-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-vs-expansion-stores-architecture-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-vs-expansion-stores-architecture-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-vs-expansion-stores-architecture-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">Shopify Markets vs expansion stores: one store with markets, or one store per region</figcaption></figure></div>



<h3 class="wp-block-heading">What running multiple Shopify stores costs</h3>



<p class="wp-block-paragraph">The platform fee is the small part. Every store adds its own app subscriptions, theme releases, product and price updates, <a href="https://scandiweb.com/blog/server-side-tracking/">tracking setup</a>, and checks before each campaign. A change that takes one release on a store with Markets takes one per store, unless your theme is built once and deployed to all of them.</p>



<p class="wp-block-paragraph">Search adds a cost too. Each store on its own domain builds its own authority, and you add the hreflang between stores yourself, as the SEO section below explains.</p>



<h3 class="wp-block-heading">Can you have multiple Shopify stores without Plus?</h3>



<p class="wp-block-paragraph">Yes, but each store needs its own subscription. Outside Plus, store owners can group stores into an organization for shared management. Plus stores use expansion stores under one contract instead, according to Shopify&#8217;s <a href="https://help.shopify.com/en/manual/your-account/manage-orgs-and-stores/manage-orgs/group-store" target="_blank" rel="noopener">store grouping guide</a>.</p>



<figure class="wp-block-table"><table><thead><tr><th>Area</th><th>One store with Markets</th><th>Expansion stores</th></tr></thead><tbody><tr><td>Plan</td><td>Any plan, some settings on Advanced or Plus</td><td>Shopify Plus, 9 included</td></tr><tr><td>Catalog</td><td>One product set, availability and price per market</td><td>A separate catalog per store</td></tr><tr><td>Apps and checkout</td><td>One set for every market</td><td>Different per store</td></tr><tr><td>Content</td><td>Translations and market-specific copy</td><td>Separate themes and content</td></tr><tr><td>ERP and legal entity</td><td>One sales channel, business entities on Plus</td><td>One store per ERP company if needed</td></tr><tr><td>Hreflang</td><td>Generated by Shopify</td><td>Added by you across stores</td></tr><tr><td>Running cost</td><td>One store to maintain</td><td>Every change repeated per store</td></tr></tbody></table><figcaption class="wp-element-caption">One store with Shopify Markets vs Shopify expansion stores</figcaption></figure>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Nine included stores make expansion stores look free. In practice, each one adds its own app bills, plus another round of releases and catalog sync every time something changes.</p></div>



<h2 class="wp-block-heading">International SEO with Shopify Markets: hreflang, domains, and redirects</h2>



<p class="wp-block-paragraph">Shopify Markets generates hreflang tags automatically for every market that has its own subfolder, subdomain, or domain, plus an x-default tag that points to your primary domain. It also sets self-referencing canonical URLs and adds every market URL to your sitemap. Separate expansion stores don&#8217;t get this across stores, so hreflang between them has to be added in each theme or with an app.</p>



<p class="wp-block-paragraph">Shopify&#8217;s <a href="https://help.shopify.com/en/manual/markets/seo" target="_blank" rel="noopener">international SEO guide</a> recommends subfolders for most stores, because they share your primary domain&#8217;s authority and need no extra domains. Country domains send the strongest local signal, but each one has to earn its rankings separately. Some search engines treat subdomains as separate sites.</p>



<p class="wp-block-paragraph">After launch, check these settings in the theme and <a href="https://scandiweb.com/blog/duplicate-without-user-selected-canonical/">in Search Console</a>.</p>



<ul class="wp-block-list">
<li>Hreflang only appears for markets with a distinct URL, so a market that shares your main URL gets none</li>


<li>Turning off automatic hreflang to use your own can hurt SEO, and running both creates duplicate tags</li>


<li>Shoppers are redirected by IP address and browser language, while known search engine crawlers get the URL they asked for</li>

</ul>



<p class="wp-block-paragraph">Redirects that trap shoppers in the wrong country cause the problems we cover in <a href="https://scandiweb.com/blog/why-is-forced-geo-ip-redirects-bad-for-seo/" target="_blank" rel="noopener">why forced GEO IP redirects are bad for SEO</a>, so keep the country and language switcher visible. Our guide to <a href="https://scandiweb.com/blog/canonicals-and-hreflangs-for-international-store/" target="_blank" rel="noopener">hreflang and canonical tags for international stores</a> goes deeper into the tag rules.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-hreflang-url-structures.png" alt="Cards comparing subfolder, subdomain and country domain setups with sample hreflang and x-default link tags" class="wp-image-26110" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-hreflang-url-structures.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-hreflang-url-structures-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-hreflang-url-structures-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-hreflang-url-structures-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-hreflang-url-structures-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-hreflang-url-structures-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-hreflang-url-structures-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">Shopify Markets URL options and the hreflang tags Shopify adds for each market</figcaption></figure></div>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>If you fold country stores into one store with Markets, treat it as a domain migration. Every old country URL needs a 301 redirect to its new subfolder before the switch, or you lose the rankings each store earned. Our <a href="https://scandiweb.com/blog/seo-migration-checklist/" target="_blank" rel="noopener">SEO migration checklist</a> covers the redirect map.</p></div>



<h2 class="wp-block-heading">How to choose between Shopify Markets and expansion stores</h2>



<p class="wp-block-paragraph">Start with one store and Markets, and add an expansion store only for the country or channel that fails a specific test: a different catalog structure, a different app or checkout setup, a separate ERP company that can&#8217;t share a sales channel, or a team that must work on its own. Most brands selling the same range in several countries stay on one store. Brands with regional ranges or a wholesale operation often run one store per region.</p>



<p class="wp-block-paragraph"><strong>Choose Shopify Markets if</strong></p>



<ul class="wp-block-list">
<li>You sell mostly the same products in every country</li>


<li>Your differences are currency, price, language, domain, and duties</li>


<li>One team runs merchandising and content for all markets</li>


<li>Your ERP can take orders from every country through one sales channel</li>


<li>You want Shopify to handle hreflang and market sitemaps</li>

</ul>



<p class="wp-block-paragraph"><strong>Choose Shopify expansion stores if</strong></p>



<ul class="wp-block-list">
<li>Your regional ranges differ in variants, product data, or compliance fields</li>


<li>A region needs apps or checkout logic the others shouldn&#8217;t run</li>


<li>Each country is a separate ERP company that needs its own sales channel</li>


<li>Regional teams need their own admin and release schedule</li>


<li>You run a wholesale store that shares products but not the buying experience</li>

</ul>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-decision-flow.png" alt="Flowchart of four yes or no questions leading to one store with Shopify Markets or a new expansion store" class="wp-image-26111" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-decision-flow.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-decision-flow-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-decision-flow-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-decision-flow-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-decision-flow-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-decision-flow-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-decision-flow-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">Four questions that decide between Shopify Markets and an expansion store</figcaption></figure></div>



<p class="wp-block-paragraph">If your answers split down the middle, our <a href="https://scandiweb.com/shopify-services/consulting" target="_blank" rel="noopener">Shopify consulting</a> team can run an <a href="https://scandiweb.com/services/enterprise-architecture" target="_blank" rel="noopener">architecture review</a> that maps your catalog and ERP against each market before you commit.</p>



<h2 class="wp-block-heading">Frequently asked questions about Shopify Markets</h2>



<h3 class="wp-block-heading">What is Shopify Markets?</h3>



<p class="wp-block-paragraph">Shopify Markets is the part of the Shopify admin where you group customers by country, B2B company, retail location, or sales channel, and change what each group sees. Each market can have its own currency, catalog and prices, languages, domain or subfolder, and duty and tax settings, all inside one store. Creating regional markets is free on every Shopify plan.</p>



<h3 class="wp-block-heading">Is Shopify Markets free?</h3>



<p class="wp-block-paragraph">Creating regional markets is free on all Shopify plans, but selling through them has costs. Shopify Payments adds a 1.5% or 2% fee when it converts currency, and calculating duties at checkout carries a transaction fee. Translate &amp; Adapt machine-translates two languages for free, Managed Markets charges its own per-order fee, and some market settings need the Advanced or Plus plan.</p>



<h3 class="wp-block-heading">Is Shopify Managed Markets worth it?</h3>



<p class="wp-block-paragraph">Managed Markets is worth it when you want to sell into many countries without registering for tax in each one. Global-e becomes the merchant of record and handles duties, taxes, and local payment methods for you. It costs more per order than running Markets yourself, and it&#8217;s only open to merchants based in the continental US and certain stores in Canada and the UK.</p>



<h3 class="wp-block-heading">How many expansion stores do you get with Shopify Plus?</h3>



<p class="wp-block-paragraph">A Shopify Plus organization can have ten stores on its contract with no extra platform fee: one main store and nine expansion stores. Staging stores don&#8217;t count toward the limit. Each store beyond ten costs $300 per month or a revenue share. Shopify pre-approves international, B2B wholesale, and physical retail stores as expansion store types.</p>



<h3 class="wp-block-heading">Does Shopify Markets handle hreflang automatically?</h3>



<p class="wp-block-paragraph">Yes. Shopify generates hreflang tags for every market that has its own subfolder, subdomain, or domain, adds an x-default tag for your primary domain, and includes market URLs in your sitemap. Markets that share your main URL get no hreflang. Separate expansion stores don&#8217;t link to each other automatically, so cross-store hreflang has to be added in the theme or with an app.</p>



<h3 class="wp-block-heading">Can I move from separate Shopify stores to one store with Markets?</h3>



<p class="wp-block-paragraph">Yes, but plan it as a migration. Pick the store that stays, bring the other stores&#8217; products, customers, and translations into it, and set each former country store up as a market with its own subfolder or domain. Then map a 301 redirect from every old URL to its new address before you switch, so the rankings each store earned carry over.</p>



<h2 class="wp-block-heading">Choosing your Shopify Markets setup</h2>



<p class="wp-block-paragraph">For most brands, the right Shopify Markets setup is one store with a market per country or region. Expansion stores earn their running cost when the catalog, apps, ERP company, or team behind a country has to be different. Write down what each country needs before deciding, and plan the URL structure and hreflang with the first market.</p>



<p class="wp-block-paragraph">If you&#8217;re moving off Magento with several store views, our <a href="https://scandiweb.com/blog/magento-to-shopify-migration/" target="_blank" rel="noopener">Magento to Shopify migration</a> guide covers what you rebuild on the way. For the business questions that come before any platform setup, read our article on <a href="https://scandiweb.com/blog/factors-to-consider-before-international-expansion/" target="_blank" rel="noopener">factors to consider before international expansion</a>.</p>



<script type="application/ld+json">{"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"@type": "Question", "name": "What is Shopify Markets?", "acceptedAnswer": {"@type": "Answer", "text": "Shopify Markets is the part of the Shopify admin where you group customers by country, B2B company, retail location, or sales channel, and change what each group sees. Each market can have its own currency, catalog and prices, languages, domain or subfolder, and duty and tax settings, all inside one store. Creating regional markets is free on every Shopify plan."}}, {"@type": "Question", "name": "Is Shopify Markets free?", "acceptedAnswer": {"@type": "Answer", "text": "Creating regional markets is free on all Shopify plans, but selling through them has costs. Shopify Payments adds a 1.5% or 2% fee when it converts currency, and calculating duties at checkout carries a transaction fee. Translate & Adapt machine-translates two languages for free, Managed Markets charges its own per-order fee, and some market settings need the Advanced or Plus plan."}}, {"@type": "Question", "name": "Is Shopify Managed Markets worth it?", "acceptedAnswer": {"@type": "Answer", "text": "Managed Markets is worth it when you want to sell into many countries without registering for tax in each one. Global-e becomes the merchant of record and handles duties, taxes, and local payment methods for you. It costs more per order than running Markets yourself, and it's only open to merchants based in the continental US and certain stores in Canada and the UK."}}, {"@type": "Question", "name": "How many expansion stores do you get with Shopify Plus?", "acceptedAnswer": {"@type": "Answer", "text": "A Shopify Plus organization can have ten stores on its contract with no extra platform fee: one main store and nine expansion stores. Staging stores don't count toward the limit. Each store beyond ten costs $300 per month or a revenue share. Shopify pre-approves international, B2B wholesale, and physical retail stores as expansion store types."}}, {"@type": "Question", "name": "Does Shopify Markets handle hreflang automatically?", "acceptedAnswer": {"@type": "Answer", "text": "Yes. Shopify generates hreflang tags for every market that has its own subfolder, subdomain, or domain, adds an x-default tag for your primary domain, and includes market URLs in your sitemap. Markets that share your main URL get no hreflang. Separate expansion stores don't link to each other automatically, so cross-store hreflang has to be added in the theme or with an app."}}, {"@type": "Question", "name": "Can I move from separate Shopify stores to one store with Markets?", "acceptedAnswer": {"@type": "Answer", "text": "Yes, but plan it as a migration. Pick the store that stays, bring the other stores' products, customers, and translations into it, and set each former country store up as a market with its own subfolder or domain. Then map a 301 redirect from every old URL to its new address before you switch, so the rankings each store earned carry over."}}]}</script>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p><style> p.box { border: 1px solid black; padding-top: 30px; padding-right: 30px; padding-bottom: 30px; padding-left: 30px; } </style> <p class="box"><em>Planning a new country, or wondering whether your country stores should be one? </em><a href="https://scandiweb.com/contact" target="_blank" rel="noreferrer noopener"><em>Tell us what each market needs</em></a><em>, and we&#x27;ll tell you which setup fits.</em></p></p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/shopify-markets/">Shopify Markets vs Expansion Stores: How to Sell in Multiple Countries</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Object Caching 43/124 objects using Redis
Page Caching using Disk: Enhanced 

Served from: scandiweb.com @ 2026-10-23 13:33:32 by W3 Total Cache
-->