refactor(catalog): enhance variant options retrieval by restoring canonical values from reserved cart items
This commit is contained in:
@@ -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,
|
||||
)
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user