feat(checkout): enforce editing policy on items

This commit is contained in:
2026-08-20 10:56:19 -03:00
parent d36a929f8c
commit c8ce3b0da3
12 changed files with 272 additions and 17 deletions

View File

@@ -30,7 +30,7 @@ class PurchaseItemResource extends JsonResource
? $this->sourceCatalogItem
: null;
$includeVariants = $tenant instanceof Tenant
&& $tenant->cart_editing_policy->allowsVariantChanges()
&& $tenant->checkout_editing_policy->allowsVariantChanges()
&& $catalogItem !== null
&& $catalogItem->relationLoaded('variants');
@@ -67,6 +67,9 @@ class PurchaseItemResource extends JsonResource
$imageUrl = $displayImage
? $this->resolveImageUrl($selectedItem, $catalogItem)
: null;
$includeVariants = $tenant instanceof Tenant
&& $tenant->checkout_editing_policy->allowsVariantChanges()
&& $catalogItem?->relationLoaded('variants');
return [
'id' => $this->id,
@@ -82,6 +85,16 @@ class PurchaseItemResource extends JsonResource
'imagen' => $imageUrl,
'attributes' => $variant === null ? [] : $this->resolveAttributes($variant),
],
'variants' => $this->when(
$includeVariants,
fn () => $catalogItem
->visibleVariants($this->variant_id)
->map(fn (Variant $availableVariant): array => $this->variantData(
$catalogItem,
$availableVariant,
))
->values(),
),
];
}