> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aftersell.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Aantal/teller op het winkelwagenpictogram wordt niet bijgewerkt

> Dit artikel legt uit hoe je het aantal op je winkelwagenpictogram herstelt wanneer dit niet wordt bijgewerkt in Upcart.

<div id="overview">
  # Overzicht
</div>

Sommige thema's werken het pictogram niet automatisch bij; deze gids laat je zien hoe je dit oplost met een beetje aangepaste code. Volg de onderstaande stappen om alles correct te laten synchroniseren.

**Hier is een voorbeeld van hoe deze mismatch eruitziet:**

<img src="https://mintcdn.com/aftersell/uxKAdY-e0h16xa48/images/upcart/cart-counter-drawer-vs-theme-icon.gif?s=2b4c08af3555b89b66d7926793bc3833" alt="Upcart-drawer toont Cart 2 terwijl de bubble op het themawinkelwagenpictogram nog steeds 1 weergeeft" width="2560" height="1080" data-path="images/upcart/cart-counter-drawer-vs-theme-icon.gif" />

***

<div id="important-steps-before-you-start">
  # Belangrijke stappen voordat je begint!
</div>

Om het probleem met het winkelwagenpictogram op te lossen, moet je de classnaam van je winkelwagenpictogram achterhalen. Elk thema is anders, en deze stap zorgt ervoor dat de code specifiek voor jouw winkel werkt.

<div id="1-use-chrome-developer-tools">
  ### **1. Gebruik Chrome Developer Tools**
</div>

Elk thema is anders, dus je moet Chrome Developer Tools (Inspect) gebruiken om de classnaam van je winkelwagenpictogram te vinden.

* Klik met de rechtermuisknop op je winkelwagenpictogram in je storefront en selecteer **Inspect** in Google Chrome.
* Zoek het HTML-element van je winkelwagenpictogram (bijv. **`<span class="cart-count-bubble">`**).
* **Hulp nodig bij het gebruik van Chrome Developer Tools?** Bekijk [deze gids](https://developer.chrome.com/docs/devtools/overview/) voor stapsgewijze instructies.

<div id="2-reach-out-for-help-optional">
  ### **2. Vraag om hulp (optioneel)**
</div>

Kun je de class van je winkelwagenpictogram niet vinden of loop je vast? Geen zorgen! Je hebt opties:

* **Neem contact op met je themaontwikkelaar:** die kent je thema het beste en kan je helpen de juiste class te vinden.
* **Huur een Shopify Expert in:** heb je extra ondersteuning nodig, dan heeft Shopify een directory met vertrouwde experts die kunnen helpen. [Vind hier een Shopify Expert](https://experts.shopify.com/).

<div id="custom-code-disclaimer">
  ## 🚧 **Disclaimer over aangepaste code**
</div>

De onderstaande voorbeeldcode is slechts een sjabloon; **deze werkt niet als je hem direct kopieert en plakt**. Je moet de placeholder-classnaam (bijv. **`.cart-count-bubble > span`**) vervangen door de specifieke classnaam van jouw winkelwagenpictogram.

***

<div id="step-by-step-fix">
  # Stapsgewijze oplossing
</div>

We hebben dit proces opgedeeld in drie niveaus van oplossingen, beginnend met de eenvoudigste (niveau 1). Elk niveau bouwt voort op het vorige: probeer eerst niveau 1 en ga alleen door naar niveau 2 of 3 als dat nodig is.

<div id="step-1-add-custom-code-in-upcart">
  ## **Stap 1: aangepaste code toevoegen in Upcart**
</div>

Omdat we wat aangepaste HTML-code moeten toevoegen in de Upcart-editor, maken we die sectie eerst klaar:

1. Ga naar **Upcart Editor > Settings** en open het tabblad **Custom HTML** (achter **More settings** als het niet op de tabbladrij past).
2. Stel de locatie in op **Scripts (Before Load)**.
3. Plak hier je aangepaste code (hieronder geven we voorbeelden voor elk niveau).

Zo ziet dat eruit:

<img src="https://mintcdn.com/aftersell/uxKAdY-e0h16xa48/images/upcart/cart-counter-custom-html-settings-location.gif?s=d70ce32a4328c99bf2d0b9d18efcd853" alt="Upcart Custom HTML-instellingen met de HTML-locatie ingesteld op Scripts Before Load" width="1588" height="1080" data-path="images/upcart/cart-counter-custom-html-settings-location.gif" />

***

<div id="step-2-apply-the-fix-by-level">
  # **Stap 2: pas de oplossing per niveau toe**
</div>

<div id="level-1-basic">
  ## Niveau 1 (basis)
</div>

Wanneer de winkelwagen laadt, telt dit script de aantallen op de regelitems van de winkelwagen op en schrijft dat in het tellerelement binnen de cart bubble van je thema. Het past bij thema's waar de teller in een eenvoudig genest element staat (bijvoorbeeld `.cart-count-bubble > span`).

**Vergeet niet**

* Vervang **`.cart-count-bubble > span`** door de class van jouw winkelwagenpictogram.
* Test het op je storefront na het toevoegen van de code.

<img src="https://mintcdn.com/aftersell/uxKAdY-e0h16xa48/images/upcart/cart-counter-level-1-count-bubble-script.gif?s=ef698547d55d921009278b3a006e4a9d" alt="Het niveau 1-telscript plakken in Upcart Custom HTML met de cart-count-bubble-selector" width="1996" height="1080" data-path="images/upcart/cart-counter-level-1-count-bubble-script.gif" />

<div id="example-code-for-level-1">
  ## Voorbeeldcode voor niveau 1
</div>

```text theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
<script>  
window.upcartSubscribeCartLoaded((event) => {  
    const countEl = document.querySelector('.cart-count-bubble > span');  
    const itemCount = event.cart.items.reduce((total, item) => total + item.quantity, 0);  
    countEl.innerText = itemCount;  
});  
</script>
```

<Note>
  **Opmerking over legacy:** `window.upcartOnCartLoaded`-callbacks werken nog steeds, maar zijn verouderd en tonen waarschuwingen in de console. Gebruik `upcartSubscribeCartLoaded` voor alle nieuwe scripts. Let op: `event.cart` heeft geen `item_count`-eigenschap; gebruik `event.cart.items.reduce((total, item) => total + item.quantity, 0)` om het totale aantal items te berekenen.
</Note>

***

<div id="level-2-moderate">
  ## Niveau 2 (gemiddeld)
</div>

Als niveau 1 niet werkte, vervangt je thema mogelijk de volledige HTML van het winkelwagenpictogram wanneer de teller verandert. Deze versie bouwt de pictogram-markup opnieuw op voor de lege en niet-lege winkelwagenstatus, zodat de teller en het pictogram synchroon blijven.

**Vergeet niet**

* Vervang **`#cart-icon-bubble-custom`** door de wrapper-selector van het winkelwagenpictogram van jouw thema.
* Test het na het opslaan.

<Frame>
  <img src="https://mintcdn.com/aftersell/uxKAdY-e0h16xa48/images/upcart/cart-counter-level-2-icon-bubble-script.gif?s=7d36ca92c77564a670a1940818b7d86b" alt="Het niveau 2-winkelwagenpictogramscript plakken in Upcart Custom HTML met de cart-icon-bubble-custom-selector" width="1876" height="1080" data-path="images/upcart/cart-counter-level-2-icon-bubble-script.gif" />
</Frame>

<div id="example-code-for-level-2">
  ### Voorbeeldcode voor niveau 2
</div>

```text theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
<script>  
;(() => {  
function updateCartCount(itemCount) {  
    const iconWrapperEl = document.querySelector('#cart-icon-bubble-custom');  
    if (itemCount === 0) {  
        iconWrapperEl.innerHTML = `<span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-cart-empty" viewBox="0 0 40 40"><path fill="currentColor" fill-rule="evenodd" d="M15.75 11.8h-3.16l-.77 11.6a5 5 0 0 0 4.99 5.34h7.38a5 5 0 0 0 4.99-5.33L28.4 11.8zm0 1h-2.22l-.71 10.67a4 4 0 0 0 3.99 4.27h7.38a4 4 0 0 0 4-4.27l-.72-10.67h-2.22v.63a4.75 4.75 0 1 1-9.5 0zm8.5 0h-7.5v.63a3.75 3.75 0 1 0 7.5 0z"></path></svg></span><span class="visually-hidden">Cart</span>`;  
    } else {  
        iconWrapperEl.innerHTML = `<span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-cart" viewBox="0 0 40 40"><path fill="currentColor" fill-rule="evenodd" d="M20.5 6.5a4.75 4.75 0 0 0-4.75 4.75v.56h-3.16l-.77 11.6a5 5 0 0 0 4.99 5.34h7.38a5 5 0 0 0 4.99-5.33l-.77-11.6h-3.16v-.57A4.75 4.75 0 0 0 20.5 6.5m3.75 5.31v-.56a3.75 3.75 0 1 0-7.5 0v.56zm-7.5 1h7.5v.56a3.75 3.75 0 1 1-7.5 0zm-1 0v.56a4.75 4.75 0 1 0 9.5 0v-.56h2.22l.71 10.67a4 4 0 0 1-3.99 4.27h-7.38a4 4 0 0 1-4-4.27l.72-10.67z"></path></svg></span><span class="visually-hidden">Cart</span><div class="cart-count-bubble"><span aria-hidden="true">${itemCount}</span><span class="visually-hidden">${itemCount} item</span></div>`;  
    }  
}  
  
window.upcartSubscribeCartLoaded((event) => {  
    const itemCount = event.cart.items.reduce((total, item) => total + item.quantity, 0);  
    updateCartCount(itemCount);  
});  
})();  
</script>
```

<Note>
  **Opmerking over legacy:** `window.upcartOnCartLoaded`-callbacks werken nog steeds, maar zijn verouderd en tonen waarschuwingen in de console. Gebruik `upcartSubscribeCartLoaded` voor alle nieuwe scripts.

  Let op: `event.cart` heeft **geen** `item_count`-eigenschap — de bovenstaande scripts berekenen het totaal met `event.cart.items.reduce((total, item) => total + item.quantity, 0)` en geven dit door als `itemCount`. Oudere versies van deze snippets die `cart.item_count` interpoleren, geven een `ReferenceError` en werken het pictogram stilletjes nooit bij.
</Note>

***

<div id="level-3-advanced">
  ## Niveau 3 (geavanceerd)
</div>

Als je thema **aparte** winkelwagenpictogram-markup gebruikt voor desktop en mobiel, voer je dezelfde updatelogica uit op twee selectors, zodat elke viewport de juiste HTML en teller krijgt.

**Vergeet niet**

* Vervang **`#cart-icon-bubble-custom-desktop`** en **`#cart-icon-bubble-custom-mobile`** door de classes van jouw thema.
* Test grondig op zowel desktop- als mobiele weergaven.

<img src="https://mintcdn.com/aftersell/uxKAdY-e0h16xa48/images/upcart/cart-counter-level-3-desktop-mobile-script.gif?s=36058384ee181aa8fc630e3c7bfc8716" alt="Het niveau 3-script plakken in Upcart Custom HTML met aparte selectors voor het winkelwagenpictogram op desktop en mobiel" width="1996" height="1080" data-path="images/upcart/cart-counter-level-3-desktop-mobile-script.gif" />

<div id="example-code-for-level-3">
  ### Voorbeeldcode voor niveau 3
</div>

```text theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
<script>  
;(() => {  
function updateCartCount(itemCount) {  
    // Desktop  
    const desktopIconWrapperEl = document.querySelector('#cart-icon-bubble-custom-desktop');  
    if (itemCount === 0) {  
        desktopIconWrapperEl.innerHTML = `<span>Cart</span><span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-cart-empty" viewBox="0 0 40 40"><path fill="currentColor" fill-rule="evenodd" d="M15.75 11.8h-3.16l-.77 11.6a5 5 0 0 0 4.99 5.34h7.38a5 5 0 0 0 4.99-5.33L28.4 11.8zm0 1h-2.22l-.71 10.67a4 4 0 0 0 3.99 4.27h7.38a4 4 0 0 0 4-4.27l-.72-10.67h-2.22v.63a4.75 4.75 0 1 1-9.5 0zm8.5 0h-7.5v.63a3.75 3.75 0 1 0 7.5 0z"></path></svg></span>`;  
    } else {  
        desktopIconWrapperEl.innerHTML = `<span>Cart (${itemCount})</span><span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-cart" viewBox="0 0 40 40"><path fill="currentColor" fill-rule="evenodd" d="M20.5 6.5a4.75 4.75 0 0 0-4.75 4.75v.56h-3.16l-.77 11.6a5 5 0 0 0 4.99 5.34h7.38a5 5 0 0 0 4.99-5.33l-.77-11.6h-3.16v-.57A4.75 4.75 0 0 0 20.5 6.5m3.75 5.31v-.56a3.75 3.75 0 1 0-7.5 0v.56zm-7.5 1h7.5v.56a3.75 3.75 0 1 1-7.5 0zm-1 0v.56a4.75 4.75 0 1 0 9.5 0v-.56h2.22l.71 10.67a4 4 0 0 1-3.99 4.27h-7.38a4 4 0 0 1-4-4.27l.72-10.67z"></path></svg></span>`;  
    }  
  
    // Mobile  
    const mobileIconWrapperEl = document.querySelector('#cart-icon-bubble-custom-mobile');  
    if (itemCount === 0) {  
        mobileIconWrapperEl.innerHTML = `<span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-cart-empty" viewBox="0 0 40 40"><path fill="currentColor" fill-rule="evenodd" d="M15.75 11.8h-3.16l-.77 11.6a5 5 0 0 0 4.99 5.34h7.38a5 5 0 0 0 4.99-5.33L28.4 11.8zm0 1h-2.22l-.71 10.67a4 4 0 0 0 3.99 4.27h7.38a4 4 0 0 0 4-4.27l-.72-10.67h-2.22v.63a4.75 4.75 0 1 1-9.5 0zm8.5 0h-7.5v.63a3.75 3.75 0 1 0 7.5 0z"></path></svg></span><span class="visually-hidden">Cart</span>`;  
    } else {  
        mobileIconWrapperEl.innerHTML = `<span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-cart" viewBox="0 0 40 40"><path fill="currentColor" fill-rule="evenodd" d="M20.5 6.5a4.75 4.75 0 0 0-4.75 4.75v.56h-3.16l-.77 11.6a5 5 0 0 0 4.99 5.34h7.38a5 5 0 0 0 4.99-5.33l-.77-11.6h-3.16v-.57A4.75 4.75 0 0 0 20.5 6.5m3.75 5.31v-.56a3.75 3.75 0 1 0-7.5 0v.56zm-7.5 1h7.5v.56a3.75 3.75 0 1 1-7.5 0zm-1 0v.56a4.75 4.75 0 1 0 9.5 0v-.56h2.22l.71 10.67a4 4 0 0 1-3.99 4.27h-7.38a4 4 0 0 1-4-4.27l.72-10.67z"></path></svg></span><span class="visually-hidden">Cart</span><div class="cart-count-bubble"><span aria-hidden="true">${itemCount}</span><span class="visually-hidden">${itemCount} item</span></div>`;  
    }  
}  
  
window.upcartSubscribeCartLoaded((event) => {  
    const itemCount = event.cart.items.reduce((total, item) => total + item.quantity, 0);  
    updateCartCount(itemCount);  
});  
})();  
</script>
```

<Note>
  **Opmerking over legacy:** `window.upcartOnCartLoaded`-callbacks werken nog steeds, maar zijn verouderd en tonen waarschuwingen in de console. Gebruik `upcartSubscribeCartLoaded` voor alle nieuwe scripts.

  Let op: `event.cart` heeft **geen** `item_count`-eigenschap — de bovenstaande scripts berekenen het totaal met `event.cart.items.reduce((total, item) => total + item.quantity, 0)` en geven dit door als `itemCount`. Oudere versies van deze snippets die `cart.item_count` interpoleren, geven een `ReferenceError` en werken het pictogram stilletjes nooit bij.
</Note>

***

<div id="still-not-working">
  # Werkt het nog steeds niet?
</div>

Als geen van deze niveaus het probleem oplost, geen zorgen — je hebt nog steeds opties! Dit betekent waarschijnlijk dat je thema geavanceerdere aanpassingen vereist.

**Dit kun je vervolgens doen:**

* Neem contact op met je themaontwikkelaar voor hulp.
* Huur een [Shopify Expert](https://www.shopify.com/partners/directory) in die een aangepaste oplossing op maat van je winkel kan maken.
