refactor(catalog): rely on inventory for variant availability
This commit is contained in:
@@ -11,13 +11,11 @@ class VariantSelectionService
|
||||
{
|
||||
/**
|
||||
* @param array<string, mixed> $selectedValues
|
||||
* @param list<int> $excludedVariantIds
|
||||
* @return array<string, mixed>
|
||||
*/
|
||||
public function options(
|
||||
CatalogItem $catalogItem,
|
||||
array $selectedValues,
|
||||
array $excludedVariantIds = [],
|
||||
?int $includedVariantId = null,
|
||||
): array {
|
||||
$catalogItem->load([
|
||||
@@ -30,10 +28,7 @@ class VariantSelectionService
|
||||
'variants.definitions.itemAttribute.attribute.options',
|
||||
]);
|
||||
|
||||
$excluded = collect($excludedVariantIds)->map(fn ($id): int => (int) $id);
|
||||
$variants = $catalogItem->visibleVariants($includedVariantId)
|
||||
->reject(fn (Variant $variant): bool => $variant->id !== $includedVariantId
|
||||
&& $excluded->contains($variant->id))
|
||||
->values();
|
||||
$normalizedSelections = collect($selectedValues)
|
||||
->mapWithKeys(fn ($value, string $key): array => [$key => $this->normalizeValue($value)])
|
||||
|
||||
Reference in New Issue
Block a user