SKU-level Supplier Replacement
dsers_sku_remapReplace supplier for dropshipping products using SKU-level variant matching. Use strict mode with a specific URL or discover mode with reverse-image search to find alternatives when suppliers are out-of-stock.
Instructions
Replace the supplier on a store product with SKU-level variant matching. DEFAULTS TO mode='preview' which is read-only and safe to call without confirmation — only mode='apply' actually writes to DSers. TWO discovery paths: (A) STRICT — caller provides new_supplier_url and the tool swaps to that exact supplier; (B) DISCOVER — omit new_supplier_url and the tool reverse-image-searches the DSers pool using seed images from the current product, ranks candidates via sku-matcher + multi-factor scoring, and auto-picks the best replacement. Use discover mode when the current supplier is broken/out-of-stock and you don't have a specific replacement URL in hand. WORKFLOW: (1) Call with mode='preview' to see the match plan, scoreBreakdown, tier-isolated top_candidates and the planned pool[] history additions — nothing is written. (2) Review the diffs, then call again with mode='apply' and the same params to persist. auto_confidence threshold defaults to 70 (conservative). Lower at your own risk — DSers does NOT validate supplier payload correctness; data errors only surface at order fulfillment time. Returns: path (A_strict or B_discover), summary (swapped/kept_old/unmatched/skipped counts), mapping_type, diffs (per-variant decision + before/after), discovery.top_candidates (discover mode only), pool_additions (PoolEntry[] that apply will append to mapping.pool[] as history), warnings, errors. When applied: also returns process_status from DSers post-write polling. Requires the product:mapping OAuth scope. Get store_id from dsers_store_discover first.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| dsers_product_id | Yes | DSers product ID of the store product whose supplier you want to replace. Get from dsers_my_products. Must be a numeric string that fits in a signed int64 (max 9223372036854775807) — the schema's maxLength:19 + numeric pattern allow up to 19 digits but values above the int64 ceiling are rejected at the MCP boundary. | |
| new_supplier_url | No | OPTIONAL. AliExpress / Alibaba / 1688 URL of the replacement supplier. Provide to use STRICT mode (exact swap). Omit to use DISCOVER mode (reverse-image search to auto-find the best replacement). Must be a valid http/https URL — plain text / non-URL strings are rejected at the MCP boundary. URL scheme is normalized to lowercase (HTTPS:// → https://) per RFC 3986 before the candidate fetch. | |
| store_id | Yes | Store ID from dsers_store_discover. Required. Must be a string (DSers backend rejects integer storeId due to int64 precision). Must be a numeric string that fits in a signed int64 (max 9223372036854775807) — the schema's maxLength:19 + numeric pattern allow up to 19 digits but values above the int64 ceiling are rejected at the MCP boundary. | |
| mode | No | preview (default — read-only, no DSers writes, safe to call repeatedly) or apply (persist the swap; verify diffs in preview first). | preview |
| country | No | Target country code for candidate fetch. Default US. | US |
| auto_confidence | No | Minimum sku-matcher confidence (0-100) for a variant to be auto-swapped. Default 70. | |
| max_candidates | No | DISCOVER mode only. Max candidates to fetch full variant detail for and rank. Default 5. Ignored in STRICT mode. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | ||
| dsers_product_id | Yes | ||
| source_url | Yes | ||
| mapping_type | Yes | ||
| path | Yes | ||
| degraded | No | ||
| summary | Yes | ||
| diffs | Yes | ||
| discovery | No | ||
| pool_additions | Yes | ||
| warnings | Yes | ||
| errors | Yes | ||
| applied | No | ||
| process_status | No | ||
| process_errmsg | No |