Next Commerce
Cart System

Quantity Controls

Manage product quantities in the cart with various control patterns.

Setting Quantity on Buttons

Specify quantity directly on add-to-cart or toggle buttons:

<!-- Add specific quantity -->
<button data-next-action="add-to-cart"
        data-next-package-id="2"
        data-next-quantity="3">
  Add 3 to Cart
</button>

<!-- Toggle with quantity -->
<button data-next-toggle
        data-next-package-id="8"
        data-next-quantity="3">
  Add 3 Extra Batteries
</button>

Container-Based Quantity

Set quantity at the container level — all child buttons inherit it:

<div class="product-container"
     data-next-package-id="9"
     data-next-quantity="2">
  <button data-next-toggle>Add 2 Pack Bundle</button>
</div>

Quantity Sync

Sync a toggle item's quantity to the combined quantity of other packages in the cart. Useful for accessories and warranties that should match the main product.

<!-- Main product buttons -->
<button data-next-toggle data-next-package-id="2">Add 1 Drone</button>
<button data-next-toggle data-next-package-id="3" data-next-quantity="2">Add 2 Drones</button>
<button data-next-toggle data-next-package-id="4" data-next-quantity="3">Add 3 Drones</button>

<!-- Warranty syncs with drone quantity -->
<button data-next-toggle
        data-next-package-id="10"
        data-next-package-sync="2,3,4">
  Add Protection Plan (matches drone quantity)
</button>

Use data-next-package-sync with a comma-separated list of package IDs. When all synced packages are removed from the cart, the toggle item is also removed automatically.

Displaying Quantity

Show the current cart quantity in your page:

<!-- Total quantity of all items -->
<span data-next-display="cart.quantity">0</span>

<!-- Quantity of a specific package -->
<span data-next-display="cart.items[2].quantity">0</span>

Quantity-Based Conditionals

Show or hide elements based on quantity:

<!-- Show when cart has 3 or more items -->
<div data-next-show="cart.quantity >= 3">
  You qualify for bulk discount!
</div>

<!-- Show different messages based on quantity -->
<div data-next-show="cart.quantity == 1">Single item in cart</div>
<div data-next-show="cart.quantity > 1">Multiple items in cart</div>

On this page