E-commerce connector
ShopiMind connects to your shop to continuously sync customers, orders, products, carts and catalogs. Two options depending on your platform: an official module ready to install, or a custom integration built on the API.
Compatible platforms via an official module
For the main e-commerce platforms, ShopiMind provides a module that installs from your shop's back-office in a few minutes — no code required.
PrestaShop
Official moduleWooCommerce
Official moduleShopify
Official moduleMagento 1 (OpenMage)
Official moduleMagento 2
Official moduleIf your shop runs on one of these platforms, installing the module is the fastest path: initial sync and incremental flows are handled automatically, without manually configuring the API.
Build a custom connector
If your shop runs on a platform not covered by the official modules — proprietary stack, in-house CMS, private marketplace, or any exotic platform — you can build your own integration through the ShopiMind REST API.
Customers, not contacts
Your integration pushes customers. ShopiMind contacts (unified profiles) are derived automatically from customers — see Customers and contacts.
Resources to sync
| Category | Resources | Why ShopiMind needs them |
|---|---|---|
| Reference data | Customers groups, Orders statuses, Orders carriers, Products categories, Products manufacturers | Structural data referenced by the main resources. |
| Customers | Customers, Customer addresses | E-commerce profiles that derive ShopiMind contacts. |
| Orders | Orders | Purchase history (RFM, scoring, post-purchase triggers). |
| Carts | Carts | Read active carts (abandonment recovery). Carts are populated server-side from shop events — the public API exposes read-only access. |
| Catalog | Products | Products referenced for personalization and recommendations. |
| Promotions | Vouchers | Discount codes usable in scenarios. |
Recommended architecture
Phase 1 — Initial import
For a first deployment, import resources in dependency order:
- Reference data first: customers groups, orders statuses, orders carriers, products categories, products manufacturers.
- Catalog: products.
- Customers: customers, then customer addresses.
- Transactions: orders, vouchers.
Each bulkCreate* endpoint accepts 50 or 100 records per call depending on the resource — large imports are processed in successive batches on your side.
Phase 2 — Incremental sync
Once the catch-up is done, wire writes to the business events of your shop:
| Shop event | ShopiMind endpoint |
|---|---|
| Customer created / updated | bulkCreateCustomers |
| Customer address updated | bulkCreateCustomerAddresses |
| Order placed / status changed | bulkCreateOrders |
| Product created / updated / disabled | bulkCreateProducts |
| Voucher created | bulkCreateVouchers |
All bulkCreate* endpoints upsert: no need to differentiate between creation and update on your side. The upsert key is the supplied identifier (customer_id, order_id, product_id, etc.).
Patterns to follow
Idempotency
Endpoints are designed to be safely called multiple times with the same payload:
bulkCreate*upserts on the supplied identifier — a retry after a network timeout doesn't create duplicates.bulkDelete*silently ignores already-deleted or unknown identifiers.
Per-item validation
Bulks accept partially: an invalid item doesn't interrupt the batch. The response returns sent_count, rejected_count, and the detail of rejected items in rejected_items (with their original index and validation errors). Replay only the rejected items after correction.
Resume on error
If your connector crashes mid-import, it can resume where it stopped using local timestamps: send all records modified since the last successful sync. The upsert merges them cleanly, without duplication.
Asynchronous processing
A 200 response confirms acceptance, not immediate visibility on subsequent reads. Typical processing latency is a few seconds. Avoid issuing a GET right after a POST to verify the data — it's an anti-pattern that produces false negatives.
Performance & monitoring
- Prefer bulks — one
bulkCreateCustomerscall with 50 customers consumes far less quota than 50 individual calls. - Parallelize independent resources (e.g. orders and products side by side). Serializing chunks of the same resource doesn't help — ShopiMind's processing queue handles them in order anyway.
- Quota — 600 requests per minute per API key. A 10 req/s import ramp leaves a comfortable margin.
- Monitor the returned
sent_count, therejected_items(worth logging during onboarding), and HTTP status codes:5XX= retry with exponential backoff,4XX= fix the data before retrying.
Going further
- API reference — every endpoint detailed.
- Custom data — extend the ShopiMind model with your own fields and objects.
- ShopiMind integration — get your connector validated for the ShopiMind marketplace.