@php $prices = app(\Korzilla\Modules\Site\Catalog\PriceResolver::class) ->resolveMany($items->pluck('id')->all()); $settings = app(\Korzilla\Core\Settings\SettingsRepository::class); $currency = $settings->string('catalog.currency_suffix', '₽'); $noPrice = $settings->string('catalog.no_price_label', 'Цена по запросу'); $purchase = app(\Korzilla\Modules\Site\Catalog\PurchaseActions::class); @endphp @php $facets = app(\Korzilla\Modules\Site\Catalog\FacetEngine::class)->forSection($section->id); $filterUrl = app(\Korzilla\Modules\Site\Catalog\CatalogFilterUrl::class); // Выбранные варианты берутся из адреса: ЧПУ-фильтр — это и есть состояние // страницы, а не украшение поверх строки запроса. $selected = $filterUrl->parse((string) request()->attributes->get('kz_path_tail', '')) ?? []; @endphp

{{ $heading ?? $section->name }}

@if ($facets !== []) {{-- Счётчики берутся из витрины и показываются как ориентир: сам список товаров всегда строится живым запросом. --}}
@foreach ($facets as $facet)
{{ $facet['name'] }}@if ($facet['unit']), {{ $facet['unit'] }}@endif @if ($facet['kind'] === 'number') @else @foreach ($facet['options'] as $option) @php $isOn = in_array($option['id'], $selected[$facet['id']] ?? [], true); // Ссылка ведёт в состояние «после клика»: выбранный // вариант снимается, невыбранный добавляется. $next = $selected; if ($isOn) { $next[$facet['id']] = array_values(array_diff($next[$facet['id']], [$option['id']])); } else { $next[$facet['id']][] = $option['id']; } @endphp {{ $option['value'] }} {{ $option['count'] }} @endforeach @endif
@endforeach
@endif @if ($items->isEmpty())

В этом разделе пока нет товаров.

@else
@foreach ($items as $item) @php($photo = $item->firstMedia('photo'))
@include('platform::partials.card-media', ['media' => $photo, 'alt' => $item->name])

{{ $item->name }}

@if ($item->article) Артикул: {{ $item->article }} @endif {{-- Цены на всю страницу подняты одним запросом выше. --}} @include('catalog::partials.price', [ 'price' => $prices[$item->id] ?? null, 'currency' => $currency, 'class' => 'kz-card__price', 'none' => $noPrice, ]) {{ $item->in_stock ? 'В наличии' : 'Под заказ' }} {{-- Кнопку рисует тот, кто умеет продавать: каталог только сообщает, каким способом покупается этот товар. Магазин выключен — товар просто без кнопки. --}}
{!! $purchase->render($item) !!}
@endforeach
@endif {{ $items->links() }}