💳 pbShop
pbShop — магазин для сайтов на PageBlocks 3.x: товары (они же тарифы и услуги) с опциями и вариантами, категории, остатки, корзина, доставка, заказы, цены в нескольких валютах, оплаты и подписки.
📖 Документация pbShop живёт на своём сайте
pbshop.pageblocks.pro — быстрый старт для верстальщика, сервис и контроллеры для разработчика, справочник.
Эта страница отвечает только на один вопрос: нужен ли мне этот компонент. Как им пользоваться — написано там, и только там, чтобы эти два текста не могли разойтись.
Требует установленного PageBlocks: оттуда приходят таблицы и конструктор полей, маршрутизация, контроллеры, файловые шаблоны, миграции и шаблонизатор. Ничего из этого pbShop не изобретает заново — он приносит доменную логику магазина и два способа её звать: сниппет для верстальщика и сервис для разработчика.
⚙️ Что он делает
Каталог. Категории с вложенностью, товар сразу в нескольких категориях, ЧПУ с каноническим адресом, опции и характеристики, варианты со своей ценой, весом, остатком и артикулом, генератор вариантов, подбор по опциям, цена «от» у составного товара.
Корзина и оформление. Гостевая корзина по cookie, слияние с пользовательской при входе, промокоды, расчёт доставки под состав заказа, покупка в один клик, согласие на обработку данных, регистрация на оформлении через pbAuth.
Оплата. Пятнадцать драйверов из коробки — ЮKassa, Т‑Банк, CloudPayments, LiqPay, WayForPay, Fondy, Monobank, Portmone, Stripe, PayPal, maib, счёт на банковский перевод и другие — и возможность добавить свой. Подпись колбэка проверяет сам драйвер, сверку суммы сервис делает сверху.
Доставка. Расчёт у перевозчика для Новой Почты, СДЭК, Укрпошты и Почты России, с подбором отделения. Всё остальное — таблицей: цена на валюту, ступени по весу, бесплатно выше порога.
Заказы и подписки. Отдельной сущности «подписка» нет: это заказ с периодом, сроком, признаком автопродления и токеном привязки карты. Рекуррентные списания работают на шести драйверах.
Деньги. Суммы везде целые в минорных единицах — никаких дробных типов. Цены заданы на каждую валюту отдельно и по курсу не пересчитываются.
Чеки 54‑ФЗ. Шлюз бьёт чек сам, если умеет; для остальных путей прихода денег есть касса с очередью документов и ключом идемпотентности.
События. Компонент сообщает, что оплачено, а что это открывает — решает сайт, своими слушателями.
🚫 Чего он не делает
Вход и регистрацию — этим занимается pbAuth либо сам сайт.
Расписание. Продление подписок, снятие просроченных заказов, рассылку о поступлении и добор недопечатанных чеков зовёт крон магазина. Компонент даёт методы, но не решает, когда им сработать.