{{-- Цена товара: итог, зачёркнутая база и процент скидки. Отдельным включением, а не четырьмя копиями по шаблонам: скидка обязана выглядеть одинаково в плитке, таблице, блоке и карточке. Разойдись разметка — и половина мест молча осталась бы без зачёркнутой цены. $price — ResolvedPrice|null, уже со скидкой внутри $currency — суффикс валюты $class — класс места («kz-card__price»), необязателен $none — что писать вместо цены, когда её нет; null — не писать ничего --}} @php $class = $class ?? null; $none = $none ?? null; @endphp @if ($price === null) @if ($none !== null) {{-- array_filter: без него незаданный класс места даёт пустой хвост в атрибуте, и разметка мусорится на каждой карточке. --}} {{ $none }} @endif @else $price->hasDiscount(), $class]))> {{ number_format($price->value, 2, ',', ' ') }} {{ $currency }} @if ($price->hasDiscount()) {{-- Зачёркнутая цена — не украшение: без неё скидка не видна вовсе, а с ней покупатель понимает, что именно он экономит. --}} {{ number_format($price->base, 2, ',', ' ') }} {{ $currency }} −{{ rtrim(rtrim(number_format($price->percent, 2, ',', ''), '0'), ',') }}% @endif @endif