Shopify Bulk Upload

批量上传商品到 Shopify 店铺。支持从 Excel/CSV 文件读取商品数据,自动创建产品、产品图片、变体、价格和库存。使用场景:(1) 批量上架新品 (2) 从其他平台迁移商品到 Shopify (3) 批量更新现有商品信息

Audits

Pending

Install

openclaw skills install shopify-bulk-upload

Shopify Bulk Upload Tool

A powerful tool to bulk upload products to your Shopify store from Excel/CSV files.

Features

  • ✅ Read Excel/CSV product data
  • ✅ Create products with multiple images
  • ✅ Support product variants (color, size, etc.)
  • ✅ Auto image upload processing
  • ✅ Inventory management
  • ✅ Error logging and retry
  • ✅ Incremental update by SKU
  • ✅ Upload progress display

Quick Start

1. Prepare Product Data File

Prepare product data in assets/products.xlsx or assets/products.csv:

FieldRequiredDescription
titleProduct title
descriptionProduct description (HTML supported)
vendorBrand/Supplier
product_typeProduct type
pricePrice
compare_at_priceOriginal price (for showing discount)
skuSKU code
inventory_quantityStock quantity
weightWeight (unit: kg)
weight_unitWeight unit: kg, g, lb, oz
statusactive, draft, archived
tagsTags (comma separated)
imagesImage URLs (comma separated, multiple)
variant_titleVariant name (e.g., Color, Size)
option1_nameVariant option 1 name (e.g., Color)
option1_valueVariant option 1 value (e.g., Red)
option2_nameVariant option 2 name (e.g., Size)
option2_valueVariant option 2 value (e.g., M)

2. Configure Shopify API

Configure in .env file:

SHOPIFY_STORE_URL=https://your-store.myshopify.com
SHOPIFY_ACCESS_TOKEN=your_access_token
SHOPIFY_API_VERSION=2024-01

To get Access Token:

  1. Login to Shopify Admin
  2. Go to Settings → Apps and sales channels → Develop apps
  3. Create App → Configure Admin API scopes
  4. Check write_products, write_inventory permissions
  5. Install app → Get Access Token

3. Install Dependencies

cd scripts
pip install -r requirements.txt

4. Run Upload Script

python shopify_bulk_upload.py

Output Results

After completion:

  • logs/upload.log - Upload log
  • logs/error.log - Error details
  • output/products_created.json - Successfully created products
  • output/products_failed.json - Failed products

Configuration

Edit scripts/config.py to customize:

CONFIG = {
    "batch_size": 10,           # Products per batch
    "retry_count": 3,           # Retry attempts on failure
    "retry_delay": 2,           # Retry interval (seconds)
    "image_timeout": 30,       # Image upload timeout (seconds)
    "default_status": "active" # Default product status
}

Documentation

Requirements

  • Python 3.8+
  • pandas
  • requests
  • python-dotenv
  • openpyxl