diff --git a/app/Livewire/BillingPortal/Cart/OptionalOneTimeProducts.php b/app/Livewire/BillingPortal/Cart/OptionalOneTimeProducts.php
index bf5f3aaa0030..22350ee06b69 100644
--- a/app/Livewire/BillingPortal/Cart/OptionalOneTimeProducts.php
+++ b/app/Livewire/BillingPortal/Cart/OptionalOneTimeProducts.php
@@ -19,6 +19,13 @@ class OptionalOneTimeProducts extends Component
{
public Subscription $subscription;
+ public array $context;
+
+ public function quantity($id, $value): void
+ {
+ $this->dispatch('purchase.context', property: "bundle.optional_one_time_products.{$id}.quantity", value: $value);
+ }
+
public function render(): \Illuminate\View\View
{
return view('billing-portal.v3.cart.optional-one-time-products');
diff --git a/resources/views/billing-portal/v3/cart/optional-one-time-products.blade.php b/resources/views/billing-portal/v3/cart/optional-one-time-products.blade.php
index cee8704c90a3..0e206333710b 100644
--- a/resources/views/billing-portal/v3/cart/optional-one-time-products.blade.php
+++ b/resources/views/billing-portal/v3/cart/optional-one-time-products.blade.php
@@ -1,15 +1,20 @@
- @unless(empty($subscription->optional_recurring_product_ids))
- @foreach($subscription->service()->optional_products() as $index => $product)
+ @isset($context['bundle']['optional_one_time_products'])
+ @foreach($context['bundle']['optional_one_time_products'] as $key => $entry)
+
+ @php
+ $product = $entry['product'];
+ @endphp
+
- @if(filter_var($product->product_image, FILTER_VALIDATE_URL))
+ @if(filter_var($product['product_image'], FILTER_VALIDATE_URL))

@@ -17,24 +22,24 @@
@endif
-
{{ $product->product_key }}
-
{{ \App\Utils\Number::formatMoney($product->price, $subscription->company) }}
+
{{ $product['product_key'] }}
+
{{ \App\Utils\Number::formatMoney($product['price'], $subscription['company']) }}
- @if(is_numeric($product->max_quantity))
- @if($subscription->use_inventory_management && $product->in_stock_quantity == 0)
+ @if($subscription->per_seat_enabled)
+ @if($subscription->use_inventory_management && $product['in_stock_quantity'] == 0)
{{ ctrans('texts.out_of_stock') }}
@else
{{ ctrans('texts.qty') }}
@endif
-
-
- {!! $product->markdownNotes() !!}
+ {!! $product['notes'] !!}
@endforeach
- @endunless
+ @endisset