Типовой движок интернет-магазина не умеет продавать линолеум. Цена указана за квадратный метр, у одного артикула несколько ширин рулона, у оптовика своя цена, а прайс поставщика приходит сразу на коллекцию. Если всё это считать вручную, менеджер правит цены по одной позиции, ошибается в опте и рискует продать ниже допустимого. Lino это магазин, в котором эту арифметику взяла на себя система.

Lino продаёт напольные покрытия: линолеум, ламинат, паркет, ковролин. Магазин собран на ECOCOM, нашей платформе для электронной коммерции, и доработан под товар, который продаётся не штуками, а метрами с рулона. Покупатель сразу видит привычную витрину: поиск, корзину, избранное, сравнение, переключение языка и валюты.

Задача
Магазином пользуются две группы людей. Розничный покупатель хочет выбрать ширину, увидеть цену и заказать нужный метраж. Оптовик ждёт свою цену, а менеджеру нужно управлять ценами и остатками целыми категориями, не открывая каждую карточку.

Требования второго этапа заказчик сформулировал сам, и на них хорошо видна специфика отрасли:
- шесть типов цен: закупка, супер-опт, опт, розница, стоп-цена для розницы и стоп-цена для опта;
- прайсы поставщиков приходят на коллекцию, а у линолеума и ковролина цены внутри коллекции различаются только шириной;
- опт «от рулона» подходит линолеуму, но не подходит ламинату и паркету, поэтому для ламината опт начинается от 100 м²;
- стоп-цену удобно отталкивать от закупки, если закупочная цена заполнена;
- выгрузка из 1С 8.3 «Управление торговлей» с учётом по сериям: новые товары и остатки, без описаний и картинок.
Как устроено внутри
Карточка: ширина рулона и цена за м²
В карточке покупатель выбирает ширину рулона и видит цену за квадратный метр в рознице и оптом от рулона. В корзине количество дробное, с двумя знаками после запятой: 17,4 м² здесь нормальный заказ, а не ошибка ввода. Стоп-цены работают как нижняя граница: ниже них продавать нельзя, даже если менеджер даёт скидку.

Порядок выдачи и хиты
Во всех выборках товары в наличии идут раньше товаров под заказ, чтобы покупатель не тратил время на позиции, которых нет на складе. Хиты продаж получают плашку «ХИТ» на главной и в каталоге.


Админка и правка цен с витрины
Администратор, войдя в систему, работает прямо с витрины: видит остатки и закупочные цены, меняет цены целой категории с учётом ширины и закупки, правит SEO-мета, H1 и артикул. Типичная ситуация: поставщик прислал новый прайс на коллекцию. Менеджер меняет цену категории с витрины с учётом ширин, и позиции коллекции обновляются разом, без десятков ручных правок.
В панели ECOCOM есть таблица товаров с фильтрами, массовым редактированием и правкой поля прямо в строке. В колонках видны ширина, цена покупки и валюта закупки. Карточка товара разбита на вкладки: характеристики, связанные товары, скидки, изображения, варианты. Заказы показывают клиента, статус, сумму, способ доставки и оплаты, адрес. Рассылку всем клиентам собирают в визуальном редакторе.





Микроразметка
Чтобы карточки красиво выглядели в поиске, проверяли разметку schema.org (Product, Organization, LocalBusiness) в инструменте Google: документация Google по структурированным данным. Как такая работа встраивается в развитие продукта, описано в материале о SEO-оптимизации.

Перенос данных
Самая скучная и самая коварная часть. Данные заказчика лежали в другой структуре: производитель и бренд в одной таблице, у них price и purchase_price, у нас price и buy_price, а стоп-цены и супер-опт везде пустые. Каждое такое поле разбирали отдельно и заодно сняли лишние ограничения NOT NULL, чтобы импорт не падал на пустых значениях. Ошибка в сопоставлении полей здесь означала бы неверные цены на витрине, поэтому соответствие проверяли поле за полем вместе с заказчиком.


Технологии
Платформа ECOCOM написана на PHP и Yii2 (на скриншотах видна панель отладки Yii), база MySQL. Одна админка обслуживает несколько языков, валют и магазинов. Задачи вели на доске, где у каждой есть скриншот и обсуждение с заказчиком, поэтому любое решение по ценам можно поднять и проверить.
Как такой магазин внедряется у клиента
- Консультация и модель. Разбираем, как Вы считаете цены, опт и скидки, и показываем модель будущего магазина. Подробнее об этапе консультации и моделирования.
- Техническое задание. Фиксируем типы цен, единицы измерения, точность количества и границы стоп-цен, как в ТЗ Lino выше. Об этом этап технического задания.
- Платформа и доработки. Типовое (каталог, корзина, заказы, рассылки) берём из ECOCOM, доработки делаем там, где у бизнеса настоящая специфика.
- Данные и учёт. Переносим каталог со сверкой полей и подключаем учётную систему. Про обмен с 1С и другими сервисами в статье об интеграциях.
От клиента нужны прайсы поставщиков, правила оптовых цен и скидок, доступ к старой базе и человек, который отвечает за учёт. Честная граница: в кейсе описаны требования и экраны, которые мы можем показать, а состав работ под Ваш ассортимент определяется на консультации.
Где ещё это применимо
- стройматериалы и любой товар в метрах, квадратах и рулонах, как у поставщика стройматериалов в Opora ERP;
- мебель с составными товарами и вариантами обивки, как в кейсе Carveli;
- ювелирные изделия с вариантами металла, камней и размера, как в кейсе Guzema.
Если Ваш товар не укладывается в «штуку по цене», запишитесь на бесплатную консультацию с архитектором. После неё Вы получите расчёт цены и сроков по этапам.
Где посмотреть
Публичного адреса у магазина сейчас нет, ссылку не даём. Админку ECOCOM показываем на встрече.