@props(['product']) @php($img = $product->primaryImage()) @php($undeliverable = app(\App\Services\Geo\DeliveryScope::class)->blocksProduct($product)) @php($onSale = $product->onSale()) @php($price = $onSale ? $product->salePrice() : (float) $product->price) @php($old = $onSale ? (float) $product->price : ($product->old_price ? (float) $product->old_price : null)) @php($fmt = fn ($v) => number_format((float) $v, 0, '.', ' ').' ₽') @php($seller = $product->seller) {{-- Карточка по UI-kit (tmp/design/redesign-2026, ProductCard): цена первой и самой жирной → название в две строки → рейтинг продавца + продавец → «В корзину» прижата к низу. Вся карточка — ссылка на товар; кнопка лежит поверх ссылки и в переход не превращается. --}}
{{-- Фото показывается целиком (object-contain), а не обрезается по квадрату. Товары приходят из чужих выгрузок в любой ориентации: у вертикальной бутылки при кропе оставалась середина этикетки, и понять, что это за товар, было нельзя. Отсюда же белый фон вместо серого — поля по бокам не должны выглядеть рамкой. --}}
@if ($img) {{ $product->title }} @else @endif @if ($onSale) −{{ $product->discount_percent }}% @endif
{{ $fmt($price) }} @if ($old) {{ $fmt($old) }} @endif
{{ $product->title }} {{-- Рейтинг у нас — рейтинг продавца по отзывам на заказы; пока отзывов нет, звезды не рисуем, чтобы не выдумывать оценку. --}}
@if ($seller && $seller->reviews_count > 0) ★ {{ number_format($seller->rating_avg, 1) }} · {{ $seller->public_name }} @else {{ $seller?->public_name }} @endif
@if ($undeliverable) Не доставляется в ваш город @else {{-- Кнопка скрыта, когда продавец не везёт в город покупателя. --}} @endif