@extends('layouts.admin') @section('title', 'Editar Método de Envío') @section('content')

Editar Método de Envío

Actualiza la información del método de envío

@if(session('success'))
{{ session('success') }}
@endif
{{ Aire::open()->route('shipping-methods.update', $shippingMethod)->bind($shippingMethod)->put() }}

Información del Método

{{ Aire::input('name', 'Nombre')->groupClass('col-span-6')->helpText('Nombre que verán los clientes') }} {{ Aire::textarea('description', 'Descripción')->rows(3)->groupClass('col-span-6')->helpText('Descripción breve del método de envío') }} {{ Aire::input('sort_order', 'Orden de visualización')->type('number')->groupClass('col-span-3')->helpText('Número más bajo aparece primero') }}
{{ Aire::checkbox('enabled', 'Habilitado')->value(1) }} Si está deshabilitado, no aparece en ninguna ciudad.
{{ Aire::checkbox('restrict_cities', 'Limitar a ciudades seleccionadas (piloto)')->value(1) }} Recomendado para Entrega Especial: solo las ciudades que actives abajo lo verán. Cambiar este modo limpia la lista de ciudades para no mezclar reglas.

{{ Aire::submit('Guardar método')->variant()->submit() }} Volver

{{ Aire::close() }}

Disponibilidad por ciudad

Cada ciudad se activa o desactiva sola. Guardar una ciudad no reescribe las demás. @if($shippingMethod->restrict_cities) Modo actual: piloto / allowlist — off por defecto; marca solo las ciudades del piloto. @else Modo actual: global / opt-out — on por defecto; desactiva solo las que quieras excluir. @endif

@forelse($cities as $city) @php($isOn = $shippingMethod->restrict_cities ? ($cityEnabled[$city->id] ?? false) : ($cityEnabled[$city->id] ?? true))
{{ $city->name }}
{{ $city->state?->name }} · id {{ $city->id }}
@if($isOn) ON @else OFF @endif
@csrf @method('PATCH')
@if($shippingMethod->code === 'express') Diagnosticar @endif
@empty

No hay ciudades registradas.

@endforelse

Detalles

Código
{{ $shippingMethod->code }}
Modo ciudades
@if($shippingMethod->restrict_cities) Piloto (solo seleccionadas) @else Global (con exclusiones) @endif
Estado actual
@if($shippingMethod->enabled) Habilitado @else Deshabilitado @endif
Última actualización
{{ $shippingMethod->updated_at->format('d/m/Y H:i') }}
@if($shippingMethod->code === 'express')

Diagnóstico Entrega Especial

Checklist explícito de por qué se muestra u oculta para una ciudad (env, setting, método, ciudad, zona).

@if($diagnosis)

{{ $diagnosis['visible'] ? 'VISIBLE en carrito' : 'OCULTO en carrito' }} @if($diagnosis['city_name']) · {{ $diagnosis['city_name'] }} @endif

Modo: {{ $diagnosis['mode'] }}

    @foreach($diagnosis['checks'] as $check)
  • {{ $check['ok'] ? '✓' : '✗' }}
    {{ $check['label'] }}
    {{ $check['detail'] }}
    {{ $check['key'] }}
  • @endforeach

API: GET {{ route('shipping-methods.diagnose-express') }}?city_id={{ $diagnoseCityId }}

@endif
@endif

Sin efectos colaterales

Usa “Activar/Desactivar solo esta” por ciudad. No uses un guardado masivo de checkboxes: eso era lo que podía alterar otras ciudades sin querer.

@endsection