Міграція інтернет-магазину на 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 тижнів.







