@php $editingProduct = $product ?? null; $defaultVariants = $editingProduct ? $editingProduct->variants->map(fn ($variant) => [ 'id' => $variant->id, 'name' => $variant->name, 'description' => $variant->description, 'delivery_note' => $variant->delivery_note, 'price' => $variant->price, 'robux_amount' => $variant->robux_amount, 'is_active' => $variant->is_active ? 1 : 0, 'is_stock_available' => $variant->is_stock_available ? 1 : 0, 'sort_order' => $variant->sort_order, ])->values()->all() : []; $variantRows = old('variants', $defaultVariants); $variantRows = is_array($variantRows) ? $variantRows : []; $hasVariants = (bool) old('has_variants', $editingProduct?->hasVariants() ?? false); $storedCheckoutRows = collect($editingProduct?->checkout_schema ?? []) ->filter(fn ($field) => is_array($field)) ->map(function ($field) { $key = (string) ($field['key'] ?? ''); return [ 'key' => $key, 'label' => $field['label'] ?? ucwords(str_replace('_', ' ', $key)), 'type' => $field['type'] ?? 'text', 'required' => $field['required'] ?? true, 'placeholder' => $field['placeholder'] ?? '', 'max_length' => $field['max_length'] ?? 100, ]; })->values()->all(); $checkoutRows = old('checkout_fields', $storedCheckoutRows); $checkoutRows = is_array($checkoutRows) ? $checkoutRows : []; @endphp
Delivery Guide

Panduan Setelah Pembelian

@include('admin.products.partials.delivery-note-editor', [ 'name' => 'delivery_note', 'value' => old('delivery_note', $editingProduct?->delivery_note), 'errorKey' => 'delivery_note', 'label' => 'Panduan Product', 'help' => 'Opsional. Tampil dekat data akun/kode/link setelah pengiriman berhasil. Jika variant juga memiliki panduan, keduanya akan tampil tanpa saling menimpa.', ])
Product Options

Variant Produk

@error('has_variants')

{{ $message }}

@enderror

Nama ini tampil di storefront sebagai “Pilih Durasi” atau “Pilih Paket Robux”.

@error('variant_option_name')

{{ $message }}

@enderror
@foreach ($variantRows as $index => $variant) @include('admin.products.partials.variant-row', ['index' => $index, 'variant' => $variant]) @endforeach
@error('variants')

{{ $message }}

@enderror @foreach ($errors->get('variants.*') as $messages) @foreach ($messages as $message)

{{ $message }}

@endforeach @endforeach
Checkout Data

Field Checkout Tambahan

Tambahkan data khusus yang wajib diisi customer untuk produk selain Robux.

@foreach ($checkoutRows as $index => $field) @include('admin.products.partials.checkout-field-row', ['index' => $index, 'field' => $field]) @endforeach
@error('checkout_fields')

{{ $message }}

@enderror @foreach ($errors->get('checkout_fields.*') as $messages) @foreach ($messages as $message)

{{ $message }}

@endforeach @endforeach