From f9b27102c832eb79932a3cebf98d00ba4fcf2ed7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=BE=E5=BF=97=E5=A8=81?= Date: Thu, 4 Jun 2026 15:49:34 +0800 Subject: [PATCH] docs: confirm basic data scheduled flow --- ...6-06-04-shopee-outbound-api-wes-mapping.md | 52 +++++++++++++++++-- 1 file changed, 47 insertions(+), 5 deletions(-) diff --git a/superpowers/plans/2026-06-04-shopee-outbound-api-wes-mapping.md b/superpowers/plans/2026-06-04-shopee-outbound-api-wes-mapping.md index 8bb7be8..dc80c2e 100644 --- a/superpowers/plans/2026-06-04-shopee-outbound-api-wes-mapping.md +++ b/superpowers/plans/2026-06-04-shopee-outbound-api-wes-mapping.md @@ -26,6 +26,7 @@ Do not implement inbound module interfaces in this plan. Include all concrete in - `ApiService` already delegates `ess.*` and `shopee.*` APIs to `PlatformInboundApiService`. - `ShopeeInboundApiHandler` exists but has no outbound cases implemented. - Confirmed: `4.2`-`4.5` Vendor-to-WES inventory/rack-transfer interfaces all enter WES through `ShopeeInboundApiHandler`; the handler then reuses existing `wms-transfer` and `wms-inventory` services. +- Confirmed: WES-to-Vendor basic-data interfaces in `5.2`-`5.8` are driven by scheduled jobs using a three-step `.confirm` -> `.get` -> `.uploadStatus` flow. Protocol `5.5` remains Vendor-to-WES and is not part of that scheduled outbound flow. - `ShipmentHeader` already contains key Shopee fields: `cutOffTime`, `purchaseTime`, `orderTime`, `shopeeWave`, `waveRule`, `kickOutWave`, `ticketType`, `pickType`, `orderStructure`, `groupKey`. - `ShopeeWaveService` has low-water scheduling and persistence, but the actual upstream wave-number request is still a placeholder. - `WaveRuleMatchService` has Shopee wave binding placeholders and local binding/rollback logic. @@ -888,9 +889,38 @@ Expose Shopee-facing `edi-shopee` endpoints and forward to WES: Reuse existing WES user and SKU services. Do not create duplicate user/SKU lookup SQL if a service already exists. -- [ ] **Step 6: Add 5.2-5.4 and 5.6-5.8 WMS-to-Vendor basic calls** +- [ ] **Step 6: Add 5.2-5.4 and 5.6-5.8 scheduled WMS-to-Vendor basic calls** -Use internal `edi-shopee` endpoints for: +Confirmed trigger source: scheduled jobs. Each WES-to-Vendor basic-data sync uses this three-step internal flow: + +```text +.confirm -> .get -> .uploadStatus +``` + +Use this pattern for the WES-to-Vendor basic-data subset. `5.5` remains a Vendor-to-WES query handled in Step 5. + +| Section | Step | Internal endpoint | Shopee path | +| --- | --- | --- | --- | +| 5.2 | `.confirm` | `/internal/shopee/automation/basic/inventory/batchStatusUpdate.confirm` | `/api/v2/automation/tovendor/basic/inventory/batch_status_update` | +| 5.2 | `.get` | `/internal/shopee/automation/basic/inventory/batchStatusUpdate.get` | `/api/v2/automation/tovendor/basic/inventory/batch_status_update` | +| 5.2 | `.uploadStatus` | `/internal/shopee/automation/basic/inventory/batchStatusUpdate.uploadStatus` | `/api/v2/automation/tovendor/basic/inventory/batch_status_update` | +| 5.3 | `.confirm` | `/internal/shopee/automation/basic/inventory/querySkuBatchInventory.confirm` | `/api/v2/automation/tovendor/basic/inventory/query_sku_batch_inventory` | +| 5.3 | `.get` | `/internal/shopee/automation/basic/inventory/querySkuBatchInventory.get` | `/api/v2/automation/tovendor/basic/inventory/query_sku_batch_inventory` | +| 5.3 | `.uploadStatus` | `/internal/shopee/automation/basic/inventory/querySkuBatchInventory.uploadStatus` | `/api/v2/automation/tovendor/basic/inventory/query_sku_batch_inventory` | +| 5.4 | `.confirm` | `/internal/shopee/automation/basic/inventory/syncReconciliationResult.confirm` | `/api/v2/automation/tovendor/basic/inventory/sync_reconciliation_result` | +| 5.4 | `.get` | `/internal/shopee/automation/basic/inventory/syncReconciliationResult.get` | `/api/v2/automation/tovendor/basic/inventory/sync_reconciliation_result` | +| 5.4 | `.uploadStatus` | `/internal/shopee/automation/basic/inventory/syncReconciliationResult.uploadStatus` | `/api/v2/automation/tovendor/basic/inventory/sync_reconciliation_result` | +| 5.6 | `.confirm` | `/internal/shopee/automation/basic/sku/syncSkuInfo.confirm` | `/api/v2/automation/tovendor/basic/sku/sync_sku_info` | +| 5.6 | `.get` | `/internal/shopee/automation/basic/sku/syncSkuInfo.get` | `/api/v2/automation/tovendor/basic/sku/sync_sku_info` | +| 5.6 | `.uploadStatus` | `/internal/shopee/automation/basic/sku/syncSkuInfo.uploadStatus` | `/api/v2/automation/tovendor/basic/sku/sync_sku_info` | +| 5.7 | `.confirm` | `/internal/shopee/automation/basic/robot/queryAgvStatus.confirm` | `/api/v2/automation/tovendor/basic/robot/query_agv_status` | +| 5.7 | `.get` | `/internal/shopee/automation/basic/robot/queryAgvStatus.get` | `/api/v2/automation/tovendor/basic/robot/query_agv_status` | +| 5.7 | `.uploadStatus` | `/internal/shopee/automation/basic/robot/queryAgvStatus.uploadStatus` | `/api/v2/automation/tovendor/basic/robot/query_agv_status` | +| 5.8 | `.confirm` | `/internal/shopee/automation/basic/inventory/queryVendorUnitList.confirm` | `/api/v2/automation/tovendor/basic/inventory/query_vendor_unit_list` | +| 5.8 | `.get` | `/internal/shopee/automation/basic/inventory/queryVendorUnitList.get` | `/api/v2/automation/tovendor/basic/inventory/query_vendor_unit_list` | +| 5.8 | `.uploadStatus` | `/internal/shopee/automation/basic/inventory/queryVendorUnitList.uploadStatus` | `/api/v2/automation/tovendor/basic/inventory/query_vendor_unit_list` | + +The previous one-call internal endpoint names are retained only as conceptual API names, not as the scheduled-job contract: | Section | Internal endpoint | Shopee path | | --- | --- | --- | @@ -901,7 +931,7 @@ Use internal `edi-shopee` endpoints for: | 5.7 | `/internal/shopee/automation/basic/robot/queryAgvStatus` | `/api/v2/automation/tovendor/basic/robot/query_agv_status` | | 5.8 | `/internal/shopee/automation/basic/inventory/queryVendorUnitList` | `/api/v2/automation/tovendor/basic/inventory/query_vendor_unit_list` | -These calls stay in `edi-shopee`. For this phase, only implement callable internal endpoints; binding them to WES business events or reconciliation jobs is explicitly out of scope. +These calls stay in `edi-shopee`. Scheduled jobs call `.confirm`, `.get`, then `.uploadStatus`; do not bind them to ad hoc WES business events in this phase. - [ ] **Step 7: Compile transfer, API, inventory, and edi-shopee modules** @@ -1083,9 +1113,21 @@ WMS-to-Vendor basic-data samples: ```powershell Invoke-RestMethod ` -Method Post ` - -Uri 'http://localhost:9210/internal/shopee/automation/basic/sku/syncSkuInfo' ` + -Uri 'http://localhost:9210/internal/shopee/automation/basic/sku/syncSkuInfo.confirm' ` -ContentType 'application/json' ` - -Body '<5.6 json body from protocol>' + -Body '<5.6 confirm json body>' + +Invoke-RestMethod ` + -Method Post ` + -Uri 'http://localhost:9210/internal/shopee/automation/basic/sku/syncSkuInfo.get' ` + -ContentType 'application/json' ` + -Body '<5.6 get json body from protocol>' + +Invoke-RestMethod ` + -Method Post ` + -Uri 'http://localhost:9210/internal/shopee/automation/basic/sku/syncSkuInfo.uploadStatus' ` + -ContentType 'application/json' ` + -Body '<5.6 uploadStatus json body>' ``` - [ ] **Step 5: Manual internal WES smoke tests**