Qeasy Cloud
Get Started

WDT Real-Time Inventory to Xiaoman OKKICRM: A Single-Strategy Tutorial

· 吕修远· Integration Solutions· 16 views· 4 min read

What This Strategy Solves

A retail enterprise uses WDT for e-commerce fulfillment and Xiaoman OKKICRM for sales front-end and customer management. Both sides need to see "how much stock is available right now," but inventory is only updated inside WDT, so the CRM side is always looking at overnight numbers. After every promotion peak, customer service oversells and operations restock on instinct — the problems converge into a single incident.

We used the Qeasy Data Integration Platform to push real-time inventory from WDT into Xiaoman OKKICRM, so the front-end numbers stay roughly in sync with the fulfillment side.

Data Flow & Field Mapping

Flow: WDT Flagship Edition (B, source) → Qeasy middleware → Xiaoman OKKICRM (A, target), direction B_TO_A.

Key field mapping (typical shape, adjust to the real dictionary on-site):

Business meaningWDT (B, source)Middleware mappingXiaoman OKKICRM (A, target)
Product codesku_idRouted via unified mapping tableproduct_code
Warehouse codewarehouse_noPass-throughwarehouse_id
Available stockavailable_qtyPass-throughstock_available
Reserved stocklocked_qtyPass-throughstock_reserved
Update timemodified_timeConverted to UTC stringupdate_timestamp
Sync batch—Generated by Qeasybatch_id

Centralized code mapping is a common Qeasy customer pattern: do not hard-code mappings inside every strategy. Build one "product / warehouse master mapping table" and let other strategies (materials, sales orders) reference it — so that changing one code does not require editing three lines.

How to Configure on Qeasy

  1. Source connector: pick the WDT Flagship Edition adapter; configure pull parameters for the real-time inventory endpoint (page size, incremental timestamp field); credentials are managed by the platform.
  2. Target connector: pick the Xiaoman OKKICRM adapter; confirm the stock write API (upsert by warehouse + product is the safe choice).
  3. Middleware mapping: on Qeasy's field-mapping canvas, create the mapping table that maps source fields to target fields; code-type fields reference the "unified mapping table."
  4. Filter & dedupe: deduplicate by the warehouse_no + sku_id composite key to avoid push overlaps.
  5. Failure handling: enable the platform's built-in exception queue — a single bad row should not block the entire batch.

Implementation Steps

Phased scheduling is another common Qeasy pattern. This strategy uses an "incremental-daily + full-daily" two-track design:

  • Stage 1 — incremental baseline: use the strategy's go-live modified_time as the baseline; pull increments every 5–15 minutes. For first rollout, gray-launch on one warehouse, confirm numbers match, then expand.
  • Stage 2 — full reload: trigger a daily full reload during business off-peak (e.g., early morning) to backfill any updates missed during the day. Header/body staged — this strategy involves only one fact-type data ("stock values"), no line items, so it is far simpler than order-type strategies.
  • Stage 3 — scheduling cadence: increments every 5–15 minutes, full reload once a day. During promotions / 618 / Double-Eleven, tighten increments to 1–3 minutes, but watch source-side rate limits.

Pitfall Recap

  1. Timezone trap: WDT timestamps carry local time, while Xiaoman OKKICRM expects UTC. This is a classic trap; the safe play is to normalize timezones in the Qeasy middleware before writing update_timestamp.
  2. "Zero stock" misread as deletion: some APIs treat zero stock as a delisting signal, so the target side gets wiped. Confirm the write semantics is "upsert current value," not "overwrite update."
  3. Missing warehouse dimension: the source pushes by physical warehouse, but the target aggregates by logical warehouse. Align both sides' warehouse ledgers before go-live — otherwise numbers will never match.
  4. First full reload overruns the target DB: the initial full reload was not batched, and the target write API was instantly overloaded. Configure pagination and rate-limiting on Qeasy and push in batches.
  5. No batch field set: post-incident investigation cannot tell which run a particular number came from. Add a batch_id in the middleware and write it into a spare field on the target side for fast traceability.

Where It Fits and Where It Does Not

Fits: scenarios where WDT is the fulfillment master warehouse and available / reserved stock must be reflected in real time on the CRM side; multi-warehouse, multi-SKU businesses with frequent stock changes.

Does not fit: when WDT is used as the financial reconciliation source of truth (use a reconciliation strategy instead of real-time push); or when SKU scale is huge and second-level latency is required (you must evaluate source-side API throughput and rate limits first).

Original content. Please credit the source when reposting: https://www.qeasy.cloud/insights/solutions/strat-okkicrm-wdt-7404-ok-03c5d4b1

Comments