AskMe разработал для Print Market индивидуальную систему автоматизации бизнеса, чтобы решить практическую e-commerce задачу: как работать с большим каталогом поставщика без ручного копирования товаров, цен, остатков, изображений и параметров печати в Shopify.
Проект был создан как отдельный сервис ANDA Shopify Sync. Он связывает персонализированные фиды поставщика ANDA Present с интернет-магазином Print Market на Shopify и дает команде контролируемый способ импортировать, просматривать, выбирать и публиковать товары поставщика.
Система импортирует несколько XML-фидов: товары, цены, остатки, категории, данные маркировки, индивидуальные цены печати для товаров и цены технологий печати. Вместо того чтобы слепо загружать все в Shopify, данные сначала обрабатываются и сохраняются в локальной базе SQLite в режиме WAL. Это создает стабильный рабочий слой между API поставщика и интернет-магазином.
В закрытой админ-панели команда Print Market может искать товары, фильтровать их по категориям, выбирать отдельные позиции или целые страницы, смотреть историю импортов и управлять настройками синхронизации. Админка также включает смену пароля, Basic Auth-защиту, историю задач и механизмы, которые не дают запускать несколько импортов или синхронизаций одновременно.
Для интеграции с Shopify система использует Shopify Admin API и логику productSet. Выбранные товары могут создаваться в Shopify с вариантами, изображениями, рассчитанными ценами, остатками, опциями товара и техническими metafields. Новые товары готовятся безопасно: сначала они могут создаваться как черновики, а активируются и публикуются только те позиции, по которым есть достаточный доступный остаток для заказа.
Для проекта был создан отдельный ценовой слой. Он рассчитывает продажные цены на основе закупочной цены поставщика, правил наценки, веса товара, правил входящей доставки, наценки на доставку и диапазонов количества. Для промопродукции это особенно важно, потому что финальная цена для клиента зависит не только от пустого товара, но и от количества, стартовых расходов, метода печати и логики доставки.
Страницы товаров Shopify также получили отдельный ANDA-шаблон и кастомный скрипт ценообразования. Витрина может показывать цену за единицу, общую сумму с НДС для выбранного количества, минимальное количество заказа и локализованные подписи к ценам. Данные ценообразования сохраняются в Shopify metafields, чтобы витрина и логика корзины использовали одну и ту же структурированную информацию.
Автоматический перевод реализован через Microsoft Azure Translator. Названия, описания и другой товарный контент могут переводиться с английского на дополнительные языки витрины. Система использует кеш переводов, поэтому повторные переводы не оплачиваются второй раз, а одинаковые тексты используются последовательно. Перевод запускается после того, как Shopify принял товар, поэтому временная ошибка переводчика не заставляет повторять всю синхронизацию товара.
Проект также включает обработку изображений. Изображения берутся с URL поставщика, главное изображение может нормализоваться в чистое белое полотно 800 на 600 для загрузки в Shopify, а временные файлы удаляются с сервера после завершения обработки Shopify. Это сохраняет сервер чище и не создает лишнего накопления файлов.
Кроме синхронизации каталога, мы добавили Shopify app-proxy сценарий для загрузки клиентских файлов к запросам на услуги. Он поддерживает staged upload targets, проверку файлов, подписанное подтверждение загрузки, регистрацию файлов в Shopify Files и удаление из админки. Это дает Print Market более безопасный способ принимать клиентские файлы для печати без открытия внутренней админ-системы.
Технически проект использует TypeScript, Fastify, SQLite, Zod validation, потоковый XML-парсинг через saxes, Sharp для обработки изображений, Microsoft Azure Translator, Shopify Admin GraphQL API, Shopify metafields, кастомизацию Shopify theme, Shopify Function extension для bundle-style pricing logic, Docker Compose и Nginx deployment.
Результат — это не просто интеграция, а полноценный слой бизнес-автоматизации. Print Market может значительно быстрее расширять каталог, уменьшать ручную работу, избегать повторного copy-paste, контролировать остатки и цены поставщика, готовить многоязычный контент товаров и публиковать товары в Shopify через структурированный процесс подтверждения.
