feat: enhance getVariants method to support multiple media URLs and conversions for product variants
This commit is contained in:
parent
9cca0427c8
commit
06b9c91948
@ -81,15 +81,17 @@ public function getVariants(Product $product): Collection
|
|||||||
->with(['productPrices:id,variant_id,type,price'])
|
->with(['productPrices:id,variant_id,type,price'])
|
||||||
->get()
|
->get()
|
||||||
->each(function (ProductVariant $variant) {
|
->each(function (ProductVariant $variant) {
|
||||||
$media = $variant->getFirstMedia('images');
|
$allMedia = $variant->getMedia('images');
|
||||||
$variant->photo_url = $media
|
$variant->photo_urls = $allMedia
|
||||||
? $this->s3Service->getTemporaryUrl($media->getPath())
|
->map(fn ($m) => $this->s3Service->getTemporaryUrl($m->getPath()))
|
||||||
: null;
|
->values()
|
||||||
$variant->photo_conversion_url = $media
|
->toArray();
|
||||||
? ($media->getGeneratedConversions()->contains('thumb')
|
$variant->photo_conversion_urls = $allMedia
|
||||||
? $this->s3Service->getTemporaryUrl($media->getPath('thumb'))
|
->map(fn ($m) => $m->getGeneratedConversions()->contains('thumb')
|
||||||
: $this->s3Service->getTemporaryUrl($media->getPath()))
|
? $this->s3Service->getTemporaryUrl($m->getPath('thumb'))
|
||||||
: null;
|
: $this->s3Service->getTemporaryUrl($m->getPath()))
|
||||||
|
->values()
|
||||||
|
->toArray();
|
||||||
|
|
||||||
$prices = $variant->productPrices->mapWithKeys(fn ($p) => [$p->type->value => $p->price]);
|
$prices = $variant->productPrices->mapWithKeys(fn ($p) => [$p->type->value => $p->price]);
|
||||||
$variant->prices = $prices;
|
$variant->prices = $prices;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user