AstroBaaS

Integrations & channels

Bulk Data Import & Migration

Paid pluginsize Lplanned, not built

Indicative price, not an offer: EUR 200-400/year or EUR 500 one-off

Generated from docs/plan/paid/bulk-data-import-migration/PLAN.md in the AstroBaaS repository. Nothing described below is implemented — it is the written plan for it.

Paid tool for bulk product import from CSV/XML/Excel with visual column mapping, data validation, and scheduled recurring imports. Handles product creation, variant generation, inventory assignment, and image uploads without coding.

The problem

We’re stuck with spreadsheets; bulk product import from CSV/XML requires coding. Our supplier sends updates weekly in CSV format; currently we manually copy-paste into AstroBaaS.

What it does

  • CSV, XML, Excel file upload and parsing
  • Visual column mapping UI (CSV column → AstroBaaS field)
  • Data validation before import (required fields, data types, price format, SKU uniqueness)
  • Batch product creation (1000s of products at once)
  • Variant generation from CSV rows (one row = one variant with attributes)
  • Inventory bulk assignment (set initial stock per variant)
  • Bulk image upload (from URLs or local file archive)
  • Scheduled recurring imports (daily/weekly/monthly cron)
  • Import history and rollback (undo an import within 24 hours, restore pre-import state)
  • Conflict detection (SKU already exists: update or skip)
  • Category and tag bulk assignment
  • Price bulk update (apply multiplier or margin to imported prices)
  • Data transformation rules (clean phone numbers, format addresses, uppercase names)

What it deliberately does NOT do

Each boundary carries its reason. A boundary without a reason gets crossed by the next person who reads this.

  • Image optimization or resizing (reason: belongs to paid image management addon)
  • Multi-language variant generation (reason: belongs to paid localization addon)
  • Supplier inventory sync (real-time API pulls) (reason: belongs to marketplace-channel-sync; import is manual batch only)
  • Data cleansing ML (auto-detect and fix malformed data) (reason: specialized; core is rule-based only)
  • EDI/API import (reason: belongs to paid integration automation addon; core is file-based only)

Data model

Migration required. New tables: bulk_imports (file_name, source_format, mapping_config JSON, row_count, status, imported_at, imported_by). bulk_import_rows (import_id, row_num, raw_data JSON, status, error_message).

API

  • POST /admin/bulk-import/upload
  • GET /admin/bulk-import/preview
  • PATCH /admin/bulk-import/mapping
  • POST /admin/bulk-import/validate
  • POST /admin/bulk-import/execute
  • GET /admin/bulk-import/status
  • GET /admin/bulk-import/history
  • POST /admin/bulk-import/:id/rollback
  • POST /admin/bulk-import/schedule

Every route added here must also appear in src/pages/openapi.json.ts — a test fails the build if it does not.

Admin

File upload form (drag-and-drop CSV/XML/Excel). Column mapping editor (visual mapping). Data preview table (first 10 rows). Validation report (errors per row). Import progress bar (rows imported, speed). Import history table (date, file, row count, status). Rollback button (undo within 24 hours). Scheduled import configuration (recurrence, source file URL).

The seam — why this is paid

Core owns product creation and inventory APIs. Paid pack owns file parsing, mapping UI, and import scheduling. Core creates products; paid pack handles data transformation and conflict resolution. Core audit log tracks changes; paid pack logs all import jobs and rollbacks.

Paid specialist tool for data migration and ongoing bulk imports. Requires data mapping and transformation expertise.

Dependencies

  • Core product creation API
  • Core product variant API
  • Core inventory system
  • Scheduler system (for timed imports)
  • Storage system (to save uploaded files and import logs)

Acceptance checks

Each of these must be able to fail. Before claiming this is done, break the code deliberately and watch each one go red.

  • A CSV with 1000 products imports in < 5 minutes
  • Column mapping is saved and reused for next import (no re-mapping each time)
  • A row with missing required field (e.g., title) is flagged in validation and not imported
  • A row with duplicate SKU (already exists) is reported with options: update or skip
  • An import can be rolled back within 24 hours, restoring AstroBaaS to pre-import state
  • Images are downloaded from URLs and attached to products
  • Variant data from one CSV row (size, color) creates a single variant with matching attributes
  • Imported products appear in search immediately after import completes
  • Scheduled import runs at configured time and logs result

Risks

If column mapping is wrong, products are created with wrong data. If SKU conflict resolution is wrong, duplicates are created or products are overwritten silently. If import is rolled back late (24+ hours), inventory changes are lost. If image URLs fail, products are created without images (silently). If large imports time out mid-way, partial data is left in the database.

Commercial context

Suggested priceEUR 200-400/year or EUR 500 one-off
Rival anchorFirebear Improved Import (CSV, XML, Excel, FTP, Dropbox)

The anchor is what the nearest equivalent charges on Shopify or Magento today. It is context for a pricing decision, not the decision.


Generated from the commerce plan. See docs/COMMERCE-PLAN.md for the full catalogue and ../../AI-GUIDE.md for how to work on this repository.