Магазин для аквариумистов и клуб любителей при нём получили обновлённый сайт на Joomla!: каталог переехал в JoomShopping, профили и фотоальбомы участников остались на месте, оплата идёт через российский платёжный агрегатор с чеками по 54-ФЗ. Над сайтом работал Евгений Росляков. Магазины и сайты он делает с 2016 года, принимает заказы в Москве и удалённо. Работает как самозанятый, подписывает договор, юридическим лицам выдаёт закрывающие документы.
Магазин продаёт фильтры, грунт, корма, лампы и растения. Много лет при нём живёт клуб: форум, где спорят про креветок и CO₂, и альбомы, где люди показывают свои аквариумы. Для владельцев это главная ценность, ради клуба покупатели возвращаются.
Сайт держался на старой Joomla! с VirtueMart. Страницы открывались медленно, обновления не ставили, потому что после каждого что-нибудь ломалось. Бояться было чего: неосторожно тронешь базу, и клуб пропадёт вместе с историей.
Задача звучала так: создание сайта на новой основе, где ни один профиль и ни одно фото участников не потеряется.
Сначала сделал копию сайта на тестовом адресе. Все работы шли на ней, а боевой магазин продолжал принимать заказы.
Joomla! обновил до поддерживаемой версии, убрал расширения, которыми никто не пользовался, остальные подтянул до совместимых. Страницы стали открываться заметно быстрее уже на этом шаге.
Каталог из VirtueMart решил переносить в JoomShopping. У магазина много товаров с вариантами: фильтр на 200 или 500 литров, грунт в мешке на 3 или 9 килограммов, лампа разной длины. В JoomShopping атрибуты и цены под каждый вариант настраиваются проще, и каталог работает быстрее. Товары, категории, фотографии и историю заказов перенёс скриптом. Потом вручную проверил выборку из сотни позиций и десяток старых заказов.
Клуб остался на JomSocial. Профили, альбомы, друзей и сообщения я не трогал, поменял только оформление, чтобы форум и магазин выглядели одним сайтом. Профиль клуба связал с покупками: на личной странице появилась вкладка «Мои заказы», а в карточке товара рядом с отзывами покупателей стоит ссылка на альбомы участников, у которых этот товар есть.
Обработка платежей — отдельный блок работы. Подключил российский платёжный агрегатор: оплата картой и через СБП. Чек по 54-ФЗ уходит покупателю автоматически, а в заказе виден статус оплаты: ожидает, оплачен, возврат. Менеджер перестал сверять оплату вручную по выписке.
Боевой сайт переключили ночью, когда заказов почти нет.
Магазин быстрее открывается, и обновления теперь ставятся без страха: сначала на тестовой копии, потом на боевом сайте. Покупатель видит каталог с понятным выбором объёма и размера, менеджер — оплаченные заказы сразу в списке, без сверки с банком. Статусы оплаты и возвраты тоже видны в самом заказе.
Клуб остался целым. Участники зашли под прежними логинами и нашли свои альбомы и переписки, а связка профиля с заказами пока используется осторожно: владельцы смотрят, как ею пользуются люди, и решают, что добавлять.
Не всё удалось перенести идеально. Часть старых заказов из VirtueMart лежит в архиве в упрощённом виде: статусы там сведены к основным, а некоторые служебные поля потерялись. Для бухгалтерии это не помеха, историю покупок покупатели видят полностью. Дальше владельцы хотят добавить в клуб раздел объявлений «отдам рыбок», и теперь есть на чём это строить.
Если у вас магазин или сообщество на старой Joomla! и страшно что-то трогать, напишите мне на freelance.ru, что на сайте нельзя потерять. С этого списка я начинаю план переезда.