@extends('layouts.admin') @section('content') {{ Aire::open()->route('products.update', $product)->bind($product)->enctype('multipart/form-data')}}

{{ $product->name }}

Ver

Información

{{ Aire::input('name', "Nombre")->groupClass('col-span-3') }} {{ Aire::input('slug', "Slug")->groupClass('col-span-3') }} {{ Aire::input('sku', "SKU")->groupClass('col-span-3') }} @php $discount_on = $product->finalPrice['discount_on']; $discount = $product->finalPrice['discount']; @endphp {{ Aire::input('price', "Precio")->groupClass('col-span-3')->helpText( $discount_on ? "Descuento del {$discount}% aplicado en {$discount_on}" : "Sin descuento" ) }} {{ Aire::input('delivery_days', "Tiempo de entrega")->helpText('Días')->groupClass('col-span-3') }} {{ Aire::input('quantity_min', "Cantidad mínima")->groupClass('col-span-3') }} {{ Aire::input('quantity_max', "Cantidad maxima")->helpText('Si esta en cero no hay límite')->groupClass('col-span-3') }} {{ Aire::input('safety_stock', 'Stock de seguridad')->type('number')->min(0)->helpText('Nivel mínimo de inventario permitido por producto')->groupClass('col-span-3') }}
{{ Aire::hidden('inventory_opt_out')->value(0)}}
@if(!$product->is_combined) {{Aire::select($variations, 'variation_id', "Variación")->groupClass('col-span-3')}} @endif {{ Aire::select(['percentage' => 'Porcentaje (%)', 'fixed_amount' => 'Valor Fijo ($)'], 'discount_type', 'Tipo de Descuento')->groupClass('col-span-2') }} {{Aire::input('discount', 'Valor del Descuento')->id('discount')->min(0)->step(0.01)->groupClass('col-span-2')}}
{{ Aire::hidden('first_purchase_only')->value(0)}}
{{Aire::input('package_quantity', 'Cantidad por Empaque')->id('package_quantity')->groupClass('col-span-3')}} {{Aire::input('step', 'Steps')->min(1)->max(100)->groupClass('col-span-3')->helpText('Salto de cantidad para el precio')}}
{{ Aire::hidden('calculate_package_price')->value(0)}}

Cuando está desactivado, el empaque se trata como 1 unidad en el procesamiento de órdenes

{{ Aire::textarea('short_description', "")->id('sort_description')->rows(3)->groupClass('mb-0')->helpText('Descripción breve para listados de productos') }}
{{ Aire::hidden('active')->value(0)}}
@includeWhen($product->variation, 'products.variations', ['product' => $product])

{{ Aire::submit('Actualizar')->variant()->submit() }} Cancelar

{{-- Inventory overview --}}

Inventario por bodega

@php $inventories = $product->inventories ?? collect(); @endphp @if($inventories->count() === 0)

Sin registros de inventario.

@else
@foreach($inventories as $inv)
Bodega
{{ $inv->bodega_code }}
Disponible
{{ (int) $inv->available }}
Reservado
{{ (int) $inv->reserved }}
Físico
{{ (int) $inv->physical }}
@endforeach
@endif

Productos Relacionados

Marca

{{Aire::select($brands, 'brand_id')}}

Impuesto

{{Aire::select($taxes, 'tax_id')}}

Bonificacion

{{Aire::select($bonifications, 'bonification_id')->value(old('bonification_id', $product->bonifications->first()?->id))}}
{{ Aire::close() }} @includeWhen($product->is_combined, 'products.combinations', ['product' => $product, 'products' => $products])

Imagenes

@php $imagesPayload = $product->images->map(function ($img) use ($product) { return [ 'id' => $img->id, 'url' => asset('storage/'.$img->path), 'delete_url' => route('products.images_delete', [$product, $img]), ]; })->values()->all(); @endphp
{{ Aire::open()->route('products.images', $product)->bind($product)->enctype('multipart/form-data')}}

Imagenes

Puede seleccionar múltiples archivos (máx. 4MB cada uno)

{{ Aire::submit('Agregar')->variant()->submit() }}
{{ Aire::close() }}
@endsection @section('scripts') @endsection