Sales Order Sync in Practice: Routing Online Outbound Orders from Jushuitan to Kingdee Cloud Galaxy
What problem this strategy solves
Routing online outbound orders from Jushuitan to Kingdee Cloud Galaxy looks like a simple document copy, but in real projects three things trip teams up: channel filtering, warehouse attribution, and document type. In one engagement with a retailer, nightly reconciliation kept showing dozens to hundreds of unit gaps between local-warehouse shipments and the e-commerce back office—the root cause was that the outbound sync strategy did not cleanly describe channel and warehouse dimensions. This article focuses on one concrete strategy: online outbound orders pushed into the local warehouse (formal) scenario, excluding Pinduoduo, KuaiTuanTuan, and Tmall channels, and walks through the end-to-end flow.
Data flow and field mapping
The end-to-end flow is Jushuitan → Qeasy Integration Platform → Kingdee Cloud Galaxy. Qeasy is not a passive pipe here; it carries filtering, mapping, transformation, and retry responsibilities.
| Dimension | Jushuitan (source) | Qeasy middle layer | Kingdee Cloud Galaxy (target) |
|---|---|---|---|
| Document type | Online sales outbound order | Filter non-Pinduoduo / non-KuaiTuanTuan / non-Tmall | Online sales outbound order (local warehouse - formal) |
| Document number | Platform original outbound no. | Pass-through | Bill number (FBillNo) |
| Warehouse | Ship-from warehouse | Normalize per local-warehouse rule | Warehouse code (mapped to org + warehouse) |
| Customer / channel | Platform store | Channel filter + customer mapping | Customer code |
| Item code | Platform SKU | Item mapping table | Material code (linked to material master sync) |
| Quantity / amount | Outbound qty, paid amount | UoM / currency / tax conversion | Base unit qty, amount including tax |
Key reminder: the item code mapping is not maintained inside this single strategy. It depends on a separate
material syncstrategy that keeps material master data in sync. Without it, the outbound push fails because the target material code cannot be resolved.
How to configure it in Qeasy
On the Qeasy data integration platform, this strategy splits into four configuration blocks:
- Source extraction: pull Jushuitan's online sales outbound orders, typically by
update_timeincremental, retrieving header and line items. - Filter layer: in the strategy editor, add conditions that exclude Pinduoduo, KuaiTuanTuan, and Tmall channels, and verify that the warehouse belongs to the local-warehouse bucket.
- Mapping layer: maintain code mappings (store → customer, platform SKU → material code). A common pattern among Qeasy customers is to centralize these mappings in one
master data mappingstrategy so other document strategies only reference them instead of rebuilding their own. - Target write: call Kingdee's sales outbound save API. The header and lines are committed in two phases—write the header first to obtain the FID, then write the lines while back-filling
FEntryID.
The key insight: do not scatter code mappings across many strategies. Centralize them once and reference them everywhere; when channels or SKUs change, the blast radius stays small.
Implementation steps
We usually roll this out in three phases:
- Phase 1: full backfill. On the cutover day, use the full-data interface to pull historical outbound orders into Qeasy and push them to the target system in one shot, validating field mapping and stock direction.
- Phase 2: set the incremental starting point. Use the cutover moment as the incremental anchor. From then on, pull deltas with
update_time > last_success_timeto avoid duplicates and gaps. - Phase 3: schedule frequency and retries. Outbound orders typically run every 5–15 minutes during the day and can be relaxed to 30 minutes at night. Failed documents enter Qeasy's retry queue with exponential backoff; once the cap is reached, a human takes over.
All of this can be orchestrated from Qeasy's schedule center. Dependencies (e.g., material sync must run before outbound sync) are declared as strategy dependencies rather than hard-coded in scripts.
Lessons learned from the field
- Pitfall 1: channel filter is incomplete. A typical mistake is filtering only on the store name on the order, ignoring sub-channels or promotion markers, which lets disallowed outbound orders slip through. A safer pattern is to validate both
order sourceandpromotion tagin the filter layer. - Pitfall 2: warehouse code mismatch. Jushuitan's warehouse may be a Chinese-name + numeric display value, while Kingdee's warehouse is a pure code under an organization. Passing the raw value causes write failures. Add a
warehouse name → warehouse codetransform in the mapping layer. - Pitfall 3: header written but lines failed. Kingdee's sales outbound uses two APIs (header + lines). If the order is broken, you can end up with ghost headers. The safe approach in Qeasy is to roll back when the header fails and keep the foreign key when lines fail so retries can resume cleanly.
- Pitfall 4: wrong incremental starting point. If you use
current timeas the anchor on the first cutover, you silently drop pre-cutover orders. Correct flow: run full backfill first, then switch to incremental. - Pitfall 5: dependencies not chained. Outbound push depends on material and customer master data. If the material sync strategy is down, outbound will fail at scale. Declare the dependency explicitly in the Qeasy schedule so a downstream block triggers on upstream failure.
When it fits and when it does not
Fits: retailers or distributors whose online channels are concentrated, whose main fulfillment is local-warehouse shipping, and who reconcile on T+1. Also fits teams that have already pulled material and customer master data into Kingdee Cloud Galaxy and want to reduce manual back-fill.
Does not fit: cross-border multi-org setups, businesses where transfers and cross-warehouse direct shipping dominate, or scenarios that demand real-time per-order inventory deduction. Those cases are better served by real-time inventory and transfer strategies rather than timed batch sync.