Создание сайта-магазина для коллекционеров марок и монет: пять накопившихся витрин собраны в один каталог на Zen Cart с описаниями состояния, редиректами со старых адресов и английской версией. Выполнил Евгений Росляков, который делает интернет-магазины с 2016 года. Он самозанятый, работает по договору, юрлицам выдаёт закрывающие документы. Живёт в Москве, с владельцем в Ереване работал удалённо.
Магазин торгует с 2000-х. Компания владельца зарегистрирована в Армении, покупатели — коллекционеры из России, США и Европы. За годы витрины множились сами собой: основной магазин на osCommerce образца 2008 года на старом PHP, отдельный Zen Cart для монет, раздел аукционов на Drupal с Ubercart, а для американцев витрины на Volusion и Yahoo Store, которые вёл партнёр в США.
Каждая жила своей жизнью. Одна и та же марка висела в трёх местах с разной ценой или уже была продана. Страницы открывались медленно, старый PHP не обновлялся, и чинить его никто не брался. Что действительно есть в наличии, знал только владелец, и то по памяти.
Задача: оставить одну витрину, не потеряв ни товары, ни покупателей, ни позиции в поиске.
Начал с аудита всех пяти витрин. Выгрузил каталоги и сравнил: что дублируется, где цены разошлись, какие позиции давно проданы. Реальных товаров оказалось заметно меньше, чем строк во всех базах вместе.
Основным движком выбрал Zen Cart на PHP 8. Причина в том, что Zen Cart вырос из osCommerce: структура таблиц, заказы и покупатели похожи, поэтому перенос идёт скриптом с проверкой, а не ручной сборкой. Монетная витрина и так работала на Zen Cart. Новые платформы привлекательнее, но под любую пришлось бы переписывать всё, включая поля для сохранности и каталожных номеров. Для магазина с давней базой клиентов и сложным каталогом это лишний риск.
Переносил по порядку:
— карточки товаров с описаниями состояния: сохранность, каталожные номера, примечания, фото;
— покупателей и историю заказов из osCommerce и Zen Cart; старые пароли Zen Cart принимает и при первом входе заменяет новыми хешами, так что человек входит в кабинет как раньше;
— лоты из раздела на Drupal с Ubercart: завершённые торги ушли в архив с ценами как справочник, действующие стали обычными товарами;
— старые адреса: для каждой страницы настроил редирект на новую, чтобы поиск и закладки покупателей не пропали.
Витрины Volusion и Yahoo Store закрыл по согласованию с партнёром в США. Зарубежные покупатели получили письмо со ссылкой на английскую версию сайта. Цены показываются в рублях и в долларах, интерфейс переключается на английский, шаблон адаптирован под телефон.
Скорость проверил на самых тяжёлых страницах каталога: поиск по каталожному номеру отвечает быстро.
Вместо пяти витрин одна. Владелец открывает админку и видит весь остаток: один товар, одна цена, одно состояние. Если позицию купили, она исчезает отовсюду сразу, а не через неделю, когда партнёр обновит свою таблицу.
Покупатели, в том числе из США и Европы, перешли без потерь: вход работает, история заказов на месте, старые ссылки с форумов коллекционеров ведут на нужные карточки. Американцы читают описание состояния на английском и не пользуются переводчиком.
Остались и неудобные моменты. Часть описаний в старых базах была неполной, и их пришлось дописывать вручную вместе с владельцем. На это ушло немало времени. Аукционный формат закрыт: поддерживать отдельный движок ради него не имело смысла, решение принял владелец. Zen Cart придётся обновлять, как любой движок, и это записано в план работ.
Дальше стоит добавить фильтры по стране и эпохе выпуска и подписку на поступления для тех, кто ищет редкие марки и монеты.
У вас несколько старых магазинов на разных движках, а нужен один рабочий? Пришлите на freelance.ru список витрин и примерный размер каталога. Скажу, что переносить в первую очередь.