How to Migrate WooCommerce Products to BigCommerce
Migrate your full product catalog from WooCommerce to BigCommerce.
What This Integration Does
Platform migrations are notoriously painful: CSV exports lose fields, custom attributes don't map cleanly, and you end up doing weeks of manual cleanup post-launch. This workflow walks the entire WooCommerce catalog, transforms each product to BigCommerce's shape, creates the matching BigCommerce product, and tracks every operation so failures can be retried without re-creating successful items.
The workflow runs as a one-time migration or as an ongoing sync during a parallel run period. Each page of WooCommerce products is fetched, looped over, transformed, and pushed into BigCommerce. A MongoDB tracking table records every WooCommerce product ID, its BigCommerce counterpart, and the status of the migration. Re-running picks up where it left off and skips anything already migrated.
Prerequisites
- A WooCommerce connection with read access to products, variants, and categories.
- A BigCommerce connection with write access to products and categories.
- A MongoDB connection (or equivalent) for the migration tracking table.
- BigCommerce category tree set up to match (or close enough to map to) the WooCommerce categories.
Step 1: Trigger
Drop a Trigger node. Use Manual for a one-time bulk migration. For ongoing sync during a transition period, use Schedule hourly and filter the WooCommerce query to recently-updated products.
Step 2: Page Through WooCommerce Products
Add a Connector node calling woocommerce list-products with per_page = 50. Wrap it in a Loop that increments page until the result set comes back empty. For each page, route the products through the rest of the workflow.
Step 3: Skip Already-Migrated Products
For each product, add a Connector node calling mongodb find-documents on the migration_tracking collection: { "wooId": {{ product.id }}, "status": "migrated" }. Use a Condition to skip the product if already migrated. This makes the workflow restartable after any failure.
Step 4: Transform to BigCommerce Shape
Add a Transform node that maps WooCommerce fields to BigCommerce:
name->nameregular_price->pricesale_price->sale_pricesku->skudescription->descriptionweight+ dimensions -> BigCommerceweight,width,height,depthcategories->categories(mapped via your category map)images->images(with the first image as the thumbnail)- WooCommerce variations -> BigCommerce variant objects with the right option values
Step 5: Create the Product in BigCommerce
Add a Connector node calling bigcommerce update-product if you've pre-staged shells, or call the create flow if you haven't. Capture the new BigCommerce product ID from the response. Wrap with a Condition on success.
Step 6: Track and Report
Write a record to mongodb update-documents on migration_tracking with { "wooId": ..., "bcId": ..., "status": "migrated" | "failed", "error": "..." }, upsert true. After each page (or at the end of the workflow), send a slack send-message summarizing counts of migrated, skipped, and failed products so you can see progress live.
Tips
- Run a small sample (say 10 products) first, end-to-end, and inspect them in the BigCommerce admin. Image URLs, variant SKUs, and category mappings are where mistakes hide.
- Pre-create the BigCommerce category tree before migrating products. Letting the workflow create categories on the fly leads to duplicates with different IDs.
- Use an Agent Mode Connector node for edge cases (products with weird option combinations or missing fields) so the LLM can normalize rather than failing the run.
- Throttle the loop. BigCommerce's product API limits to ~150 requests per 30 seconds. Sleep 250ms between writes.
Common Pitfalls
- Variant SKU uniqueness. BigCommerce requires unique SKUs across the catalog. WooCommerce is more permissive. Detect duplicates before the create and append a suffix.
- Image URLs. BigCommerce fetches images by URL; if WooCommerce serves them from behind auth, you'll have 0 images on the migrated product. Re-host first.
- HTML descriptions. WooCommerce often embeds inline styles or shortcodes ([gallery] etc.). Sanitize the HTML before sending.
- Tax / shipping classes. These don't map automatically. Pre-create the BigCommerce equivalents and translate in the Transform step.
Testing
Limit the workflow to 5 WooCommerce products by adding a hard cap in the loop. Run, then compare the products in both admin panels side by side. Confirm prices, SKUs, images, variants, and categories. Once that batch looks right, remove the cap and let it run.