[Из песочницы] Миграция данных между различными E-commerce движками
Проблема На сегодня существует более трехсот различных движков для интернет-магазинов, с разным функционалом, возможностями, стоимостью, способом установки. Как правило, это набор скриптов, которые разворачиваются на хостинге (практически установка сайта), чаще всего PHP + MySQL. В последнее время все большую нишу на рынке E-сommerce платформ занимают так называемые хостед платформы (hosted shopping carts). Это значит, что, зарегистрировавшись на сайте того же Shopify, в несколько кликов вы сможете получить триальный стор (store), который хостится на самом Shopify. Триального периода да и лимитированного функционала, как правило, вполне достаточно для проверки возможностей карты. Кроме того, такое решение конечно же снимает головную боль, связанную с арендой собственного хостинга, установкой движка и всех необходимых карте РНР-модулей и т. д. Все уже развернуто, как говорится, плати и пользуйся. В результате разные платформы — это разные способы достучаться к данным магазина. Если у open source карты («не хостед») можно получить доступ непосредственно к базе данных, то SaaS-решения такой возможности не дают. Альтернативными вариантами могут быть доступ через API запросы (и очень хорошо, если платформа позволяет получить все необходимые данные таким способом, потому что иногда разработчики попросту не добавляют все методы работы с той или иной сущностью) или экспорт/импорт данных с помощью файлов (CSV, XML, txt, dat, xls и другие форматы в зависимости от движка). Последний метод поддерживается практически всеми платформами (хотя у каждой возможны свои ограничения) и упрощает миграцию между одинаковыми картами. Но когда нужно переехать с магазина на базе osCommerce, который существует и функционирует уже не первый год, на свежую версию Magento или BigCommerce, задача значительно усложняется. Для разработчика, перед которым поставлена такая цель, есть два возможных пути ее решения: использовать готовый инструмент для автоматической миграции; если предыдущий вариант не может удовлетворить все требования — искать/разрабатывать собственное решение: модуль или отдельный скрипт, который хотя бы изменит формат файла, экспортированного со старой платформы для импорта в новую (если платформы поддерживают работу с файлами). Конечно же, можно вручную вносить данные в новую платформу через админ-панель, но когда количество продуктов и/или пользователей измеряется трехзначными числами, такой вариант перестает быть вариантом :) Поэтому рассмотрим 2 первых кейса. Читать дальше →