product-import

Import products from Shopify, Amazon, Etsy, or CSV into a Mobazha store. Use when the user wants to migrate or copy listings from another platform.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "product-import" with this command: npx skills add fengzie/mobazha-product-import

Product Import

Import products from Shopify, Amazon, Etsy, and other e-commerce platforms into your Mobazha store.

Overview

This skill helps you migrate or copy product listings from existing platforms into Mobazha. Two approaches are available:

  • Bulk Import (recommended) — package products as a ZIP with JSON + images and upload in one call
  • Individual Create — create listings one at a time via the Admin API

Bulk Import via MCP Tool

If the store is connected via MCP, use the listings_import_json tool for the fastest bulk import:

{
  "import_json": "{\"listings\":[...], \"shippingProfiles\":[...]}",
  "images_base64": "{\"photo1.jpg\":\"<base64>\",\"photo2.jpg\":\"<base64>\"}"
}

The tool builds a ZIP archive internally and uploads it to POST /v1/listings/import/json.

import_json Schema

{
  "listings": [
    {
      "slug": "unique-product-slug",
      "title": "Product Name",
      "contractType": "PHYSICAL_GOOD",
      "price": "29.99",
      "pricingCurrency": "USD",
      "description": "Product description",
      "shortDescription": "Brief summary",
      "productType": "Clothing",
      "tags": ["tag1", "tag2"],
      "condition": "NEW",
      "nsfw": false,
      "images": ["photo1.jpg", "photo2.jpg"],
      "introVideo": "demo.mp4",
      "processingTime": "1-3 business days",
      "grams": 500,
      "quantity": "100",
      "shippingProfileId": "Standard Shipping",
      "variants": [
        { "selections": {"Color": "Red", "Size": "S"}, "price": "24.99", "quantity": "50", "productID": "SKU-RED-S" },
        { "selections": {"Color": "Blue", "Size": "S"}, "price": "26.99", "quantity": "30", "productID": "SKU-BLU-S" }
      ]
    }
  ],
  "shippingProfiles": [
    {
      "key": "Standard Shipping",
      "name": "Standard Shipping",
      "isDefault": true,
      "locationGroups": [
        {
          "name": "Worldwide",
          "locations": [{ "country": "ALL" }],
          "shippingOptions": [
            { "name": "Standard", "type": "FIXED_PRICE", "price": "5.00" }
          ]
        }
      ]
    }
  ],
  "collections": [
    {
      "title": "Summer Collection",
      "description": "Best summer products",
      "image": "summer-banner.jpg",
      "products": ["unique-product-slug"]
    }
  ],
  "profile": {
    "name": "Store Name",
    "about": "Store description",
    "shortDescription": "Brief tagline",
    "location": "New York, US"
  }
}

Contract Types

TypeNotes
PHYSICAL_GOODRequires shippingProfileId matching a profile key/name
DIGITAL_GOODNo shipping needed
SERVICENo shipping needed
CRYPTOCURRENCYToken/coin listings (supports RWA fields)

Variants

Each variant uses a selections map (not separate name/options fields):

{ "selections": {"Color": "Red", "Size": "M"}, "price": "24.99", "quantity": "50", "productID": "SKU-001" }

Collections

Group products into collections by referencing their slugs:

{ "title": "New Arrivals", "products": ["product-slug-1", "product-slug-2"] }

For the complete field reference, see references/mapping.md.

Image Handling

Images referenced in listings[].images must be provided as base64-encoded data in the images_base64 parameter. The filenames must match exactly.

To prepare images:

  1. Download product images from the source platform
  2. Base64-encode each image file
  3. Build the images_base64 JSON map: {"filename.jpg": "<base64-data>"}

Bulk Import via Direct API

For non-MCP contexts (e.g., shell scripts), build a ZIP file manually:

ZIP Structure

my-import/
├── listings.json          # Required: product data + shipping profiles
├── profile.json           # Optional: store profile data
├── images/                # Product images referenced in listings.json
│   ├── photo1.jpg
│   ├── photo2.png
│   └── ...
└── videos/                # Optional: intro videos
    └── demo.mp4

Upload

curl -X POST "https://your-store.example.com/v1/listings/import/json" \
  -H "Authorization: Bearer <token>" \
  -F "file=@my-import.zip"

Response

{
  "data": {
    "total": 10,
    "created": 8,
    "updated": 2,
    "failed": 0,
    "createdItems": [{ "slug": "product-1", "title": "Product 1" }],
    "updatedItems": [{ "slug": "product-2", "title": "Product 2" }],
    "errors": []
  }
}

References

Detailed per-platform extraction guides and field mappings are in the references/ directory:

FileDescription
references/shopify-api.mdShopify CSV export and Admin API data extraction
references/amazon-scrape.mdAmazon product page scraping with BeautifulSoup
references/mapping.mdUniversal field mapping table (all platforms → Mobazha)

Supported Sources

SourceMethodNotes
ShopifyCSV export or APISee references/shopify-api.md
AmazonWeb scrapingSee references/amazon-scrape.md
EtsyCSV export or APIExport from Etsy Shop Manager
WooCommerceCSV/JSON exportExport from WooCommerce admin
Generic CSVManualAny CSV with title, description, price, images

Method 1: Shopify Import

  1. Export products via CSV or API — see references/shopify-api.md for details
  2. Transform to Mobazha format — see references/mapping.md for field mapping
  3. Download all product images locally
  4. Build the listings.json (include shippingProfiles for physical goods)
  5. Upload via listings_import_json MCP tool or direct ZIP API

Method 2: Amazon Product Import

  1. Collect product URLs or ASINs to import
  2. Extract product data — see references/amazon-scrape.md for scraping code and DOM selectors
  3. Transform to Mobazha JSON format — see references/mapping.md
  4. Download images locally (use high-res URLs: replace _AC_US40_ with _AC_SL1500_)
  5. Upload via listings_import_json MCP tool or direct ZIP API

Important: Respect robots.txt and rate limits; use 3-5 second delays between requests; verify pricing before import

Method 3: Individual Listing Create

For small imports (< 10 products), create listings one at a time via the listings_create MCP tool:

{
  "listing_json": "{\"slug\":\"my-product\",\"metadata\":{\"contractType\":\"DIGITAL_GOOD\",...},\"item\":{\"title\":\"...\",\"price\":\"9.99\",...}}"
}

Or via the Admin API:

POST /v1/listings
Content-Type: application/json
Authorization: Bearer <token>

Images must be uploaded first via POST /v1/media to obtain content hashes.

Authentication

MCP Connection

If the store is connected via MCP (recommended), authentication is handled automatically through the MCP session token.

Direct API Access

For direct API calls, authenticate via OAuth to obtain a Bearer token, then include it in the Authorization header.

Rate Considerations

  • Bulk import handles rate management internally — one ZIP upload imports all products
  • For individual creates, process one at a time and wait for each to succeed
  • Report progress to the user (e.g., "Created 15/50 listings...")
  • Large ZIP files (100+ products with images) may take 30-60 seconds to process

Credential Handling

  • Never store, log, or display API keys or passwords after use
  • For Shopify/Etsy API access, the user should provide their own API keys
  • MCP tokens are session-scoped and managed by the platform

Limitations

  • Product reviews cannot be imported (they are store-specific)
  • Physical goods require shipping profiles — include them in the import JSON
  • Payment options are set at the store level, not per-product
  • Digital product files must be re-uploaded to Mobazha
  • Maximum ZIP size: 300 MB (configurable)
  • Maximum video size per listing: 15 MB

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

TOKEN SOP

自动保存并本地调用已执行任务,避免重复消耗Token,实现离线秒级响应,提升效率与节省费用。

Registry SourceRecently Updated
General

Facebook-poster

Generuoja kasdienius įtraukiamus Facebook įrašus lietuvių kalba, kad sujungtų Qvicker.lt vartotojus su vietiniais paslaugų meistrais.

Registry SourceRecently Updated
General

TOKEN SOP

自动缓存并复用本地成功工作流,优先本地执行节省Token,支持断网使用和云端备份共享。

Registry SourceRecently Updated
General

generate-personal-brand-ad-creative-brief

Plan campaign visuals and hooks for personal brand promotions. Use when working on paid campaign planning for thought leaders, coaches, personal brand...

Registry SourceRecently Updated