Waistline. Интернет магазин

Интернет магазин специализирующийся на тематике корсетов и других корректирующее тело продуктах.
Изначально интернет магазин уже существовал на платформе https://taplink.ru. Неплохая платформа с готовым функционалом. Но клиент пожелал полноценный сайт по аналогии с магазbном, который им нравился. Он был на битриксе. Я с битриксом не работаю, поэтому предложили Woocommerce.
Столкнулись со сложной ситуацией. Я не имел большого опыта в ИМ разработке. Мы выбрали шаблон под вукоммерс. Но открыв код и тему, я понял, что не смогу с этим работать. Тема была сделана на конструкторе и перегружена излишками неиспользуемого кода и избытком админки.
Интерфейс для конструктора, интерфейс для настройки темы + к этому интерфейс фукомерса, фильтров и плагином. Все это котел неконтролируемого кода, раскиданного везде и что хуже в базе данных.
Я чуть было не отказался от проекта. Но волевым решением попытался адаптировать код вукомерса под нужды не использую конструктор, ненужные плагины и излишки вукомерса. Взял чистую тему и начал ее дорабатывать. А верстальщику поставили задачу перенести верстку из шаблона, так же успростив структуру и излишки html.
Переработка основного функцонала вукомерс.
Сложность состояла в том, что архитектура Вордпресс и Вукомерс построена на хуках. Мне не понятна эта архитектура, она не столь гибкая и в ней нет компонентного MVC подхода. В корпоративных сайтах я не использую хуки. С магазином посложнее. Функционала много, много логики завязано. Тем не менее я переработал, упростил, сделал компонентно подобные структуры для:
- Каталог
- Фильтрация. Категрии, цена, цвет, размер.
- Пагинация
- Мини карточка товара
- Карточка товара
- Галлерея
- Ajax добавление простого и вариативного товара в корзины
- Валидация вариаций и остатков
- Кастомное отображение атрибутов цвета размера
- Кастомная доработка отзывов
- Кастомная дополнительная информация
- Ajax мини корзина
- Вишлист функционал



И много других нюансов.
Так же помимо этого не полностью, но значительно доработаны страницы: Корзины, Чекаута и Админка клиента.

Для страницы чекаута были доработаны поля и верстка всех блоков. Валидация полей в зависимости от типа доставки. Добавлены сами типы доставки:

- сдек (был подключен платный плагин, для доставки для ПВЗ доработана некоторая верстка для выбора из селекта и на карте)
- почта россии
- самовывоз
- заграницу
Контентные части сайта были вынесены в блоки Lazy Block.
Так же был реализован простой мини блок.

Интеграции
Их было несколько.
Retail CRM.
Очень сложный кусок разработки. Я не хотел использовать плагин. Плагины вордпресс - это отдельная тема. С одной стороны есть хорошие действительно упрощающие жизнь, а есть такие, функционал которых ты не контролируешь используешь то, что есть и ни на йоту больше. Не говоря о платности расширенных возможностей, которых так же может не хватать как и гибкости их реализации.
Тут важная часть системы, которую бы хотелость контролировать полностью. Плагин - черный ящик. Работает - хорошо, не работает - пиши разработчику или гадай. Я немного попробовал плагин, мне не понравилось, я решил все сделать используя php api клиент и api retail crm.
Некоторая сложность была в том, чтобы разобраться какие поля и в каком формате для чего передавать. Просто полей было под 50+. В документации была информация, но не чтобы исчерпывающая. А на просторах интернета про Ретейл Црм не так много как хотелось. Поэтому большая часть работы состояла в личном экспериментирование и выяснение работы полей.
Так было сделано:
- синхронизация товаров по их артикулу (синхронизация цены, остатков, габаритов)
- отправление товара в ЦРМ из заказов вукомерс
Для еще большего контроля сделал свою системы логов. Где наглядно показывались статусы работы интеграции и ошибки.


Robokassa
Для оплаты была подключена робокасса. Подключение не составило труда, разве что кроме самого кабинета робокассы и активация магазина. Сделал два аккаунта: собственно для прод сайта и для тестового домена
СДЭК
Был подключен и настроен плагин сдека. Номер отправления сохраняется в админке, передается в письме, а так же отправляется в Retail CRM. Было сделано два типа доставки: курьером до адреса и до ПВЗ, с возможностью выбора точки на карте.
Почта россии
По аналогии со СДЭК подключил и настроил плагин. Так трекномер попадал в админку и црм. Был реализован стандартный способ доставки по адресу с автоматическим выбором ПВЗ на строне кабинета почты.
Unisender

Система подписок. Был выбран юнисендер. Так же настроил форму через API. Добавил автоматизацию на отправку купона при регистрации. Так как для юнисендер, так и для всего сайта настроил SMTP mail.ru почты.
