'array', 'images' => 'array', ]; protected $appends = ['image']; public function product() { return $this->belongsTo(Product::class); } public function getImageAttribute() { $images = $this->images ?? []; return $images[0] ?? ''; } public function getVariantLabel(): string { $product = $this->product; $localeCode = locale(); $variantLabel = ''; if(empty($product->variables)) { return ''; } foreach ($product->variables as $index => $variable) { $valueIndex = $this->variants[$index]; $variantName = $variable['name'][$localeCode] ?? ''; $variantValue = $variable['values'][$valueIndex]['name'][$localeCode] ?? ''; if ($variantName && $variantValue) { $variantLabel .= $variantName . ': ' . $variantValue . '; '; } } return $variantLabel; } }