@extends('layouts.app') @section('content')
{{ \App\Models\Setting::get('currency_symbol', 'Rp') }} {{ number_format($product->starting_price * (1 - $product->discount_percentage/100), 0, ',', '.') }}
{{ \App\Models\Setting::get('currency_symbol', 'Rp') }} {{ number_format($product->starting_price, 0, ',', '.') }}
@endif{{ $product->description }}
@php $variationStructure = []; $allVariations = $product->productVariations; $variationKeys = []; // Keys that determine the variation ID if ($allVariations->count() > 0) { foreach ($allVariations as $variation) { $attributes = $variation->attributes; if (is_string($attributes)) { $attributes = json_decode($attributes, true) ?? []; } foreach ($attributes as $key => $value) { $variationStructure[$key][] = $value; if (!in_array($key, $variationKeys)) { $variationKeys[] = $key; } } } foreach ($variationStructure as $key => $values) { $variationStructure[$key] = array_values(array_unique($values)); } } // Merge Global Variations (stored in variation_options) $globalOptions = $product->variation_options; if (is_string($globalOptions)) { $globalOptions = json_decode($globalOptions, true); } if (is_array($globalOptions)) { // Check if associative array (key => options) $isAssociative = count(array_filter(array_keys($globalOptions), 'is_string')) > 0; if ($isAssociative) { foreach ($globalOptions as $name => $opts) { if (is_array($opts) && count($opts) > 0) { if (!isset($variationStructure[$name])) { $variationStructure[$name] = $opts; } else { $variationStructure[$name] = array_values(array_unique(array_merge($variationStructure[$name], $opts))); } } } } elseif (!empty($product->variation_name)) { // Legacy single variation $legacyName = $product->variation_name; if (!isset($variationStructure[$legacyName])) { $variationStructure[$legacyName] = $globalOptions; } else { $variationStructure[$legacyName] = array_values(array_unique(array_merge($variationStructure[$legacyName], $globalOptions))); } } } @endphp @if(!empty($variationStructure)){{ $review->user->name }}
{{ $review->comment }}
@if(!empty($review->video_url) || (!empty($review->images) && is_array($review->images)) || $review->image)
@else
@endif
{{ $review->reply_comment }}
Belum ada testimoni dari member kami.
@endforelse{{ \App\Models\Setting::get('currency_symbol', 'Rp') }} {{ number_format($related->current_price ?? $related->starting_price, 0, ',', '.') }}
Lihat