Миграция интернет-магазина на Shopify
Shopify — SaaS-платформа с управляемой инфраструктурой. Миграция на Shopify означает перенос данных и отказ от собственного хостинга. Что получаете: надёжность, встроенный CDN, Shopify Payments, App Store. Что теряете: полный контроль над кодом, SQL-доступ к данным.
Что переносится на Shopify
- Товары (название, описание, цены, варианты, изображения, метаданные)
- Категории → Collections (ручные и автоматические)
- Клиенты (email, имя, адреса, история заказов)
- Заказы (для отчётности, не для активной обработки)
- Контент (блог, страницы)
- Редиректы (301 для SEO)
Инструменты миграции
Shopify Importer (встроенный) — поддерживает CSV-импорт товаров.
Matrixify (Excelify) — самый мощный инструмент ($20/месяц). Импортирует всё: товары, коллекции, клиентов, заказы, метафилды, редиректы через Excel/CSV.
LitExtension — платная миграция с поддержкой 50+ платформ (WooCommerce, Magento, PrestaShop, OpenCart).
CSV-импорт товаров
Shopify принимает CSV в строгом формате. Обязательные столбцы:
Handle,Title,Body (HTML),Vendor,Type,Tags,Published,Option1 Name,Option1 Value,Variant SKU,Variant Grams,Variant Inventory Tracker,Variant Inventory Qty,Variant Price,Variant Compare At Price,Image Src,Image Position,Image Alt Text,SEO Title,SEO Description
t-shirt-black,"Футболка чёрная","<p>Описание</p>","Brand","Одежда","футболка,акция","TRUE","Размер","S","SKU-001-S",200,"shopify",50,1500.00,,,https://cdn.example.com/image.jpg,1,"Футболка","SEO заголовок","SEO описание"
t-shirt-black,"Футболка чёрная","<p>Описание</p>","Brand","Одежда","футболка,акция","TRUE","Размер","M","SKU-001-M",200,"shopify",30,1500.00,,,,2,"",""
Для вариативных товаров: каждый вариант — отдельная строка с тем же Handle.
Скрипт экспорта из WooCommerce в Shopify CSV
import csv
import json
import mysql.connector
conn = mysql.connector.connect(host='localhost', user='root', password='pass', database='wordpress')
cursor = conn.cursor(dictionary=True)
cursor.execute("""
SELECT p.ID, p.post_title, p.post_content, p.post_status,
pm_price.meta_value as price,
pm_sku.meta_value as sku
FROM wp_posts p
LEFT JOIN wp_postmeta pm_price ON pm_price.post_id = p.ID AND pm_price.meta_key = '_price'
LEFT JOIN wp_postmeta pm_sku ON pm_sku.post_id = p.ID AND pm_sku.meta_key = '_sku'
WHERE p.post_type = 'product' AND p.post_status = 'publish'
""")
products = cursor.fetchall()
with open('shopify_import.csv', 'w', newline='', encoding='utf-8') as f:
writer = csv.DictWriter(f, fieldnames=[
'Handle', 'Title', 'Body (HTML)', 'Vendor', 'Published',
'Variant SKU', 'Variant Price', 'Variant Inventory Qty'
])
writer.writeheader()
for product in products:
handle = product['post_title'].lower().replace(' ', '-')
writer.writerow({
'Handle': handle,
'Title': product['post_title'],
'Body (HTML)': product['post_content'],
'Vendor': 'Default',
'Published': 'TRUE' if product['post_status'] == 'publish' else 'FALSE',
'Variant SKU': product['sku'] or '',
'Variant Price': product['price'] or '0',
'Variant Inventory Qty': '100',
})
API-миграция (Shopify Admin API)
import shopify
import requests
shopify.ShopifyResource.set_site(f"https://{API_KEY}:{API_SECRET}@{SHOP_NAME}.myshopify.com/admin/api/2024-01")
for product_data in source_products:
product = shopify.Product()
product.title = product_data['title']
product.body_html = product_data['description']
product.vendor = product_data['brand']
product.variants = [{
'sku': product_data['sku'],
'price': str(product_data['price']),
'inventory_quantity': product_data['stock'],
'inventory_management': 'shopify',
}]
product.save()
# Загрузить изображение
if product_data.get('image_url'):
image = shopify.Image({'product_id': product.id})
image.src = product_data['image_url']
image.save()
SEO: сохранение URL
Если старый сайт имел URL /catalog/category/product-name, а в Shopify будет /products/product-name — настроить 301-редиректы:
# shopify_redirects.csv (импорт через Matrixify)
Redirect: Path,Redirect: Target
/catalog/computers/laptop-model-x,/products/laptop-model-x
/catalog/phones/samsung-galaxy-s24,/products/samsung-galaxy-s24
Или через Admin → Online Store → Navigation → URL Redirects.
Что НЕ переносится автоматически
- Кастомная функциональность (специфичная логика скидок, нестандартные типы доставки) — требует Shopify Apps или Shopify Functions
- Интеграции (1С, CRM) — переподключить через Shopify API
- Кастомные расчёты налогов — Shopify имеет собственную налоговую систему
Сроки
Миграция магазина до 5000 товаров с клиентами и настройкой темы — 5–10 дней. Крупный магазин с переработкой функциональности — 3–6 недель.







