Zid Docs
AppsThemes
Payments
AppsThemes
Payments
Help Center
Slack
  1. Features
  • Getting Started
    • Introduction
    • Theme Development
    • Vitrin Changelog
    • Creating and Managing Theme Presets
    • Legacy Theme Migration
      • Store Settings Mapping
      • Moving to Vitrin Using LLMs
      • Twig to Jinja
      • Breaking Changes
  • Key Concepts
    • Architecture
    • Templates
      • Overview
      • Overridable Templates
      • Legacy Templates
      • Template Replacements
      • Templates Library
        • home.jinja
        • product.jinja
        • cart.jinja
        • category.jinja
        • products.jinja
        • categories.jinja
        • page.jinja
        • blogs.jinja
        • blog.jinja
        • faqs.jinja
        • reviews.jinja
        • questions.jinja
        • shipping_payment.jinja
        • 404_not_found.jinja
    • Settings
      • Schema files
      • Input Settings
      • Media Settings
      • Form Controls Settings
      • Products Settings
      • Additional Settings
      • Conditional Visibility
      • Migrating twig settings schema
    • Localization
      • localization (jinja v. twig)
    • Theme Editor
      • Overview
  • Building with Vitrin
    • Jinja Basics
    • Vitrin's Jinja Extensions
  • Vitrin CLI
    • Introduction
    • CLI Commands
  • Tips & Tricks
    • Performance
  • JS Integration
    • Supporting both Vitrin and Legacy themes
    • Responses & Errors
    • Cart
    • Products
    • Categories
    • Store
    • Account
    • Blogs
    • Options
    • Events
  • Features
    • SDK Popups – Integration Guidelines
    • Custom Styles Guide
    • Gift Card as a Popup
    • Addresses as a Popup
    • Login as a Popup
    • Checkout as a Popup
    • Apple Pay Quick Checkout
    • Region & Language Popup
    • Dynamic Bundle Products
    • Progressive Discounts
    • Customer Wallet & Cashback
    • Add Preorder Support to Your Theme
  • Mobile Apps
    • Scripts
  • API's
    • Authentication
      • Logout
      • Login Status
      • SMS Login
      • Verify SMS Login
      • WhatsApp Login
      • Verify WhatsApp Login
      • Email Login
      • Verify Email Login
      • Register
      • Register Guest
    • Products
      • List Products
      • Search Products
      • Calculate Product Options Price
      • Notify Product Stock Availability
      • Fetch Bundle Offers
      • Fetch Bundle Offers for a Product
      • List My Product Reviews
      • List Product Reviews
      • Create Product Review
      • Update Product Review
      • Delete Product Review
      • List Product Questions
      • Create Product Question
      • Get Product by Slug
      • Get Selection Groups
    • Categories
      • List Categories
    • Checkout
      • Get Cart
      • Remove Cart
      • Duplicate Cart
      • Add Cart Item
      • Empty Cart
      • Update Cart Item
      • Remove Cart Item
      • Upload Cart Input Field
      • Add Gift Card
      • Remove Gift Card
      • Apply Coupon
      • Remove Coupon From Cart
      • Check Coupon Validity
      • Apply Loyalty Points
      • Remove Loyalty Points
      • Preview Rewarded Points
      • List Redemption Methods for Cart
      • Customer’s Loyalty Wallet
      • Customer’s Current Points Balance
    • Account
      • Get Profile
      • Delete Account
      • Update Customer Profile
      • Get Addresses
      • Create an Address
      • Get an Address by ID
      • Update an Existing Address
      • Delete Address
      • Get Orders
      • Get Shareable Wishlist Link
      • Get Wishlist
      • Add Products to Wishlist
      • Remove Product from Wishlist
      • Get Address Form Schema
      • Check Product Purchase Status
    • Storefront
      • Store Scripts
      • Pages
      • Blogs
    • Countries
      • Get Countries
      • Get Cities By Country
  1. Features

Dynamic Bundle Products

The Dynamic bundle products feature allows the customer to select products that they want in a bundle.

Enabling the Feature#

The dynamic bundle products becomes available when you include its template in your theme and the product is a type dyanmic bundle you can create one from the products and and choose Dynamic bundle.
Path: https://dashboard.zid.sa/en-sa/stores/<store_id>/catalog/products

How to Enable#

To enable the dynamic bundle products section in your theme, include the following template:
{% if product.product_class == 'dynamic_bundle' %}
    {% include 'vitrin:products/bundle-products.jinja' %}
{% endif %}
Best Practice:
It is mandatory to add the dynamic bundle primarily on the Product Details Page (PDP), where the full product context and the product_class is available.

Theme Usage Example:#

🔴 Important: The vitrin:bundle-selections:updated event will get trigger every time the customer change the selected product bundle so you will get the values of the selected bundle products and you need to store it for later because you will need to send it to the add product api -- Please refer add product guide for theme developers.

Example on how to add selected bundle product to cart#

Custom Styles Integration#

The Checkout Popup supports the Zid Custom Styles system. You can override specific styles in a safe, isolated way without affecting other dialogs.

How to Use Custom Styles#

The component key for the checkout popup is bundle_selection.
To understand the complete flow of the Custom Styles system — including structure, validation, and advanced usage — please refer to the Custom Styles Guide for Theme Developers.

Best Practices#

Include the template in product details page.
Always use optional chaining when interacting with the API.
Add event listener to vitrin:bundle-selections:updated event so you can recevie the selected customer bundler.

Events Reference Summary#

EventsDescription
vitrin:bundle-selections:updatedThis event is triggered on every change made by the customer within the dynamic bundle.

Summary#

Allows customers to create and customize their own product bundles by selecting items dynamically.
Becomes available when the product type is set to Dynamic Bundle and the bundle template is included in the PDP.
Emits the vitrin:bundle-selections:updated event on every customer selection change.
Requires storing the emitted bundle payload and sending it with the add-to-cart request.
Supports Zid Custom Styles for safe and isolated UI customization.
Modified at 2026-04-16 11:17:28
Previous
Region & Language Popup
Next
Progressive Discounts
Built with