Демо-стенд · OpenCart 3 · женская одежда

Розница, опт и акция в одной цене — и корзина, которая не врёт при пересчёте

Самый ломкий пункт такого ТЗ — не дизайн, а цена. Одна и та же позиция должна показывать акционную цену со старой перечёркнутой, оптовую при количестве от 2, и всё это одинаково в каталоге, в карточке, в корзине и в оформлении. Ниже — работающая модель этой логики: меняйте количество и правило опта, страница считает и пишет каждый пересчёт в журнал.

розница / опт / акция пересчёт при +/− и удалении RU + UA версии упрощённый checkout Новая Почта: город + отделение мобильная вёрстка

Управление стендом

Правило оптовой цены
В ТЗ формулировка «при покупке двух и более подходящих товаров» читается двумя способами. Стенд умеет оба — переключите и посмотрите на журнал: цифры меняются по-разному.
Версия сайта
Переключение меняет тексты и ЧПУ-адрес позиции — под требование «корректная работа украинской и русской версий», включая уникальность URL.
ЧПУ текущей позиции
/ru/plate-midi-lina-1024
Адрес генерируется из названия при сохранении товара, префикс языка отдельный — так дубли не появляются.

Оформление заказа

Обязательных полей четыре: имя, телефон, город, отделение. Всё остальное убрано — e-mail, отчество, адрес, комментарий, повторный ввод телефона.
Доставка: Новая Почта
    В стенде справочник статический, на боевом сайте города и отделения тянутся из API перевозчика и сохраняются в заказ и в админку. ТТН на сайте не создаётся — по ТЗ это не нужно.
    Кнопка ничего не отправляет: стенд работает только в вашем браузере, без запросов наружу.
    LCP этой страницы, замер в вашем браузере
    1
    HTTP-запрос на отрисовку
    0 КБ
    сторонних библиотек: jQuery, слайдеры, шрифты
    узлов DOM в каталоге и корзине