refactor(catalog): enhance variant options retrieval by restoring canonical values from reserved cart items

This commit is contained in:
2026-08-18 09:27:26 -03:00
parent 7c2880646f
commit 9e74e21fb5
2 changed files with 61 additions and 1 deletions

View File

@@ -125,6 +125,7 @@ class CatalogController extends Controller
$includedVariantId = null;
$cartItemId = $request->validated('cart_item_id');
$selectedValues = $request->validated('selected_values', []);
if ($cartItemId !== null) {
$cartItem = $cartService->show($tenant, $request)
@@ -132,12 +133,18 @@ class CatalogController extends Controller
->firstWhere('id', (int) $cartItemId);
abort_unless($cartItem?->catalog_item_id === $catalogItem->id, 404);
$includedVariantId = $cartItem->variant_id;
if ($selectedValues === [] && $cartItem->variant !== null) {
$selectedValues = $cartItem->variant
->selectorOptions($catalogItem->itemAttributes)
->all();
}
}
return CatalogVariantOptionsResource::make(
$variantSelectionService->options(
$catalogItem,
$request->validated('selected_values', []),
$selectedValues,
$includedVariantId,
)
);