Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Skill Dropshipping Fulfillment

v1.2.3

Automates order fulfillment by pushing WooCommerce orders to CJ Dropshipping. Fetches "Processing" orders, matches line items to CJ variants via a supplier s...

0· 356· 5 versions· 1 current· 1 all-time· Updated 8h ago· MIT-0
byZero2Ai@zero2ai-hub

Install

openclaw skills install skill-dropshipping-fulfillment

CJ Fulfillment Engine

Automates the WooCommerce → CJ Dropshipping order flow. No manual copy-paste.

What it does

  1. Fetches all processing orders from WooCommerce
  2. Maps line items to CJ variant IDs via cj-supplier-selection.json
  3. Submits matched items to CJ API as a dropship order
  4. Updates WooCommerce order status to on-hold (awaiting CJ dispatch)
  5. Adds an order note with the CJ order ID
  6. Logs all results to cj-fulfillment-log.json

Credentials / paths

FileContents
woo-api.json{ url, consumerKey, consumerSecret }
cj-api.json{ apiKey, baseUrl, accessToken, tokenExpiry }
cj-supplier-selection.jsonArray of { sku, cjProductId, variantId, ... }

Usage

# Dry run — preview without placing orders
node {baseDir}/scripts/fulfill.js --dry-run

# Fulfill all processing orders
node {baseDir}/scripts/fulfill.js

# Fulfill a single WooCommerce order
node {baseDir}/scripts/fulfill.js --order 1234

cj-supplier-selection.json format

Full 6-field schema — one entry per product variant. Matching is SKU-first with fallback to wooProductId:wooVariationId.

[
  {
    "wooProductId": 77261,
    "wooVariationId": 77265,
    "sku": "CJYD2360896-BLACK",
    "cjProductId": "CJ-PRODUCT-ID",
    "variantId": "CJ-VARIANT-ID",
    "productName": "My Product — Black"
  }
]

Generate or rebuild this file from CJ API automatically:

node {baseDir}/scripts/rebuild-mapping.js

FBA / excluded products

Products that should never be fulfilled via CJ (e.g. FBA, in-house). Set via env var:

FBA_PRODUCT_IDS=75927,75808,2382 node fulfill.js

These are skipped with a log entry: "FBA product — manual fulfillment required".

Output

  • Console: per-order summary with matched/unmatched items and CJ order ID
  • cj-fulfillment-log.json: append-only log with { orderId, status, cjOrderId, timestamp }
  • cj-rejection-log.json: unmatched/skipped items for manual review

Unmatched items

If a line item has no SKU match and no wooProductId:wooVariationId match, it's logged to the rejection log and the order is skipped. Fix by running rebuild-mapping.js or adding the entry manually.

Environment overrides

CJ_SELECTION_PATH=/custom/path/selection.json node fulfill.js
FULFILL_LOG_PATH=/custom/path/log.json node fulfill.js

Version tags

latestvk977k8hbdq7jxnhk7338zkx4pn821hp6

Runtime requirements

Binsnode