@extends('layouts.admin') @section('content') @php($productTypes = [ 'shrimp' => 'Shrimp', 'neocaridina' => 'Neocaridina', 'caridina' => 'Caridina', 'snails' => 'Snails', 'plants' => 'Plants', 'aquariums' => 'Aquariums', 'accessories' => 'Accessories', 'food' => 'Food', 'treatments' => 'Treatments', 'decor' => 'Decor', 'spares' => 'Spares', ]) @php($difficultyLevels = [ 'Beginner', 'Beginner-friendly', 'Intermediate', 'Advanced', 'Expert', ]) @php($selectedDifficulty = old('difficulty_level', $product->difficulty_level)) @php($selectedProductType = old('product_type', $product->product_type)) @php($selectedCategoryId = (int) old('category_id', $product->category_id)) @php($selectedCategory = $categories->firstWhere('id', $selectedCategoryId)) @php($selectedCategorySlug = $selectedCategory?->slug) @php($usesProfileFields = in_array($selectedProductType, ['shrimp', 'neocaridina', 'caridina', 'snails'], true)) @php($usesLivestockFields = in_array($selectedProductType, ['shrimp', 'neocaridina', 'caridina', 'snails'], true)) @php($usesDifficultyFields = $usesProfileFields || $selectedCategorySlug === 'live-plants') @php($usesDimensions = ! in_array($selectedProductType, ['shrimp', 'neocaridina', 'caridina', 'snails', 'starter_kits'], true)) @php($forcesNonReturnable = old('is_live_stock', $product->is_live_stock) || $selectedProductType === 'plants') @php($isStarterKit = old('product_type', $product->product_type) === 'starter_kits') @php($autoDefaultCompatibilities = $usesProfileFields && empty(old('compatibility_levels')) && empty($compatibilityMap)) @php($selectedKitProducts = collect(old('kit_products', $product->meta['kit_product_ids'] ?? []))->map(fn ($id) => (int) $id)->all()) @php($groupedCategories = $categories->groupBy(fn ($category) => $category->parent?->name ?? $category->name)) @if($selectedProductType === 'starter_kits') @php($productTypes['starter_kits'] = 'Starter Kits') @endif @once @push('styles') @endpush @endonce

{{ $product->exists ? 'Edit product' : 'Create product' }}

Catalogue, livestock data, compatibility guidance, and media are all managed from here.
@if($product->exists)
@csrf @method('DELETE')
@endif
@csrf @if($product->exists) @method('PUT') @endif
Core product details
Auto generates, but can be modified.
Auto generates, but can be modified.
is_visible ?? true))>
is_featured))>
is_live_stock))>
allow_backorders))>
requires_hot_pack))>
Maximum 4 featured products can appear on the homepage.
Descriptions and care content
HTML is allowed here. Use the toolbar for quick formatting like line breaks and bullet lists.
Supports basic HTML. Frontend output now keeps your paragraphs, lists, and line breaks.
Product images
Upload new images here. Existing image management is shown below once the product has been saved.
Back to products
@if($product->exists && $product->images->count())
Existing uploaded images
Sort order controls gallery position, and the primary image is the main storefront photo.
@foreach($product->images as $image)
{{ $image->alt_text }}
@csrf @method('PUT')
is_primary)>
@csrf @method('DELETE')
@endforeach
@endif @endsection @push('scripts') @endpush