Features

Step-by-step wizard UI

The bundle builder replaces the standard WooCommerce add-to-cart form on bundle product pages with an interactive React-powered wizard. The wizard loads asynchronously — a loading skeleton is shown while the bundle data is fetched from the REST API.

The wizard includes:

  • A progress indicator (configurable style: pills, numbered circles, or bar)
  • Step item counter per step (“2 / 3 items selected”)
  • Product cards with image, name, price, and selection state
  • Next/previous navigation between steps
  • A sticky price summary with real-time price updates and savings badge

Pricing modes

Sum of items — The displayed price updates in real time as the customer adds or removes products. Each product’s current WooCommerce price is used.

Fixed price — A single price is shown regardless of product selection. Customers see the fixed price from the moment they open the builder.

Tiered discounts — The price summary updates dynamically as selections are made. When a tier threshold is approaching, a hint such as “Add 2 more items to unlock 10% off” is displayed to encourage customers to reach the next tier.

Real-time stock checking

The builder polls the REST API every 30 seconds to check stock availability. Products that go out of stock while a customer is building their bundle are automatically flagged with an out-of-stock overlay. Customers cannot add an out-of-stock product to their selection.

Cart behavior

Bundles are added to the WooCommerce cart as a parent item (the bundle product at the calculated bundle price) plus individual child items (each selected product at $0). This structure ensures:

  • Individual product stock is accurately deducted on checkout
  • The cart displays a meaningful bundle summary
  • Removing the parent bundle automatically removes all its children
  • If the parent is restored via “undo remove”, child items are restored too
  • Child item quantities are locked — they cannot be changed individually in the cart
  • Child items do not have their own remove links

The cart item count reflects bundles as single items (not parent + N children).

Order display

In the WooCommerce order admin, bundle items are visually grouped with:

  • A “Bundle” badge on the parent item
  • The pricing mode and any discount amount shown below the parent
  • A bulleted list of bundled items with quantities
  • Child items indented with a “Bundled in: [Bundle Name]” indicator
  • Internal meta keys hidden from the raw meta display

Email integration

Customer order emails include a bundled items summary below the parent item in the order table. The child item rows and the summary are independently controllable via the Orders & Emails settings (see Section 5.3).

WooCommerce Blocks compatibility

The plugin extends the WooCommerce Store API to include bundle metadata on cart line items. In the block-based Cart and Checkout, bundle items display correctly with bundle badges, “Included” price labels on child items, and locked quantities.

Theme compatibility

The plugin includes a theme compatibility layer that applies targeted CSS corrections for the following themes: Storefront, Astra, GeneratePress, Kadence, OceanWP, and block-based (FSE) themes. A .aop-bb-product-page body class and a .aop-bb-theme-{slug} body class are added on bundle product pages for custom CSS targeting.