Push Product to Shopify / Wix Store
dsers_store_pushPush prepared product drafts to Shopify or Wix stores with pre-publish validation blocking unprofitable pricing and zero-stock items. Supports batch and multi-store operations with customizable visibility settings.
Instructions
Push one or more prepared import drafts to the connected Shopify or Wix store(s). SAFETY: Automatic pre-push validation checks pricing (blocks if sell price < cost or $0) and stock (blocks if all variants have zero inventory). Warnings are raised for low margin (<10%), low stock (<5 units), or very low price (<$1). If blocked, fix pricing rules or use force_push=true ONLY after explaining the risk to the user. Three modes: (1) Single push — provide job_id + target_store. (2) Batch push — provide job_ids_json with an array of job IDs or objects; takes priority over job_id. (3) Multi-store push — provide job_id + target_stores_json to push one product to multiple stores. SAFETY RESPONSE: If checks fail, response includes 'blocked' (array of reasons push was rejected — must fix before retrying) and/or 'warnings' (array of risk alerts — push proceeds but user should be informed). blocked = hard stop (e.g. sell below cost), warnings = soft alert (e.g. low margin). On success, returns per-job: job_id, status, target_store, visibility_applied, push_options_applied, job_summary, warnings.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | No | Single job ID from dsers_product_import. Used for single-push or multi-store mode. | |
| job_ids_json | No | Batch push: JSON array of job ID strings or objects {job_id, target_store?, target_stores?, push_options?, visibility_mode?}. Example: ["job-abc123", {"job_id": "job-def456", "target_store": "My Store"}]. When provided, this takes priority over job_id. | |
| target_store | No | Target store ID or display name from dsers_store_discover. Required when the account has multiple stores. | |
| target_stores_json | No | Multi-store: JSON array of store IDs or display names. Pushes the same job_id to each listed store. Example: ["Store A", "Store B"] | |
| visibility_mode | No | Override the visibility mode set during prepare. backend_only: draft — SAFE. sell_immediately: published and LIVE — RISK: confirm pricing/inventory with user first. | |
| push_options_json | No | Push configuration as JSON string. Keys: publish_to_online_store (bool), image_strategy ('selected_only' or 'all_available'), pricing_rule_behavior ('keep_manual' or 'apply_store_pricing_rule'), shipping_profile_name (string — Shopify delivery profile name), auto_inventory_update (bool), auto_price_update (bool), sales_channels (string[]), only_push_specifications (bool). Example: {"image_strategy": "all_available", "shipping_profile_name": "DSers Shipping Profile"} | |
| force_push | No | Override pre-push safety checks. ONLY set true after you have shown the user the specific risk (e.g., 'This product is priced below cost — you will lose $X per sale') and they explicitly confirmed. Never set this silently. |