{"autoSyncContract":{"adapterBoundaries":[{"id":"adapter_boundary_feishu_event_sync","currentMode":"mock API 暴露自动同步合同，不接收真实飞书事件。","futureMode":"ECS HTTPS webhook 接收飞书记录新增、编辑和删除事件。","protectedBoundary":"事件只生成同步任务，不直接在 request handler 内写 Shopify。","hardStops":["webhook 签名无效","source table 不在白名单","事件缺少 record id"]},{"id":"adapter_boundary_polling_reconcile","currentMode":"dry-run 样例展示巡检规则，不读取真实飞书。","futureMode":"ECS 定时巡检四张货源表，对账映射表和 Shopify 状态。","protectedBoundary":"巡检只补偿漏事件和状态漂移，不改客户原货源库存。","hardStops":["飞书读取失败","字段结构变化","分页不完整"]},{"id":"adapter_boundary_shopify_auto_write","currentMode":"生成 Shopify 写入计划，不调用 Admin API。","futureMode":"自动执行 product/variant 创建、价格更新、库存更新和发布。","protectedBoundary":"Shopify 写入只消费标准同步计划，不直接读取原始飞书数组。","hardStops":["稳定 SKU 无法派生","价格变化超过 20%","Shopify userErrors 超过重试上限"]},{"id":"adapter_boundary_shopify_order_holds","currentMode":"样例展示订单占用表规则，不处理真实订单 webhook。","futureMode":"Shopify 订单 webhook 自动写订单占用表，再触发库存重算。","protectedBoundary":"订单只写占用表和日志，不直接改客户原货源表库存。","hardStops":["订单无法匹配 SKU","重复 webhook 幂等失败","占用数量超过源库存"]}],"dryRun":{"samplePlans":[{"availableQuantity":1,"hkdReferencePrice":4970,"idempotencyKey":"Brand new:recvg4xtp7aiCX:2026-04-07","mappingState":"unmapped","orderHoldQuantity":0,"productKey":"brand-new-iphone-17e-a3634-b-a-256gb-1-sim-e-sim-not-activate","productTitle":"Brand new iPhone 17e A3634-B/A 256GB 1 Sim+E Sim Not Activate","shopifyHandle":"brand-new-iphone-17e-a3634-b-a-256gb-1-sim-e-sim-not-activate","sku":"brand-new-iphone-17e-a3634-b-a-256gb-1-sim-e-sim-not-activate-black-rv4","sourceRecordId":"recvg4xtp7aiCX","sourceStock":1,"sourceTable":"Brand new","usdPrice":632,"variantTitle":"Black-黑色-RV4","action":"create_product_variant"},{"availableQuantity":20,"hkdReferencePrice":12540,"idempotencyKey":"Asis:recvg4xJhZ3qBj:2026-04-07","mappingState":"mapped","orderHoldQuantity":0,"productKey":"asis-iphone-17-pro-max-a3526-zp-a-2tb-1-sim-e-sim-active","productTitle":"Asis iPhone 17 Pro Max A3526-ZP/A 2TB 1 Sim+E Sim Active","shopifyHandle":"asis-iphone-17-pro-max-a3526-zp-a-2tb-1-sim-e-sim-active","sku":"asis-iphone-17-pro-max-a3526-zp-a-2tb-1-sim-e-sim-active-silver-yy4","sourceRecordId":"recvg4xJhZ3qBj","sourceStock":20,"sourceTable":"Asis","usdPrice":1595,"variantTitle":"Silver-銀色-YY4","action":"quarantine","quarantineReason":"price_spike_gt_20_percent"},{"availableQuantity":0,"hkdReferencePrice":7430,"idempotencyKey":"CPO:recvg4xBG30CVI:2026-04-07","mappingState":"unmapped","orderHoldQuantity":0,"productKey":"cpo-iphone-16-promax-a3084-ll-a-256gb-e-sim-not-activate","productTitle":"CPO iphone 16 ProMax A3084-LL/A 256GB E-Sim Not Activate","shopifyHandle":"cpo-iphone-16-promax-a3084-ll-a-256gb-e-sim-not-activate","sku":"cpo-iphone-16-promax-a3084-ll-a-256gb-e-sim-not-activate-desert-titanium-w53","sourceRecordId":"recvg4xBG30CVI","sourceStock":0,"sourceTable":"CPO","usdPrice":945,"variantTitle":"Desert Titanium-沙漠金-W53","action":"create_product_variant"},{"availableQuantity":9,"hkdReferencePrice":10950,"idempotencyKey":"Asis+:recvg4xPY5apUG:2026-04-07","mappingState":"unmapped","orderHoldQuantity":2,"productKey":"asis-iphone-17-pro-max-a3525-j-a-1tb-e-sim-not-activate","productTitle":"Asis+ iPhone 17 Pro Max A3525-J/A 1TB E-Sim Not Activate","shopifyHandle":"asis-iphone-17-pro-max-a3525-j-a-1tb-e-sim-not-activate","sku":"asis-iphone-17-pro-max-a3525-j-a-1tb-e-sim-not-activate-silver-yf4","sourceRecordId":"recvg4xPY5apUG","sourceStock":11,"sourceTable":"Asis+","usdPrice":1392,"variantTitle":"Silver-銀色-YF4","action":"create_product_variant"},{"availableQuantity":0,"hkdReferencePrice":0,"idempotencyKey":"CPO:rec_source_missing:2026-04-07","mappingState":"source_missing","orderHoldQuantity":0,"productKey":"cpo-iphone-source-missing-a0000-ll-a-128gb-e-sim-not-activate","productTitle":"CPO iPhone source missing A0000-LL/A 128GB E-Sim Not Activate","shopifyHandle":"cpo-iphone-source-missing-a0000-ll-a-128gb-e-sim-not-activate","sku":"cpo-iphone-source-missing-a0000-ll-a-128gb-e-sim-not-activate-missing-map","sourceRecordId":"rec_source_missing","sourceStock":0,"sourceTable":"CPO","usdPrice":0,"variantTitle":"Missing-MAP","action":"set_inventory_zero"}],"summary":{"create":3,"quarantine":1,"setZero":1,"update":0}},"fieldContracts":[{"externalTable":"Brand new / Asis / Asis+ / CPO","externalField":"库存","localObject":"InventorySnapshot","localField":"quantityAvailable","requirement":"required","purpose":"飞书原始库存减去未完成订单占用后，自动写入 Shopify 可售库存。","example":"1"},{"externalTable":"Brand new / Asis / Asis+ / CPO","externalField":"USD价格","localObject":"PriceRule","localField":"value","requirement":"required","purpose":"作为 Shopify 第一版销售价格；变化超过 20% 进入异常隔离。","example":"632"},{"externalTable":"Brand new / Asis / Asis+ / CPO","externalField":"栏目 + 机型 + Version + 容量 + 卡槽规格 + 状态","localObject":"Product","localField":"title / handle","requirement":"derived","purpose":"自动拆分 Shopify Product，避免单个商品 option 或 variant 过多。","example":"Brand new iPhone 17e A3634-B/A 256GB 1 Sim+E Sim Not Activate"},{"externalTable":"Brand new / Asis / Asis+ / CPO","externalField":"颜色/货号","localObject":"ProductVariant","localField":"title","requirement":"required","purpose":"作为同一 Shopify Product 下的 variant 展示名。","example":"Black-黑色-RV4"},{"externalTable":"Shopify映射表","externalField":"SKU / productId / variantId / inventoryItemId","localObject":"ShopifyProductMapping","localField":"shopifyProductId / shopifyVariantId / shopifyInventoryItemId","requirement":"required","purpose":"确保重复事件不会重复创建商品，并能对同一 SKU 做价格和库存更新。","example":"gid://shopify/Product/123"},{"externalTable":"Shopify订单占用表","externalField":"SKU / 占用数量 / 占用状态","localObject":"InventorySnapshot","localField":"quantityReserved","requirement":"derived","purpose":"Shopify 下单后自动占用库存，避免下一次飞书同步把库存回弹。","example":"sku=brand-new-iphone-17e...; quantity=2; status=open"},{"externalTable":"同步日志表","externalField":"动作 / 结果 / 错误","localObject":"SyncLog","localField":"status / error","requirement":"required","purpose":"记录 dry-run、事件同步、巡检同步、重试和 Shopify userErrors。","example":"event_sync / success"},{"externalTable":"异常隔离表","externalField":"异常原因 / 重试次数 / 当前状态","localObject":"QuarantineRecord","localField":"reason / attempts / status","requirement":"required","purpose":"错价、缺字段、库存异常或 API 连续失败时只隔离当前 SKU。","example":"price_spike_gt_20_percent"}],"policy":{"deletePolicy":"set_inventory_zero_keep_published","firstRunMode":"dry_run_then_full_sync","orderStockPolicy":"source_stock_minus_order_holds","priceChangeThreshold":0.2,"priceCurrency":"USD","publishScope":"all_tables_including_zero_stock","publishState":"publish_immediately","runtime":"aliyun_ecs","triggerMode":"事件+巡检","zeroStockPolicy":"create_unmapped_then_set_inventory_zero_keep_published"},"sourceProfile":{"baseToken":"ADkabWtHYa6f5rsxKpccFId3nbd","productRule":"栏目 + 机型 + Version + 容量 + 卡槽规格 + 状态 = Shopify Product；颜色/货号 = Shopify Variant","skuRule":"栏目 + 机型 + Version + 容量 + 卡槽规格 + 状态 + 颜色/货号","sourceTables":[{"fieldNames":["数据采集日期","Version","品牌","状态","机型","HKD价格","栏目","数据更新日期","库存","USD价格","版本说明","容量","卡槽规格","颜色/货号"],"rowCount":193,"statusField":"Not Activate","stockTotal":3821,"tableId":"tblX2UPIYbSaGyqw","tableName":"Brand new"},{"fieldNames":["数据采集日期","Version","品牌","状态","机型","HKD价格","栏目","数据更新日期","库存","USD价格","版本说明","容量","卡槽规格","颜色/货号"],"rowCount":484,"statusField":"Active","stockTotal":48207,"tableId":"tblEyp9We57hyD3p","tableName":"Asis"},{"fieldNames":["数据采集日期","Version","品牌","状态","机型","HKD价格","栏目","数据更新日期","库存","USD价格","版本说明","容量","卡槽规格","颜色/货号"],"rowCount":69,"statusField":"Not Activate","stockTotal":4832,"tableId":"tbl7QbYg9lFUMNM9","tableName":"Asis+"},{"fieldNames":["数据采集日期","Version","品牌","状态","机型","HKD价格","栏目","数据更新日期","库存","USD价格","版本说明","容量","卡槽规格","颜色/货号"],"rowCount":290,"statusField":"Not Activate","stockTotal":26515,"tableId":"tblsxtChwV4O3T7H","tableName":"CPO"}],"totals":{"rows":1036,"stock":83375,"tables":4},"triggerFields":["库存","USD价格","HKD价格","状态","机型","Version","容量","卡槽规格","颜色/货号"]},"statusTables":[{"tableId":"tblvYpQ4cTBJbLpg","tableName":"Shopify映射表","purpose":"保存飞书 source record、稳定 SKU 与 Shopify product/variant/inventory item 的一对一映射。"},{"tableId":"tblioD8m5ClTPrhP","tableName":"同步日志表","purpose":"记录 dry-run、事件同步、巡检同步、失败重试和 Shopify userErrors。"},{"tableId":"tblfIwpAevsuSXrT","tableName":"异常隔离表","purpose":"保存错价、字段缺失、库存异常、权限错误和连续失败 SKU，隔离时不阻塞其他 SKU。"},{"tableId":"tblq6qFF4a2muNHn","tableName":"Shopify订单占用表","purpose":"保存 Shopify 订单对 SKU 的未完成占用量，用于计算自动可售库存。"}]},"mode":"mock_preview","objects":["FeishuAutoSyncPolicy","ShopifyAutoSyncPlan","ShopifyMapping","SyncLog","QuarantineRecord"]}