@youzan-cloud/zan-saas-cli 0.0.0-stage → 0.1.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (329) hide show
  1. package/DEPENDENCIES.json +50 -0
  2. package/INSTALL.md +79 -0
  3. package/LICENSE +21 -0
  4. package/NOTICE +1 -0
  5. package/README.md +151 -2
  6. package/THIRD_PARTY_NOTICES.txt +162 -0
  7. package/bin/zan-saas-cli.js +28 -0
  8. package/internal/registry/index.js +123 -0
  9. package/internal/registry/manifest.json +424 -0
  10. package/npm-shrinkwrap.json +86 -0
  11. package/package.json +33 -4
  12. package/skills/README.md +30 -0
  13. package/skills/zan-saas/SKILL.md +54 -0
  14. package/skills/zan-saas/references/host-entry.md +25 -0
  15. package/skills/zan-saas-access/SKILL.md +37 -0
  16. package/skills/zan-saas-access/references/role-list.md +11 -0
  17. package/skills/zan-saas-access/references/staff-perms-get.md +11 -0
  18. package/skills/zan-saas-aftersale/SKILL.md +31 -0
  19. package/skills/zan-saas-aftersale/references/case-list.md +13 -0
  20. package/skills/zan-saas-aftersale/references/case-scan.md +31 -0
  21. package/skills/zan-saas-benefit/SKILL.md +46 -0
  22. package/skills/zan-saas-benefit/references/card-get.md +7 -0
  23. package/skills/zan-saas-benefit/references/card-grant-list.md +11 -0
  24. package/skills/zan-saas-benefit/references/card-list.md +7 -0
  25. package/skills/zan-saas-benefit/references/customer-card-get.md +7 -0
  26. package/skills/zan-saas-benefit/references/customer-card-list.md +7 -0
  27. package/skills/zan-saas-coupon/SKILL.md +41 -0
  28. package/skills/zan-saas-coupon/references/activity-get.md +11 -0
  29. package/skills/zan-saas-coupon/references/activity-list.md +15 -0
  30. package/skills/zan-saas-coupon/references/voucher-get.md +13 -0
  31. package/skills/zan-saas-coupon/references/voucher-list.md +25 -0
  32. package/skills/zan-saas-customer/SKILL.md +73 -0
  33. package/skills/zan-saas-customer/references/customer-scan.md +11 -0
  34. package/skills/zan-saas-customer/references/segment-list.md +22 -0
  35. package/skills/zan-saas-fulfillment/SKILL.md +36 -0
  36. package/skills/zan-saas-fulfillment/references/delivery-get.md +11 -0
  37. package/skills/zan-saas-fulfillment/references/shipment-list.md +11 -0
  38. package/skills/zan-saas-fulfillment/references/waybill-get.md +9 -0
  39. package/skills/zan-saas-interaction/SKILL.md +37 -0
  40. package/skills/zan-saas-interaction/references/lottery-get.md +11 -0
  41. package/skills/zan-saas-interaction/references/lottery-list.md +19 -0
  42. package/skills/zan-saas-item/SKILL.md +61 -0
  43. package/skills/zan-saas-item/references/attribute-list.md +11 -0
  44. package/skills/zan-saas-item/references/brand-list.md +7 -0
  45. package/skills/zan-saas-item/references/classification-get.md +7 -0
  46. package/skills/zan-saas-item/references/classification-list.md +7 -0
  47. package/skills/zan-saas-item/references/group-list.md +9 -0
  48. package/skills/zan-saas-item/references/item-content.md +9 -0
  49. package/skills/zan-saas-item/references/item-get.md +9 -0
  50. package/skills/zan-saas-item/references/item-search.md +23 -0
  51. package/skills/zan-saas-item/references/product-identity.md +11 -0
  52. package/skills/zan-saas-member/SKILL.md +41 -0
  53. package/skills/zan-saas-member/references/customer-level-get.md +7 -0
  54. package/skills/zan-saas-member/references/growth-log-list.md +17 -0
  55. package/skills/zan-saas-member/references/membership-get.md +7 -0
  56. package/skills/zan-saas-order/SKILL.md +56 -0
  57. package/skills/zan-saas-order/references/order-get.md +26 -0
  58. package/skills/zan-saas-order/references/order-list.md +25 -0
  59. package/skills/zan-saas-order/references/order-scan.md +35 -0
  60. package/skills/zan-saas-org/SKILL.md +37 -0
  61. package/skills/zan-saas-org/references/staff-get.md +15 -0
  62. package/skills/zan-saas-org/references/staff-role-get.md +11 -0
  63. package/skills/zan-saas-org/references/unit-get.md +11 -0
  64. package/skills/zan-saas-org/references/unit-list.md +15 -0
  65. package/skills/zan-saas-points/SKILL.md +42 -0
  66. package/skills/zan-saas-points/references/account-get.md +7 -0
  67. package/skills/zan-saas-points/references/log-list.md +17 -0
  68. package/skills/zan-saas-points/references/rule-list.md +2 -0
  69. package/skills/zan-saas-privacy/SKILL.md +30 -0
  70. package/skills/zan-saas-privacy/references/field-decrypt.md +19 -0
  71. package/skills/zan-saas-shared/SKILL.md +94 -0
  72. package/skills/zan-saas-shared/references/authentication.md +52 -0
  73. package/skills/zan-saas-shared/references/value-processing.md +27 -0
  74. package/skills/zan-saas-stock/SKILL.md +28 -0
  75. package/skills/zan-saas-stock/references/log-list.md +11 -0
  76. package/skills/zan-saas-valuecard/SKILL.md +37 -0
  77. package/skills/zan-saas-valuecard/references/card-get.md +13 -0
  78. package/skills/zan-saas-valuecard/references/card-list.md +11 -0
  79. package/src/auth/browser.js +28 -0
  80. package/src/auth/callback-server.js +99 -0
  81. package/src/auth/config.js +53 -0
  82. package/src/auth/credential-store.js +109 -0
  83. package/src/auth/oauth-client.js +105 -0
  84. package/src/auth/pkce.js +28 -0
  85. package/src/auth/session.js +178 -0
  86. package/src/auth/tool.js +25 -0
  87. package/src/cli/command-paths.js +126 -0
  88. package/src/cli/context-help.js +102 -0
  89. package/src/cli/diagnostic-command.js +57 -0
  90. package/src/cli/domain-catalog.js +42 -0
  91. package/src/cli/help-text.js +32 -0
  92. package/src/cli/native-loader.js +120 -0
  93. package/src/cli/native-path.js +22 -0
  94. package/src/cli/parser-policy.js +141 -0
  95. package/src/cli/program.js +134 -0
  96. package/src/cli/skill-catalog.js +241 -0
  97. package/src/commands/native/access/commands.index.json +24 -0
  98. package/src/commands/native/access/domain.json +3 -0
  99. package/src/commands/native/access/role/list/command.js +141 -0
  100. package/src/commands/native/access/role/list/schema.json +393 -0
  101. package/src/commands/native/access/staff-perms/get/command.js +119 -0
  102. package/src/commands/native/access/staff-perms/get/schema.json +703 -0
  103. package/src/commands/native/aftersale/case/get/command.js +104 -0
  104. package/src/commands/native/aftersale/case/get/exact-json.js +52 -0
  105. package/src/commands/native/aftersale/case/get/money.js +28 -0
  106. package/src/commands/native/aftersale/case/get/projection.js +120 -0
  107. package/src/commands/native/aftersale/case/get/query.js +72 -0
  108. package/src/commands/native/aftersale/case/get/schema.json +134 -0
  109. package/src/commands/native/aftersale/case/list/command.js +135 -0
  110. package/src/commands/native/aftersale/case/list/schema.json +1095 -0
  111. package/src/commands/native/aftersale/case/scan/command.js +110 -0
  112. package/src/commands/native/aftersale/case/scan/query.js +62 -0
  113. package/src/commands/native/aftersale/case/scan/scan.js +78 -0
  114. package/src/commands/native/aftersale/case/scan/schema.json +964 -0
  115. package/src/commands/native/aftersale/case/scan/search.js +108 -0
  116. package/src/commands/native/aftersale/commands.index.json +42 -0
  117. package/src/commands/native/aftersale/domain.json +3 -0
  118. package/src/commands/native/aftersale/refund/list/command.js +97 -0
  119. package/src/commands/native/aftersale/refund/list/money.js +25 -0
  120. package/src/commands/native/aftersale/refund/list/projection.js +50 -0
  121. package/src/commands/native/aftersale/refund/list/query.js +73 -0
  122. package/src/commands/native/aftersale/refund/list/schema.json +130 -0
  123. package/src/commands/native/aftersale/shared/query.js +58 -0
  124. package/src/commands/native/aftersale/shared/search.js +128 -0
  125. package/src/commands/native/benefit/card-definition/get/command.js +110 -0
  126. package/src/commands/native/benefit/card-definition/get/schema.json +545 -0
  127. package/src/commands/native/benefit/card-definition/list/command.js +105 -0
  128. package/src/commands/native/benefit/card-definition/list/schema.json +690 -0
  129. package/src/commands/native/benefit/card-grant/list/command.js +135 -0
  130. package/src/commands/native/benefit/card-grant/list/schema.json +758 -0
  131. package/src/commands/native/benefit/commands.index.json +51 -0
  132. package/src/commands/native/benefit/customer-card/get/command.js +110 -0
  133. package/src/commands/native/benefit/customer-card/get/schema.json +340 -0
  134. package/src/commands/native/benefit/customer-card/list/command.js +102 -0
  135. package/src/commands/native/benefit/customer-card/list/schema.json +731 -0
  136. package/src/commands/native/benefit/domain.json +3 -0
  137. package/src/commands/native/coupon/activity/get/command.js +183 -0
  138. package/src/commands/native/coupon/activity/get/schema.json +624 -0
  139. package/src/commands/native/coupon/activity/list/command.js +169 -0
  140. package/src/commands/native/coupon/activity/list/schema.json +845 -0
  141. package/src/commands/native/coupon/commands.index.json +42 -0
  142. package/src/commands/native/coupon/domain.json +3 -0
  143. package/src/commands/native/coupon/shared/query.js +15 -0
  144. package/src/commands/native/coupon/voucher/get/command.js +113 -0
  145. package/src/commands/native/coupon/voucher/get/schema.json +147 -0
  146. package/src/commands/native/coupon/voucher/list/command.js +155 -0
  147. package/src/commands/native/coupon/voucher/list/schema.json +772 -0
  148. package/src/commands/native/customer/commands.index.json +96 -0
  149. package/src/commands/native/customer/customer/get/adapter.js +82 -0
  150. package/src/commands/native/customer/customer/get/command.js +106 -0
  151. package/src/commands/native/customer/customer/get/schema.json +958 -0
  152. package/src/commands/native/customer/customer/list/command.js +78 -0
  153. package/src/commands/native/customer/customer/list/input.js +145 -0
  154. package/src/commands/native/customer/customer/list/query.js +103 -0
  155. package/src/commands/native/customer/customer/list/schema.json +969 -0
  156. package/src/commands/native/customer/customer/scan/command.js +80 -0
  157. package/src/commands/native/customer/customer/scan/scan.js +92 -0
  158. package/src/commands/native/customer/customer/scan/schema.json +211 -0
  159. package/src/commands/native/customer/customer-tag/get/command.js +166 -0
  160. package/src/commands/native/customer/customer-tag/get/schema.json +317 -0
  161. package/src/commands/native/customer/customer-tag/list/command.js +143 -0
  162. package/src/commands/native/customer/customer-tag/list/schema.json +259 -0
  163. package/src/commands/native/customer/domain.json +3 -0
  164. package/src/commands/native/customer/segment/list/command.js +96 -0
  165. package/src/commands/native/customer/segment/list/query.js +98 -0
  166. package/src/commands/native/customer/segment/list/schema.json +135 -0
  167. package/src/commands/native/customer/segment-customer/list/command.js +171 -0
  168. package/src/commands/native/customer/segment-customer/list/schema.json +123 -0
  169. package/src/commands/native/customer/shared/search-input.js +179 -0
  170. package/src/commands/native/customer/shared/search-page.js +54 -0
  171. package/src/commands/native/customer/tag/get/command.js +73 -0
  172. package/src/commands/native/customer/tag/get/schema.json +339 -0
  173. package/src/commands/native/customer/tagcategory/get/command.js +80 -0
  174. package/src/commands/native/customer/tagcategory/get/query.js +98 -0
  175. package/src/commands/native/customer/tagcategory/get/schema.json +339 -0
  176. package/src/commands/native/customer/tagcategory/list/command.js +127 -0
  177. package/src/commands/native/customer/tagcategory/list/schema.json +394 -0
  178. package/src/commands/native/fulfillment/commands.index.json +33 -0
  179. package/src/commands/native/fulfillment/delivery/get/command.js +107 -0
  180. package/src/commands/native/fulfillment/delivery/get/projection.js +142 -0
  181. package/src/commands/native/fulfillment/delivery/get/schema.json +173 -0
  182. package/src/commands/native/fulfillment/domain.json +3 -0
  183. package/src/commands/native/fulfillment/shipment/list/command.js +83 -0
  184. package/src/commands/native/fulfillment/shipment/list/projection.js +130 -0
  185. package/src/commands/native/fulfillment/shipment/list/schema.json +752 -0
  186. package/src/commands/native/fulfillment/waybill/get/command.js +193 -0
  187. package/src/commands/native/fulfillment/waybill/get/response.js +68 -0
  188. package/src/commands/native/fulfillment/waybill/get/schema.json +190 -0
  189. package/src/commands/native/interaction/commands.index.json +24 -0
  190. package/src/commands/native/interaction/domain.json +3 -0
  191. package/src/commands/native/interaction/lottery/get/command.js +61 -0
  192. package/src/commands/native/interaction/lottery/get/query.js +152 -0
  193. package/src/commands/native/interaction/lottery/get/schema.json +1004 -0
  194. package/src/commands/native/interaction/lottery/list/command.js +176 -0
  195. package/src/commands/native/interaction/lottery/list/schema.json +898 -0
  196. package/src/commands/native/item/attribute/list/command.js +122 -0
  197. package/src/commands/native/item/attribute/list/schema.json +727 -0
  198. package/src/commands/native/item/brand/list/command.js +114 -0
  199. package/src/commands/native/item/brand/list/schema.json +725 -0
  200. package/src/commands/native/item/classification/get/command.js +87 -0
  201. package/src/commands/native/item/classification/get/schema.json +596 -0
  202. package/src/commands/native/item/classification/list/command.js +105 -0
  203. package/src/commands/native/item/classification/list/schema.json +676 -0
  204. package/src/commands/native/item/commands.index.json +87 -0
  205. package/src/commands/native/item/domain.json +1 -0
  206. package/src/commands/native/item/group/list/command.js +122 -0
  207. package/src/commands/native/item/group/list/schema.json +809 -0
  208. package/src/commands/native/item/item/get/command.js +122 -0
  209. package/src/commands/native/item/item/get/schema.json +3799 -0
  210. package/src/commands/native/item/item/list/command.js +7 -0
  211. package/src/commands/native/item/item/list/schema.json +1118 -0
  212. package/src/commands/native/item/item/scan/command.js +7 -0
  213. package/src/commands/native/item/item/scan/schema.json +1046 -0
  214. package/src/commands/native/item/item-content/get/command.js +54 -0
  215. package/src/commands/native/item/item-content/get/schema.json +677 -0
  216. package/src/commands/native/item/shared/api.js +31 -0
  217. package/src/commands/native/item/shared/content.js +20 -0
  218. package/src/commands/native/item/shared/diagnostics.js +61 -0
  219. package/src/commands/native/item/shared/h5.js +63 -0
  220. package/src/commands/native/item/shared/identity.js +62 -0
  221. package/src/commands/native/item/shared/normalize.js +49 -0
  222. package/src/commands/native/item/shared/scope.js +22 -0
  223. package/src/commands/native/item/shared/search-command.js +61 -0
  224. package/src/commands/native/item/shared/search-options.js +150 -0
  225. package/src/commands/native/item/shared/search.js +158 -0
  226. package/src/commands/native/member/commands.index.json +60 -0
  227. package/src/commands/native/member/customer-level/get/command.js +122 -0
  228. package/src/commands/native/member/customer-level/get/schema.json +300 -0
  229. package/src/commands/native/member/domain.json +3 -0
  230. package/src/commands/native/member/growth/get/command.js +64 -0
  231. package/src/commands/native/member/growth/get/schema.json +283 -0
  232. package/src/commands/native/member/growth-log/list/command.js +203 -0
  233. package/src/commands/native/member/growth-log/list/schema.json +695 -0
  234. package/src/commands/native/member/level/get/command.js +70 -0
  235. package/src/commands/native/member/level/get/query.js +125 -0
  236. package/src/commands/native/member/level/get/schema.json +339 -0
  237. package/src/commands/native/member/level/list/command.js +50 -0
  238. package/src/commands/native/member/level/list/query.js +109 -0
  239. package/src/commands/native/member/level/list/schema.json +104 -0
  240. package/src/commands/native/member/membership/get/command.js +78 -0
  241. package/src/commands/native/member/membership/get/schema.json +283 -0
  242. package/src/commands/native/order/commands.index.json +33 -0
  243. package/src/commands/native/order/domain.json +3 -0
  244. package/src/commands/native/order/order/get/command.js +155 -0
  245. package/src/commands/native/order/order/get/schema.json +1167 -0
  246. package/src/commands/native/order/order/list/command.js +230 -0
  247. package/src/commands/native/order/order/list/schema.json +1363 -0
  248. package/src/commands/native/order/order/scan/command.js +148 -0
  249. package/src/commands/native/order/order/scan/scan.js +89 -0
  250. package/src/commands/native/order/order/scan/schema.json +1445 -0
  251. package/src/commands/native/order/shared/projection.js +183 -0
  252. package/src/commands/native/order/shared/query.js +84 -0
  253. package/src/commands/native/order/shared/search.js +112 -0
  254. package/src/commands/native/org/commands.index.json +42 -0
  255. package/src/commands/native/org/domain.json +3 -0
  256. package/src/commands/native/org/shared/single-staff.js +115 -0
  257. package/src/commands/native/org/staff/get/command.js +148 -0
  258. package/src/commands/native/org/staff/get/schema.json +114 -0
  259. package/src/commands/native/org/staff-role/get/command.js +45 -0
  260. package/src/commands/native/org/staff-role/get/schema.json +93 -0
  261. package/src/commands/native/org/unit/get/command.js +131 -0
  262. package/src/commands/native/org/unit/get/schema.json +478 -0
  263. package/src/commands/native/org/unit/list/command.js +187 -0
  264. package/src/commands/native/org/unit/list/schema.json +828 -0
  265. package/src/commands/native/points/account/get/command.js +65 -0
  266. package/src/commands/native/points/account/get/schema.json +303 -0
  267. package/src/commands/native/points/commands.index.json +33 -0
  268. package/src/commands/native/points/domain.json +3 -0
  269. package/src/commands/native/points/log/list/command.js +141 -0
  270. package/src/commands/native/points/log/list/schema.json +761 -0
  271. package/src/commands/native/points/rule/list/command.js +82 -0
  272. package/src/commands/native/points/rule/list/schema.json +294 -0
  273. package/src/commands/native/privacy/commands.index.json +15 -0
  274. package/src/commands/native/privacy/domain.json +3 -0
  275. package/src/commands/native/privacy/field/decrypt/command.js +185 -0
  276. package/src/commands/native/privacy/field/decrypt/schema.json +656 -0
  277. package/src/commands/native/privacy/shared/order-source.js +33 -0
  278. package/src/commands/native/stock/commands.index.json +15 -0
  279. package/src/commands/native/stock/domain.json +3 -0
  280. package/src/commands/native/stock/log/list/command.js +207 -0
  281. package/src/commands/native/stock/log/list/schema.json +922 -0
  282. package/src/commands/native/valuecard/card/get/command.js +107 -0
  283. package/src/commands/native/valuecard/card/get/schema.json +683 -0
  284. package/src/commands/native/valuecard/card/list/command.js +136 -0
  285. package/src/commands/native/valuecard/card/list/pagination.js +23 -0
  286. package/src/commands/native/valuecard/card/list/schema.json +780 -0
  287. package/src/commands/native/valuecard/commands.index.json +24 -0
  288. package/src/commands/native/valuecard/domain.json +3 -0
  289. package/src/commands/native/valuecard/shared/projection.js +57 -0
  290. package/src/commands/system/api.js +47 -0
  291. package/src/commands/system/auth.js +118 -0
  292. package/src/commands/system/contracts.js +373 -0
  293. package/src/commands/system/doctor.js +24 -0
  294. package/src/commands/system/install.js +41 -0
  295. package/src/commands/system/printer.js +16 -0
  296. package/src/commands/system/schema.js +162 -0
  297. package/src/commands/system/shop-guidance.js +9 -0
  298. package/src/commands/system/shop.js +237 -0
  299. package/src/commands/system/skills.js +49 -0
  300. package/src/execution/beijing-date-time.js +29 -0
  301. package/src/execution/beijing-time.js +21 -0
  302. package/src/execution/bounded-input.js +42 -0
  303. package/src/execution/command-io.js +137 -0
  304. package/src/execution/command-policy.js +41 -0
  305. package/src/execution/command-schema.js +131 -0
  306. package/src/execution/datetime.js +83 -0
  307. package/src/execution/error-details.js +399 -0
  308. package/src/execution/error-model.js +82 -0
  309. package/src/execution/exact-json.js +80 -0
  310. package/src/execution/list-total.js +10 -0
  311. package/src/execution/money.js +59 -0
  312. package/src/execution/parser-error.js +66 -0
  313. package/src/execution/privacy.js +197 -0
  314. package/src/execution/public-schema.js +52 -0
  315. package/src/execution/query-api.js +101 -0
  316. package/src/execution/range.js +84 -0
  317. package/src/execution/request-state.js +55 -0
  318. package/src/execution/schema-completeness.js +116 -0
  319. package/src/execution/shop-query.js +54 -0
  320. package/src/execution/target-shop-default.js +23 -0
  321. package/src/execution/target-shop.js +49 -0
  322. package/src/identity/context-store.js +54 -0
  323. package/src/identity/context.js +38 -0
  324. package/src/installation/install.js +158 -0
  325. package/src/installation/npm-error.js +93 -0
  326. package/src/installation/skill.js +113 -0
  327. package/src/transport/account-api.js +152 -0
  328. package/src/transport/api.js +199 -0
  329. package/src/transport/shop-app.js +63 -0
@@ -0,0 +1,3799 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "input": {
4
+ "type": "object",
5
+ "required": [
6
+ "kdtId",
7
+ "item_id",
8
+ "channel"
9
+ ],
10
+ "additionalProperties": false,
11
+ "properties": {
12
+ "kdtId": {
13
+ "type": "integer",
14
+ "minimum": 1,
15
+ "maximum": 9007199254740991,
16
+ "description": "目标店铺 ID。"
17
+ },
18
+ "item_id": {
19
+ "type": "integer",
20
+ "minimum": 1,
21
+ "maximum": 9007199254740991,
22
+ "description": "商品 ID,同一商品在各分店和渠道使用相同值;与目标店铺和渠道一起定位,不接受渠道商品 ID 替代。"
23
+ },
24
+ "channel": {
25
+ "type": "integer",
26
+ "enum": [
27
+ 0,
28
+ 1
29
+ ],
30
+ "description": "0网店、1门店。"
31
+ },
32
+ "include": {
33
+ "type": "array",
34
+ "items": {
35
+ "enum": [
36
+ "group",
37
+ "content"
38
+ ]
39
+ },
40
+ "description": "通过 --include 选择的追加模块,省略时为空;商品基本信息始终保留。"
41
+ }
42
+ },
43
+ "description": "CLI 解析参数并完成必要上下文补全后的业务输入;不是直接传入 CLI 的 JSON。原始选项、必填条件和默认值见 options。"
44
+ },
45
+ "output": {
46
+ "type": "object",
47
+ "required": [
48
+ "data"
49
+ ],
50
+ "additionalProperties": false,
51
+ "properties": {
52
+ "data": {
53
+ "type": "object",
54
+ "required": [
55
+ "item"
56
+ ],
57
+ "additionalProperties": false,
58
+ "properties": {
59
+ "item": {
60
+ "$ref": "#/definitions/item"
61
+ },
62
+ "group": {
63
+ "$ref": "#/definitions/group"
64
+ },
65
+ "content": {
66
+ "$ref": "#/definitions/content"
67
+ }
68
+ }
69
+ }
70
+ }
71
+ },
72
+ "preview": {
73
+ "type": "object",
74
+ "required": [
75
+ "requests",
76
+ "conditionalRequests"
77
+ ],
78
+ "additionalProperties": false,
79
+ "properties": {
80
+ "requests": {
81
+ "type": "array",
82
+ "items": {
83
+ "$ref": "#/definitions/request"
84
+ }
85
+ },
86
+ "conditionalRequests": {
87
+ "type": "array",
88
+ "items": {
89
+ "type": "object",
90
+ "required": [
91
+ "condition",
92
+ "request",
93
+ "maxPages"
94
+ ],
95
+ "additionalProperties": false,
96
+ "properties": {
97
+ "condition": {
98
+ "type": "string"
99
+ },
100
+ "request": {
101
+ "$ref": "#/definitions/request"
102
+ },
103
+ "maxPages": {
104
+ "type": "integer",
105
+ "minimum": 1,
106
+ "maximum": 100
107
+ }
108
+ }
109
+ }
110
+ }
111
+ }
112
+ },
113
+ "definitions": {
114
+ "scope": {
115
+ "type": "object",
116
+ "required": [
117
+ "kdtId",
118
+ "item_id",
119
+ "channel"
120
+ ],
121
+ "additionalProperties": false,
122
+ "properties": {
123
+ "kdtId": {
124
+ "type": "integer",
125
+ "minimum": 1,
126
+ "maximum": 9007199254740991,
127
+ "description": "目标店铺 ID。"
128
+ },
129
+ "item_id": {
130
+ "type": "integer",
131
+ "minimum": 1,
132
+ "maximum": 9007199254740991,
133
+ "description": "商品 ID,同一商品在各分店和渠道使用相同值;与目标店铺和渠道一起定位,不接受渠道商品 ID 替代。"
134
+ },
135
+ "channel": {
136
+ "type": "integer",
137
+ "enum": [
138
+ 0,
139
+ 1
140
+ ],
141
+ "description": "0网店、1门店。"
142
+ }
143
+ }
144
+ },
145
+ "item": {
146
+ "type": "object",
147
+ "properties": {
148
+ "kdt_id": {
149
+ "type": [
150
+ "integer",
151
+ "null"
152
+ ],
153
+ "minimum": -9007199254740991,
154
+ "maximum": 9007199254740991,
155
+ "description": "店铺在有赞的id标识,有赞平台生成,在有赞平台唯一,用于判断信息属于哪一个店铺"
156
+ },
157
+ "item_id": {
158
+ "type": "integer",
159
+ "minimum": 1,
160
+ "maximum": 9007199254740991,
161
+ "description": "商品 ID,同一商品在各分店和渠道使用相同值;与目标店铺和渠道一起定位,不接受渠道商品 ID 替代。"
162
+ },
163
+ "channel_item_id": {
164
+ "type": [
165
+ "integer",
166
+ "null"
167
+ ],
168
+ "minimum": -9007199254740991,
169
+ "maximum": 9007199254740991,
170
+ "description": "渠道商品 ID,标识目标分店和渠道下的商品,对应旧商品接口的 item_id;数值可能与统一商品 ID 相同,不能据此互换。缺失或 null 按原值保留,不用 item_id 补齐。"
171
+ },
172
+ "root_kdt_id": {
173
+ "type": [
174
+ "integer",
175
+ "null"
176
+ ],
177
+ "minimum": -9007199254740991,
178
+ "maximum": 9007199254740991,
179
+ "description": "有赞连锁总部店铺id,仅供有赞连锁场景下使用。有赞平台生成,在有赞平台唯一,用于判断信息属于哪一个总部"
180
+ },
181
+ "item_type": {
182
+ "type": [
183
+ "integer",
184
+ "null"
185
+ ],
186
+ "minimum": -9007199254740991,
187
+ "maximum": 9007199254740991,
188
+ "description": "商品类型:0实物商品,1虚拟商品、2服务商品"
189
+ },
190
+ "publish_code": {
191
+ "type": [
192
+ "string",
193
+ "null"
194
+ ],
195
+ "description": "商品发布类型。对应商品发布页面的商品类型。值:00000000000000000(实物商品)、01000000000100000(蛋糕烘焙)、01000000004204200(生鲜果蔬)、01000000004304300(海淘商品)、00000000000000002(虚拟商品)、00000000000000003(电子卡券)、01000000005100002(付费优惠券)、00000000003503500(酒店商品)、10000000000000002(本地生活-服务商品)。"
196
+ },
197
+ "title": {
198
+ "type": [
199
+ "string",
200
+ "null"
201
+ ],
202
+ "description": "商品名称"
203
+ },
204
+ "share_description": {
205
+ "type": [
206
+ "string",
207
+ "null"
208
+ ],
209
+ "description": "分享描述"
210
+ },
211
+ "sell_point": {
212
+ "type": [
213
+ "string",
214
+ "null"
215
+ ],
216
+ "description": "商品卖点"
217
+ },
218
+ "alias": {
219
+ "type": [
220
+ "string",
221
+ "null"
222
+ ],
223
+ "description": "商品别名"
224
+ },
225
+ "display": {
226
+ "type": [
227
+ "integer",
228
+ "null"
229
+ ],
230
+ "minimum": -9007199254740991,
231
+ "maximum": 9007199254740991,
232
+ "description": "上下架状态:0下架,1上架,8不可售。"
233
+ },
234
+ "start_sold_time": {
235
+ "type": [
236
+ "string",
237
+ "null"
238
+ ],
239
+ "format": "beijing-date-time-ms",
240
+ "$comment": "upstream-time:seconds",
241
+ "description": "开售时间;北京时间 YYYY-MM-DD HH:mm:ss.SSS。"
242
+ },
243
+ "sold_status": {
244
+ "type": [
245
+ "integer",
246
+ "null"
247
+ ],
248
+ "minimum": -9007199254740991,
249
+ "maximum": 9007199254740991,
250
+ "description": "发售状态:1发售中,2已售罄,3部分售罄"
251
+ },
252
+ "delete": {
253
+ "type": [
254
+ "integer",
255
+ "null"
256
+ ],
257
+ "minimum": -9007199254740991,
258
+ "maximum": 9007199254740991,
259
+ "description": "是否已删除:0否,1是。"
260
+ },
261
+ "item_code": {
262
+ "type": [
263
+ "string",
264
+ "null"
265
+ ],
266
+ "description": "商品编码。"
267
+ },
268
+ "item_barcode": {
269
+ "type": [
270
+ "string",
271
+ "null"
272
+ ],
273
+ "description": "商品条码。"
274
+ },
275
+ "channel": {
276
+ "type": [
277
+ "integer",
278
+ "null"
279
+ ],
280
+ "minimum": -9007199254740991,
281
+ "maximum": 9007199254740991,
282
+ "description": "渠道:0网店,1门店"
283
+ },
284
+ "leaf_category_id": {
285
+ "type": [
286
+ "integer",
287
+ "null"
288
+ ],
289
+ "minimum": -9007199254740991,
290
+ "maximum": 9007199254740991,
291
+ "description": "类目ID"
292
+ },
293
+ "classification_id": {
294
+ "type": [
295
+ "integer",
296
+ "null"
297
+ ],
298
+ "minimum": -9007199254740991,
299
+ "maximum": 9007199254740991,
300
+ "description": "分类ID。"
301
+ },
302
+ "brand_id": {
303
+ "type": [
304
+ "integer",
305
+ "null"
306
+ ],
307
+ "minimum": -9007199254740991,
308
+ "maximum": 9007199254740991,
309
+ "description": "品牌ID"
310
+ },
311
+ "origin_price": {
312
+ "type": [
313
+ "string",
314
+ "null"
315
+ ],
316
+ "description": "划线价。单位:元。示例:17.6。 输出固定两位小数字符串;空字符串保持空字符串。",
317
+ "$comment": "upstream-money:yuan",
318
+ "pattern": "^(?:|-?(?:0|[1-9]\\d*)\\.\\d{2})$"
319
+ },
320
+ "sold_num": {
321
+ "type": [
322
+ "integer",
323
+ "null"
324
+ ],
325
+ "minimum": -9007199254740991,
326
+ "maximum": 9007199254740991,
327
+ "description": "销量"
328
+ },
329
+ "join_member_discount": {
330
+ "type": [
331
+ "integer",
332
+ "null"
333
+ ],
334
+ "minimum": -9007199254740991,
335
+ "maximum": 9007199254740991,
336
+ "description": "是否参与会员折扣。值:0-否、1-是。"
337
+ },
338
+ "unit": {
339
+ "type": [
340
+ "string",
341
+ "null"
342
+ ],
343
+ "description": "库存单位"
344
+ },
345
+ "message_settings": {
346
+ "type": [
347
+ "array",
348
+ "null"
349
+ ],
350
+ "items": {
351
+ "type": "object",
352
+ "properties": {
353
+ "date_time": {
354
+ "type": [
355
+ "integer",
356
+ "null"
357
+ ],
358
+ "minimum": -9007199254740991,
359
+ "maximum": 9007199254740991,
360
+ "description": "时间是否含日期。0 否 1是。目前只有Type=time 会设置。"
361
+ },
362
+ "multiple": {
363
+ "type": [
364
+ "integer",
365
+ "null"
366
+ ],
367
+ "minimum": -9007199254740991,
368
+ "maximum": 9007199254740991,
369
+ "description": "是否多选。0否、1是。"
370
+ },
371
+ "name": {
372
+ "type": [
373
+ "string",
374
+ "null"
375
+ ],
376
+ "description": "留言名称。不能多于10个字。"
377
+ },
378
+ "required": {
379
+ "type": [
380
+ "integer",
381
+ "null"
382
+ ],
383
+ "minimum": -9007199254740991,
384
+ "maximum": 9007199254740991,
385
+ "description": "是否必选。0否、1必选。"
386
+ },
387
+ "type": {
388
+ "type": [
389
+ "string",
390
+ "null"
391
+ ],
392
+ "description": "留言数据类型。值:text(文本格式)、tel(数字格式)、email(邮箱格式)、date(日期格式)、id_no(身份证号格式)、image(图片格式)、mobile(手机号格式)、time(时间格式)。"
393
+ }
394
+ },
395
+ "additionalProperties": true
396
+ },
397
+ "description": "留言"
398
+ },
399
+ "media": {
400
+ "type": [
401
+ "object",
402
+ "null"
403
+ ],
404
+ "properties": {
405
+ "images": {
406
+ "type": [
407
+ "array",
408
+ "null"
409
+ ],
410
+ "items": {
411
+ "type": "object",
412
+ "properties": {
413
+ "image_id": {
414
+ "type": [
415
+ "integer",
416
+ "null"
417
+ ],
418
+ "minimum": -9007199254740991,
419
+ "maximum": 9007199254740991,
420
+ "description": "图片ID"
421
+ },
422
+ "width": {
423
+ "type": [
424
+ "integer",
425
+ "null"
426
+ ],
427
+ "minimum": -9007199254740991,
428
+ "maximum": 9007199254740991,
429
+ "description": "宽度。单位:像素。"
430
+ },
431
+ "height": {
432
+ "type": [
433
+ "integer",
434
+ "null"
435
+ ],
436
+ "minimum": -9007199254740991,
437
+ "maximum": 9007199254740991,
438
+ "description": "高度。单位:像素。"
439
+ },
440
+ "url": {
441
+ "type": [
442
+ "string",
443
+ "null"
444
+ ],
445
+ "description": "图片url"
446
+ }
447
+ },
448
+ "additionalProperties": true
449
+ },
450
+ "description": "商品主图"
451
+ },
452
+ "main_video": {
453
+ "type": [
454
+ "object",
455
+ "null"
456
+ ],
457
+ "properties": {
458
+ "video_id": {
459
+ "type": [
460
+ "integer",
461
+ "null"
462
+ ],
463
+ "minimum": -9007199254740991,
464
+ "maximum": 9007199254740991,
465
+ "description": "视频ID"
466
+ },
467
+ "video_name": {
468
+ "type": [
469
+ "string",
470
+ "null"
471
+ ],
472
+ "description": "视频名称"
473
+ },
474
+ "video_duration": {
475
+ "type": [
476
+ "integer",
477
+ "null"
478
+ ],
479
+ "minimum": -9007199254740991,
480
+ "maximum": 9007199254740991,
481
+ "description": "视频时长(秒)"
482
+ },
483
+ "video_path": {
484
+ "type": [
485
+ "string",
486
+ "null"
487
+ ],
488
+ "description": "视频路径"
489
+ },
490
+ "video_url": {
491
+ "type": [
492
+ "string",
493
+ "null"
494
+ ],
495
+ "description": "可播放地址。有效期:24h。"
496
+ },
497
+ "count_played_url": {
498
+ "type": [
499
+ "string",
500
+ "null"
501
+ ],
502
+ "description": "播放计数地址"
503
+ },
504
+ "video_size": {
505
+ "type": [
506
+ "integer",
507
+ "null"
508
+ ],
509
+ "minimum": -9007199254740991,
510
+ "maximum": 9007199254740991,
511
+ "description": "视频文件大小(单位:字节)"
512
+ },
513
+ "cover_url": {
514
+ "type": [
515
+ "string",
516
+ "null"
517
+ ],
518
+ "description": "封面图片地址"
519
+ },
520
+ "cover_width": {
521
+ "type": [
522
+ "integer",
523
+ "null"
524
+ ],
525
+ "minimum": -9007199254740991,
526
+ "maximum": 9007199254740991,
527
+ "description": "封面图片宽度。单位:像素。"
528
+ },
529
+ "cover_height": {
530
+ "type": [
531
+ "integer",
532
+ "null"
533
+ ],
534
+ "minimum": -9007199254740991,
535
+ "maximum": 9007199254740991,
536
+ "description": "封面图片高度。单位:像素。"
537
+ },
538
+ "played_count": {
539
+ "type": [
540
+ "integer",
541
+ "null"
542
+ ],
543
+ "minimum": -9007199254740991,
544
+ "maximum": 9007199254740991,
545
+ "description": "播放次数"
546
+ },
547
+ "origin_height": {
548
+ "type": [
549
+ "integer",
550
+ "null"
551
+ ],
552
+ "minimum": -9007199254740991,
553
+ "maximum": 9007199254740991,
554
+ "description": "原视频高度,单位:像素。"
555
+ },
556
+ "origin_width": {
557
+ "type": [
558
+ "integer",
559
+ "null"
560
+ ],
561
+ "minimum": -9007199254740991,
562
+ "maximum": 9007199254740991,
563
+ "description": "原视频宽度,单位:像素。"
564
+ }
565
+ },
566
+ "additionalProperties": true,
567
+ "description": "主图视频详情"
568
+ },
569
+ "explain_video": {
570
+ "type": [
571
+ "object",
572
+ "null"
573
+ ],
574
+ "properties": {
575
+ "video_id": {
576
+ "type": [
577
+ "integer",
578
+ "null"
579
+ ],
580
+ "minimum": -9007199254740991,
581
+ "maximum": 9007199254740991,
582
+ "description": "视频ID"
583
+ },
584
+ "video_name": {
585
+ "type": [
586
+ "string",
587
+ "null"
588
+ ],
589
+ "description": "视频名称"
590
+ },
591
+ "video_duration": {
592
+ "type": [
593
+ "integer",
594
+ "null"
595
+ ],
596
+ "minimum": -9007199254740991,
597
+ "maximum": 9007199254740991,
598
+ "description": "视频时长(秒)"
599
+ },
600
+ "video_path": {
601
+ "type": [
602
+ "string",
603
+ "null"
604
+ ],
605
+ "description": "视频路径"
606
+ },
607
+ "video_url": {
608
+ "type": [
609
+ "string",
610
+ "null"
611
+ ],
612
+ "description": "可播放地址,有效期:24h。"
613
+ },
614
+ "count_played_url": {
615
+ "type": [
616
+ "string",
617
+ "null"
618
+ ],
619
+ "description": "播放计数地址"
620
+ },
621
+ "video_size": {
622
+ "type": [
623
+ "integer",
624
+ "null"
625
+ ],
626
+ "minimum": -9007199254740991,
627
+ "maximum": 9007199254740991,
628
+ "description": "视频文件大小(单位:字节)"
629
+ },
630
+ "cover_url": {
631
+ "type": [
632
+ "string",
633
+ "null"
634
+ ],
635
+ "description": "封面图片地址"
636
+ },
637
+ "cover_width": {
638
+ "type": [
639
+ "integer",
640
+ "null"
641
+ ],
642
+ "minimum": -9007199254740991,
643
+ "maximum": 9007199254740991,
644
+ "description": "封面图片宽度。单位:像素。"
645
+ },
646
+ "cover_height": {
647
+ "type": [
648
+ "integer",
649
+ "null"
650
+ ],
651
+ "minimum": -9007199254740991,
652
+ "maximum": 9007199254740991,
653
+ "description": "封面图片高度。单位:像素。"
654
+ },
655
+ "played_count": {
656
+ "type": [
657
+ "integer",
658
+ "null"
659
+ ],
660
+ "minimum": -9007199254740991,
661
+ "maximum": 9007199254740991,
662
+ "description": "播放次数"
663
+ },
664
+ "origin_height": {
665
+ "type": [
666
+ "integer",
667
+ "null"
668
+ ],
669
+ "minimum": -9007199254740991,
670
+ "maximum": 9007199254740991,
671
+ "description": "原视频高度。单位:像素。"
672
+ },
673
+ "origin_width": {
674
+ "type": [
675
+ "integer",
676
+ "null"
677
+ ],
678
+ "minimum": -9007199254740991,
679
+ "maximum": 9007199254740991,
680
+ "description": "原视频宽度。单位:像素。"
681
+ }
682
+ },
683
+ "additionalProperties": true,
684
+ "description": "讲解视频详情"
685
+ }
686
+ },
687
+ "additionalProperties": true,
688
+ "description": "商品媒体包含主图、主图视频、讲解视频。"
689
+ },
690
+ "specs": {
691
+ "type": [
692
+ "array",
693
+ "null"
694
+ ],
695
+ "items": {
696
+ "type": "object",
697
+ "properties": {
698
+ "spec_id": {
699
+ "type": [
700
+ "integer",
701
+ "null"
702
+ ],
703
+ "minimum": -9007199254740991,
704
+ "maximum": 9007199254740991,
705
+ "description": "规格项ID"
706
+ },
707
+ "spec_name": {
708
+ "type": [
709
+ "string",
710
+ "null"
711
+ ],
712
+ "description": "规格项名称"
713
+ },
714
+ "is_show_spec_picture": {
715
+ "type": [
716
+ "boolean",
717
+ "null"
718
+ ],
719
+ "description": "是否显示规格图片"
720
+ },
721
+ "spec_values": {
722
+ "type": [
723
+ "array",
724
+ "null"
725
+ ],
726
+ "items": {
727
+ "type": "object",
728
+ "properties": {
729
+ "spec_id": {
730
+ "type": [
731
+ "integer",
732
+ "null"
733
+ ],
734
+ "minimum": -9007199254740991,
735
+ "maximum": 9007199254740991,
736
+ "description": "规格项ID"
737
+ },
738
+ "spec_name": {
739
+ "type": [
740
+ "string",
741
+ "null"
742
+ ],
743
+ "description": "规格项名称"
744
+ },
745
+ "spec_value_id": {
746
+ "type": [
747
+ "integer",
748
+ "null"
749
+ ],
750
+ "minimum": -9007199254740991,
751
+ "maximum": 9007199254740991,
752
+ "description": "规格值ID"
753
+ },
754
+ "spec_value_name": {
755
+ "type": [
756
+ "string",
757
+ "null"
758
+ ],
759
+ "description": "规格值名称"
760
+ },
761
+ "spec_image": {
762
+ "type": [
763
+ "string",
764
+ "null"
765
+ ],
766
+ "description": "规格图片"
767
+ }
768
+ },
769
+ "additionalProperties": true
770
+ },
771
+ "description": "规格项的值列表"
772
+ }
773
+ },
774
+ "additionalProperties": true
775
+ },
776
+ "description": "商品的销售规格信息。无规格商品时,该字段是null或空数组。"
777
+ },
778
+ "skus": {
779
+ "type": [
780
+ "array",
781
+ "null"
782
+ ],
783
+ "items": {
784
+ "type": "object",
785
+ "properties": {
786
+ "sku_id": {
787
+ "type": [
788
+ "integer",
789
+ "null"
790
+ ],
791
+ "minimum": -9007199254740991,
792
+ "maximum": 9007199254740991,
793
+ "description": "商品规格 ID,同一规格在各分店和渠道使用相同值;与所属商品 ID 一起解释。"
794
+ },
795
+ "channel_sku_id": {
796
+ "type": [
797
+ "integer",
798
+ "null"
799
+ ],
800
+ "minimum": -9007199254740991,
801
+ "maximum": 9007199254740991,
802
+ "description": "渠道商品规格 ID,标识目标分店和渠道下的规格,对应旧商品接口的 sku_id;数值可能与统一规格 ID 相同,不能据此互换。缺失或 null 按原值保留,不用 sku_id 补齐。"
803
+ },
804
+ "price": {
805
+ "type": [
806
+ "string",
807
+ "null"
808
+ ],
809
+ "description": "价格。单位:元。 输出固定两位小数字符串。",
810
+ "$comment": "upstream-money:fen",
811
+ "pattern": "^-?(?:0|[1-9]\\d*)\\.\\d{2}$"
812
+ },
813
+ "cost_price": {
814
+ "type": [
815
+ "string",
816
+ "null"
817
+ ],
818
+ "description": "成本价。单位:元。 输出固定两位小数字符串。",
819
+ "$comment": "upstream-money:fen",
820
+ "pattern": "^-?(?:0|[1-9]\\d*)\\.\\d{2}$"
821
+ },
822
+ "sku_code": {
823
+ "type": [
824
+ "string",
825
+ "null"
826
+ ],
827
+ "description": "规格编码"
828
+ },
829
+ "sku_barcode": {
830
+ "type": [
831
+ "string",
832
+ "null"
833
+ ],
834
+ "description": "商品条码"
835
+ },
836
+ "spec_values": {
837
+ "type": [
838
+ "array",
839
+ "null"
840
+ ],
841
+ "items": {
842
+ "type": "object",
843
+ "properties": {
844
+ "spec_id": {
845
+ "type": [
846
+ "integer",
847
+ "null"
848
+ ],
849
+ "minimum": -9007199254740991,
850
+ "maximum": 9007199254740991,
851
+ "description": "规格项ID"
852
+ },
853
+ "spec_name": {
854
+ "type": [
855
+ "string",
856
+ "null"
857
+ ],
858
+ "description": "规格项名称"
859
+ },
860
+ "spec_value_id": {
861
+ "type": [
862
+ "integer",
863
+ "null"
864
+ ],
865
+ "minimum": -9007199254740991,
866
+ "maximum": 9007199254740991,
867
+ "description": "规格值ID"
868
+ },
869
+ "spec_value_name": {
870
+ "type": [
871
+ "string",
872
+ "null"
873
+ ],
874
+ "description": "规格值名称"
875
+ }
876
+ },
877
+ "additionalProperties": true
878
+ },
879
+ "description": "规格值列表"
880
+ },
881
+ "weight": {
882
+ "type": [
883
+ "integer",
884
+ "null"
885
+ ],
886
+ "minimum": -9007199254740991,
887
+ "maximum": 9007199254740991,
888
+ "description": "重量,单位:克。"
889
+ },
890
+ "is_sell": {
891
+ "type": [
892
+ "boolean",
893
+ "null"
894
+ ],
895
+ "description": "分销商品sku是否销售。true-是、false-否。"
896
+ },
897
+ "created_time": {
898
+ "type": [
899
+ "string",
900
+ "null"
901
+ ],
902
+ "format": "beijing-date-time-ms",
903
+ "$comment": "upstream-time:seconds",
904
+ "description": "创建时间;北京时间 YYYY-MM-DD HH:mm:ss.SSS。"
905
+ },
906
+ "disable_status": {
907
+ "type": [
908
+ "integer",
909
+ "null"
910
+ ],
911
+ "minimum": -9007199254740991,
912
+ "maximum": 9007199254740991,
913
+ "description": "sku启禁用。值:0-启用、1-禁用,至少有一个规格是启用"
914
+ }
915
+ },
916
+ "additionalProperties": true
917
+ },
918
+ "description": "sku信息。"
919
+ },
920
+ "ability_mark": {
921
+ "type": [
922
+ "object",
923
+ "null"
924
+ ],
925
+ "properties": {
926
+ "ability_mark_code_list": {
927
+ "type": [
928
+ "array",
929
+ "null"
930
+ ],
931
+ "items": {
932
+ "type": [
933
+ "integer"
934
+ ],
935
+ "minimum": -9007199254740991,
936
+ "maximum": 9007199254740991,
937
+ "description": "列表元素"
938
+ },
939
+ "description": "能力标Code列表"
940
+ },
941
+ "item_mark": {
942
+ "type": [
943
+ "object",
944
+ "null"
945
+ ],
946
+ "properties": {
947
+ "distribution_mark": {
948
+ "type": [
949
+ "object",
950
+ "null"
951
+ ],
952
+ "properties": {
953
+ "is_express": {
954
+ "type": [
955
+ "boolean",
956
+ "null"
957
+ ],
958
+ "description": "是否支持快递发货。true-是、false-否。不支持蛋糕烘焙。"
959
+ },
960
+ "is_city_delivery": {
961
+ "type": [
962
+ "boolean",
963
+ "null"
964
+ ],
965
+ "description": "是否支持同城配送。true-是、false-否。"
966
+ },
967
+ "is_self_pick": {
968
+ "type": [
969
+ "boolean",
970
+ "null"
971
+ ],
972
+ "description": "是否支持到店自提。true-是、false-否。"
973
+ },
974
+ "is_heavy_continued": {
975
+ "type": [
976
+ "boolean",
977
+ "null"
978
+ ],
979
+ "description": "开启同城配送时,是否开启续重收费。true-是、false-否。"
980
+ },
981
+ "delivery_template_id": {
982
+ "type": [
983
+ "integer",
984
+ "null"
985
+ ],
986
+ "minimum": -9007199254740991,
987
+ "maximum": 9007199254740991,
988
+ "description": "开启快递发货时,运费模板ID。deliveryTemplateId、postage、expressPayMode任选一。"
989
+ },
990
+ "postage": {
991
+ "type": [
992
+ "string",
993
+ "null"
994
+ ],
995
+ "description": "开启快递发货时,统一邮费,单位:元。deliveryTemplateId、postage、expressPayMode任选一。 输出固定两位小数字符串。",
996
+ "$comment": "upstream-money:fen",
997
+ "pattern": "^-?(?:0|[1-9]\\d*)\\.\\d{2}$"
998
+ },
999
+ "express_pay_mode": {
1000
+ "type": [
1001
+ "integer",
1002
+ "null"
1003
+ ],
1004
+ "minimum": -9007199254740991,
1005
+ "maximum": 9007199254740991,
1006
+ "description": "开启快递发货时,快递运费支付模式。值:1-运费到付。deliveryTemplateId、postage、expressPayMode任选一。仅支持微商城。"
1007
+ },
1008
+ "local_delivery_time_type": {
1009
+ "type": [
1010
+ "integer",
1011
+ "null"
1012
+ ],
1013
+ "minimum": -9007199254740991,
1014
+ "maximum": 9007199254740991,
1015
+ "description": "同城配送时间配置类型。0-使用统一时间配置、1-该商品自定义配送时间。仅支持门店、连锁店铺。"
1016
+ },
1017
+ "local_delivery_time": {
1018
+ "type": [
1019
+ "object",
1020
+ "null"
1021
+ ],
1022
+ "properties": {
1023
+ "ahead_max_type": {
1024
+ "type": [
1025
+ "string",
1026
+ "null"
1027
+ ],
1028
+ "description": "最长预约类型。 默认\"day\"。值:day(配送可预约n天内)、before_fix_date:只能预约 yyyy-MM-dd 前下单。"
1029
+ },
1030
+ "ahead_max": {
1031
+ "type": [
1032
+ "integer",
1033
+ "null"
1034
+ ],
1035
+ "minimum": -9007199254740991,
1036
+ "maximum": 9007199254740991,
1037
+ "description": "最多提前几天下订单, 仅限当天:0、null。"
1038
+ },
1039
+ "latest_reserve_date": {
1040
+ "type": [
1041
+ "string",
1042
+ "null"
1043
+ ],
1044
+ "description": "最晚预约日期,格式:yyyy-MM-dd。计算截止到这天的23:59:59。"
1045
+ },
1046
+ "time_bucket": {
1047
+ "type": [
1048
+ "array",
1049
+ "null"
1050
+ ],
1051
+ "items": {
1052
+ "type": "object",
1053
+ "properties": {
1054
+ "start_time": {
1055
+ "type": [
1056
+ "string",
1057
+ "null"
1058
+ ],
1059
+ "description": "开始时间, 格式:HHmm, 例如: 08:00。"
1060
+ },
1061
+ "end_time": {
1062
+ "type": [
1063
+ "string",
1064
+ "null"
1065
+ ],
1066
+ "description": "结束时间, 格式:HHmm, 例如: 20:00"
1067
+ },
1068
+ "switchs": {
1069
+ "type": [
1070
+ "string",
1071
+ "null"
1072
+ ],
1073
+ "description": "周开关,配合每周重复。例如\"1111100\": 第一位代表星期一, 以此类推。"
1074
+ },
1075
+ "time_range_type": {
1076
+ "type": [
1077
+ "integer",
1078
+ "null"
1079
+ ],
1080
+ "minimum": -9007199254740991,
1081
+ "maximum": 9007199254740991,
1082
+ "description": "配送时段类型:1:全天 2:每天重复 3:每周重复"
1083
+ }
1084
+ },
1085
+ "additionalProperties": true
1086
+ },
1087
+ "description": "配送时段列表。"
1088
+ },
1089
+ "rule_type": {
1090
+ "type": [
1091
+ "integer",
1092
+ "null"
1093
+ ],
1094
+ "minimum": -9007199254740991,
1095
+ "maximum": 9007199254740991,
1096
+ "description": "预约时间类型。0(需提前n分钟/小时/天预约)、1(按下单时间配置可预约时间)、2(库存时间类型)"
1097
+ },
1098
+ "ahead_min_type": {
1099
+ "type": [
1100
+ "string",
1101
+ "null"
1102
+ ],
1103
+ "description": "ruleType=0时,需提前预约的时间类型。值:day-日、hour-小时、minute-分钟。"
1104
+ },
1105
+ "ahead_min": {
1106
+ "type": [
1107
+ "integer",
1108
+ "null"
1109
+ ],
1110
+ "minimum": -9007199254740991,
1111
+ "maximum": 9007199254740991,
1112
+ "description": "提前预约时间。"
1113
+ },
1114
+ "cut_off_rule": {
1115
+ "type": [
1116
+ "object",
1117
+ "null"
1118
+ ],
1119
+ "properties": {
1120
+ "hour": {
1121
+ "type": [
1122
+ "integer",
1123
+ "null"
1124
+ ],
1125
+ "minimum": -9007199254740991,
1126
+ "maximum": 9007199254740991,
1127
+ "description": "截止下单时间-小时。如:截止下单时间16:30,值是16"
1128
+ },
1129
+ "minute": {
1130
+ "type": [
1131
+ "integer",
1132
+ "null"
1133
+ ],
1134
+ "minimum": -9007199254740991,
1135
+ "maximum": 9007199254740991,
1136
+ "description": "截止下单时间-分钟。如:截止下单时间16:30,值是30"
1137
+ },
1138
+ "before_ahead_min_type": {
1139
+ "type": [
1140
+ "string",
1141
+ "null"
1142
+ ],
1143
+ "description": "截止下单时间前下单,需要提前预约的时间类型。值:day-日、hour-小时、minute-分钟。"
1144
+ },
1145
+ "before_ahead_min": {
1146
+ "type": [
1147
+ "integer",
1148
+ "null"
1149
+ ],
1150
+ "minimum": -9007199254740991,
1151
+ "maximum": 9007199254740991,
1152
+ "description": "截止下单时间前下单,需要提前预约的时间"
1153
+ },
1154
+ "after_ahead_min_type": {
1155
+ "type": [
1156
+ "string",
1157
+ "null"
1158
+ ],
1159
+ "description": "截止下单时间后下单,需要提前预约的时间类型。值:day-日、hour-小时、minute-分钟。"
1160
+ },
1161
+ "after_ahead_min": {
1162
+ "type": [
1163
+ "integer",
1164
+ "null"
1165
+ ],
1166
+ "minimum": -9007199254740991,
1167
+ "maximum": 9007199254740991,
1168
+ "description": "截止下单时间后下单,需要提前预约的时间"
1169
+ }
1170
+ },
1171
+ "additionalProperties": true,
1172
+ "description": "按照下单截止时间预约配送时间的设置详情。"
1173
+ },
1174
+ "inventory_rule": {
1175
+ "type": [
1176
+ "object",
1177
+ "null"
1178
+ ],
1179
+ "properties": {
1180
+ "material_ahead_min_type": {
1181
+ "type": [
1182
+ "string",
1183
+ "null"
1184
+ ],
1185
+ "description": "实物库存,下单需提前预约的时间类型:day-日、hour-小时、minute-分钟"
1186
+ },
1187
+ "material_ahead_min": {
1188
+ "type": [
1189
+ "integer",
1190
+ "null"
1191
+ ],
1192
+ "minimum": -9007199254740991,
1193
+ "maximum": 9007199254740991,
1194
+ "description": "实物库存,下单需提前预约的时间"
1195
+ },
1196
+ "plan_ahead_min_type": {
1197
+ "type": [
1198
+ "string",
1199
+ "null"
1200
+ ],
1201
+ "description": "计划库存,下单需提前预约的时间类型:day-日、hour-小时、minute-分钟"
1202
+ },
1203
+ "plan_ahead_min": {
1204
+ "type": [
1205
+ "integer",
1206
+ "null"
1207
+ ],
1208
+ "minimum": -9007199254740991,
1209
+ "maximum": 9007199254740991,
1210
+ "description": "计划库存,下单需提前预约时间"
1211
+ },
1212
+ "support_cut_off": {
1213
+ "type": [
1214
+ "integer",
1215
+ "null"
1216
+ ],
1217
+ "minimum": -9007199254740991,
1218
+ "maximum": 9007199254740991,
1219
+ "description": "是否支持按下单时间设置预约配送时间。0-否、1-是"
1220
+ },
1221
+ "cut_off_rule": {
1222
+ "type": [
1223
+ "object",
1224
+ "null"
1225
+ ],
1226
+ "properties": {
1227
+ "hour": {
1228
+ "type": [
1229
+ "integer",
1230
+ "null"
1231
+ ],
1232
+ "minimum": -9007199254740991,
1233
+ "maximum": 9007199254740991,
1234
+ "description": "截止下单时间-小时。如:截止下单时间16:30,值是16"
1235
+ },
1236
+ "minute": {
1237
+ "type": [
1238
+ "integer",
1239
+ "null"
1240
+ ],
1241
+ "minimum": -9007199254740991,
1242
+ "maximum": 9007199254740991,
1243
+ "description": "截止下单时间-分钟。如:截止下单时间16:30,值是30"
1244
+ },
1245
+ "before_ahead_min_type": {
1246
+ "type": [
1247
+ "string",
1248
+ "null"
1249
+ ],
1250
+ "description": "截止下单时间前下单,需要提前预约的时间类型。值:day-日、hour-小时、minute-分钟。"
1251
+ },
1252
+ "before_ahead_min": {
1253
+ "type": [
1254
+ "integer",
1255
+ "null"
1256
+ ],
1257
+ "minimum": -9007199254740991,
1258
+ "maximum": 9007199254740991,
1259
+ "description": "截止下单时间前下单,需要提前预约的时间"
1260
+ },
1261
+ "after_ahead_min_type": {
1262
+ "type": [
1263
+ "string",
1264
+ "null"
1265
+ ],
1266
+ "description": "截止下单时间后下单,需要提前预约的时间类型。值:day-日、hour-小时、minute-分钟。"
1267
+ },
1268
+ "after_ahead_min": {
1269
+ "type": [
1270
+ "integer",
1271
+ "null"
1272
+ ],
1273
+ "minimum": -9007199254740991,
1274
+ "maximum": 9007199254740991,
1275
+ "description": "截止下单时间后下单,需要提前预约的时间"
1276
+ }
1277
+ },
1278
+ "additionalProperties": true,
1279
+ "description": "按照下单截止时间预约配送时间的设置详情。"
1280
+ }
1281
+ },
1282
+ "additionalProperties": true,
1283
+ "description": "按照库存类型预约配送时间的设置详情。"
1284
+ }
1285
+ },
1286
+ "additionalProperties": true,
1287
+ "description": "开启同城配送 且 localDeliveryTimeType=1时,同城配送的自定义送时间详情。仅支持门店、连锁店铺。"
1288
+ },
1289
+ "self_fetch_delivery_time_type": {
1290
+ "type": [
1291
+ "integer",
1292
+ "null"
1293
+ ],
1294
+ "minimum": -9007199254740991,
1295
+ "maximum": 9007199254740991,
1296
+ "description": "到店自提时间配置类型。0-使用统一时间配置、1-该商品自定义配送时间。仅支持门店、连锁店铺。"
1297
+ },
1298
+ "self_fetch_delivery_time": {
1299
+ "type": [
1300
+ "object",
1301
+ "null"
1302
+ ],
1303
+ "properties": {
1304
+ "ahead_max_type": {
1305
+ "type": [
1306
+ "string",
1307
+ "null"
1308
+ ],
1309
+ "description": "最长预约类型。 默认\"day\"。值:day(配送可预约n天内)、before_fix_date:只能预约 yyyy-MM-dd 前下单。"
1310
+ },
1311
+ "ahead_max": {
1312
+ "type": [
1313
+ "integer",
1314
+ "null"
1315
+ ],
1316
+ "minimum": -9007199254740991,
1317
+ "maximum": 9007199254740991,
1318
+ "description": "最多提前几天下订单, 仅限当天:0、null。"
1319
+ },
1320
+ "latest_reserve_date": {
1321
+ "type": [
1322
+ "string",
1323
+ "null"
1324
+ ],
1325
+ "description": "最晚预约日期,格式:yyyy:MM:dd。计算截止到这天的23:59:59。"
1326
+ },
1327
+ "time_bucket": {
1328
+ "type": [
1329
+ "array",
1330
+ "null"
1331
+ ],
1332
+ "items": {
1333
+ "type": "object",
1334
+ "properties": {
1335
+ "start_time": {
1336
+ "type": [
1337
+ "string",
1338
+ "null"
1339
+ ],
1340
+ "description": "开始时间, 格式:HH:mm, 例如: 08:00。"
1341
+ },
1342
+ "end_time": {
1343
+ "type": [
1344
+ "string",
1345
+ "null"
1346
+ ],
1347
+ "description": "结束时间, 格式:HH:mm, 例如: 20:00"
1348
+ },
1349
+ "switchs": {
1350
+ "type": [
1351
+ "string",
1352
+ "null"
1353
+ ],
1354
+ "description": "周开关,配合每周重复。例如\"1111100\": 第一位代表星期一, 以此类推。"
1355
+ },
1356
+ "time_range_type": {
1357
+ "type": [
1358
+ "integer",
1359
+ "null"
1360
+ ],
1361
+ "minimum": -9007199254740991,
1362
+ "maximum": 9007199254740991,
1363
+ "description": "配送时段类型:1:全天 2:每天重复 3:每周重复"
1364
+ }
1365
+ },
1366
+ "additionalProperties": true
1367
+ },
1368
+ "description": "配送时段列表。"
1369
+ },
1370
+ "rule_type": {
1371
+ "type": [
1372
+ "integer",
1373
+ "null"
1374
+ ],
1375
+ "minimum": -9007199254740991,
1376
+ "maximum": 9007199254740991,
1377
+ "description": "预约时间类型。0(需提前n分钟/小时/天预约)、1(按下单时间配置可预约时间)、2(库存时间类型)"
1378
+ },
1379
+ "ahead_min_type": {
1380
+ "type": [
1381
+ "string",
1382
+ "null"
1383
+ ],
1384
+ "description": "ruleType=0时,需提前预约的时间类型。值:day-日、hour-小时、minute-分钟。"
1385
+ },
1386
+ "ahead_min": {
1387
+ "type": [
1388
+ "integer",
1389
+ "null"
1390
+ ],
1391
+ "minimum": -9007199254740991,
1392
+ "maximum": 9007199254740991,
1393
+ "description": "提前预约时间。"
1394
+ },
1395
+ "cut_off_rule": {
1396
+ "type": [
1397
+ "object",
1398
+ "null"
1399
+ ],
1400
+ "properties": {
1401
+ "hour": {
1402
+ "type": [
1403
+ "integer",
1404
+ "null"
1405
+ ],
1406
+ "minimum": -9007199254740991,
1407
+ "maximum": 9007199254740991,
1408
+ "description": "截止下单时间-小时。如:截止下单时间16:30,值是16"
1409
+ },
1410
+ "minute": {
1411
+ "type": [
1412
+ "integer",
1413
+ "null"
1414
+ ],
1415
+ "minimum": -9007199254740991,
1416
+ "maximum": 9007199254740991,
1417
+ "description": "截止下单时间-分钟。如:截止下单时间16:30,值是30"
1418
+ },
1419
+ "before_ahead_min_type": {
1420
+ "type": [
1421
+ "string",
1422
+ "null"
1423
+ ],
1424
+ "description": "截止下单时间前下单,需要提前预约的时间类型。值:day-日、hour-小时、minute-分钟。"
1425
+ },
1426
+ "before_ahead_min": {
1427
+ "type": [
1428
+ "integer",
1429
+ "null"
1430
+ ],
1431
+ "minimum": -9007199254740991,
1432
+ "maximum": 9007199254740991,
1433
+ "description": "截止下单时间前下单,需要提前预约的时间"
1434
+ },
1435
+ "after_ahead_min_type": {
1436
+ "type": [
1437
+ "string",
1438
+ "null"
1439
+ ],
1440
+ "description": "截止下单时间后下单,需要提前预约的时间类型。值:day-日、hour-小时、minute-分钟。"
1441
+ },
1442
+ "after_ahead_min": {
1443
+ "type": [
1444
+ "integer",
1445
+ "null"
1446
+ ],
1447
+ "minimum": -9007199254740991,
1448
+ "maximum": 9007199254740991,
1449
+ "description": "截止下单时间后下单,需要提前预约的时间"
1450
+ }
1451
+ },
1452
+ "additionalProperties": true,
1453
+ "description": "按照下单截止时间预约配送时间的设置详情。"
1454
+ },
1455
+ "inventory_rule": {
1456
+ "type": [
1457
+ "object",
1458
+ "null"
1459
+ ],
1460
+ "properties": {
1461
+ "material_ahead_min_type": {
1462
+ "type": [
1463
+ "string",
1464
+ "null"
1465
+ ],
1466
+ "description": "实物库存,下单需提前预约的时间类型:day-日、hour-小时、minute-分钟"
1467
+ },
1468
+ "material_ahead_min": {
1469
+ "type": [
1470
+ "integer",
1471
+ "null"
1472
+ ],
1473
+ "minimum": -9007199254740991,
1474
+ "maximum": 9007199254740991,
1475
+ "description": "实物库存,下单需提前预约的时间"
1476
+ },
1477
+ "plan_ahead_min_type": {
1478
+ "type": [
1479
+ "string",
1480
+ "null"
1481
+ ],
1482
+ "description": "计划库存,下单需提前预约的时间类型:day-日、hour-小时、minute-分钟"
1483
+ },
1484
+ "plan_ahead_min": {
1485
+ "type": [
1486
+ "integer",
1487
+ "null"
1488
+ ],
1489
+ "minimum": -9007199254740991,
1490
+ "maximum": 9007199254740991,
1491
+ "description": "计划库存,下单需提前预约时间"
1492
+ },
1493
+ "support_cut_off": {
1494
+ "type": [
1495
+ "integer",
1496
+ "null"
1497
+ ],
1498
+ "minimum": -9007199254740991,
1499
+ "maximum": 9007199254740991,
1500
+ "description": "是否支持按下单时间设置预约配送时间。0-否、1-是"
1501
+ },
1502
+ "cut_off_rule": {
1503
+ "type": [
1504
+ "object",
1505
+ "null"
1506
+ ],
1507
+ "properties": {
1508
+ "hour": {
1509
+ "type": [
1510
+ "integer",
1511
+ "null"
1512
+ ],
1513
+ "minimum": -9007199254740991,
1514
+ "maximum": 9007199254740991,
1515
+ "description": "截止下单时间-小时。如:截止下单时间16:30,值是16"
1516
+ },
1517
+ "minute": {
1518
+ "type": [
1519
+ "integer",
1520
+ "null"
1521
+ ],
1522
+ "minimum": -9007199254740991,
1523
+ "maximum": 9007199254740991,
1524
+ "description": "截止下单时间-分钟。如:截止下单时间16:30,值是30"
1525
+ },
1526
+ "before_ahead_min_type": {
1527
+ "type": [
1528
+ "string",
1529
+ "null"
1530
+ ],
1531
+ "description": "截止下单时间前下单,需要提前预约的时间类型。值:day-日、hour-小时、minute-分钟。"
1532
+ },
1533
+ "before_ahead_min": {
1534
+ "type": [
1535
+ "integer",
1536
+ "null"
1537
+ ],
1538
+ "minimum": -9007199254740991,
1539
+ "maximum": 9007199254740991,
1540
+ "description": "截止下单时间前下单,需要提前预约的时间"
1541
+ },
1542
+ "after_ahead_min_type": {
1543
+ "type": [
1544
+ "string",
1545
+ "null"
1546
+ ],
1547
+ "description": "截止下单时间后下单,需要提前预约的时间类型。值:day-日、hour-小时、minute-分钟。"
1548
+ },
1549
+ "after_ahead_min": {
1550
+ "type": [
1551
+ "integer",
1552
+ "null"
1553
+ ],
1554
+ "minimum": -9007199254740991,
1555
+ "maximum": 9007199254740991,
1556
+ "description": "截止下单时间后下单,需要提前预约的时间"
1557
+ }
1558
+ },
1559
+ "additionalProperties": true,
1560
+ "description": "按照下单截止时间预约配送时间的设置详情。"
1561
+ }
1562
+ },
1563
+ "additionalProperties": true,
1564
+ "description": "按照库存类型预约配送时间的设置详情。"
1565
+ },
1566
+ "special_cut_off_rules": {
1567
+ "type": [
1568
+ "array",
1569
+ "null"
1570
+ ],
1571
+ "items": {
1572
+ "type": "object",
1573
+ "properties": {
1574
+ "start_time": {
1575
+ "type": [
1576
+ "string",
1577
+ "null"
1578
+ ],
1579
+ "description": "特殊时段开始时间"
1580
+ },
1581
+ "end_time": {
1582
+ "type": [
1583
+ "string",
1584
+ "null"
1585
+ ],
1586
+ "description": "特殊时段结束时间"
1587
+ },
1588
+ "ahead_day": {
1589
+ "type": [
1590
+ "integer",
1591
+ "null"
1592
+ ],
1593
+ "minimum": -9007199254740991,
1594
+ "maximum": 9007199254740991,
1595
+ "description": "特殊时段下单预约n天hh:mm后开始配送。如:预约 次日11:00后 开始配送,该字段是 1。"
1596
+ },
1597
+ "ahead_min_time": {
1598
+ "type": [
1599
+ "string",
1600
+ "null"
1601
+ ],
1602
+ "description": "特殊时段下单预约n天hh:mm后开始配送。如:预约 次日11:00后 开始配送,该字段是 11:00。"
1603
+ }
1604
+ },
1605
+ "additionalProperties": true
1606
+ },
1607
+ "description": "特殊时段下单可预约的最早配送设置详情。"
1608
+ }
1609
+ },
1610
+ "additionalProperties": true,
1611
+ "description": "开启到店自提 且 selfFetchDeliveryTimeType =1时,到店自提的自定义时间详情。仅支持门店、连锁店铺。"
1612
+ }
1613
+ },
1614
+ "additionalProperties": true,
1615
+ "description": "物流标。支持微商城(仅实物商品、蛋糕烘焙、生鲜果蔬、周期购商品)、门店(实物商品、蛋糕烘焙的网店渠道)、连锁(实物商品、蛋糕烘焙的网店渠道)。"
1616
+ },
1617
+ "logistics_timeliness_mark": {
1618
+ "type": [
1619
+ "object",
1620
+ "null"
1621
+ ],
1622
+ "properties": {
1623
+ "timeliness_template_id": {
1624
+ "type": [
1625
+ "integer",
1626
+ "null"
1627
+ ],
1628
+ "minimum": -9007199254740991,
1629
+ "maximum": 9007199254740991,
1630
+ "description": "开启快递发货时,物流时效模板ID。"
1631
+ }
1632
+ },
1633
+ "additionalProperties": true,
1634
+ "description": "物流时效标。支持微商城(仅实物商品且开启快递发货);不支持门店、连锁店铺。"
1635
+ },
1636
+ "prepare_time_mark": {
1637
+ "type": [
1638
+ "object",
1639
+ "null"
1640
+ ],
1641
+ "properties": {
1642
+ "prepare_time": {
1643
+ "type": [
1644
+ "integer",
1645
+ "null"
1646
+ ],
1647
+ "minimum": -9007199254740991,
1648
+ "maximum": 9007199254740991,
1649
+ "description": "所有规格统一备货时长。若不同规格单独设置备货时长,请使用skuMarks里的prepareTimeMark。单位:ms。示例:1天,86400000。"
1650
+ }
1651
+ },
1652
+ "additionalProperties": true,
1653
+ "description": "备货时间标。支持微商城(仅蛋糕烘焙)、门店(仅实物商品、蛋糕烘焙的网店渠道)、连锁店铺(仅实物商品、蛋糕烘焙的网店渠道)。"
1654
+ },
1655
+ "service_duration_mark": {
1656
+ "type": [
1657
+ "object",
1658
+ "null"
1659
+ ],
1660
+ "properties": {
1661
+ "duration_times": {
1662
+ "type": [
1663
+ "integer",
1664
+ "null"
1665
+ ],
1666
+ "minimum": -9007199254740991,
1667
+ "maximum": 9007199254740991,
1668
+ "description": "基础时长(秒)"
1669
+ },
1670
+ "duration_desc": {
1671
+ "type": [
1672
+ "string",
1673
+ "null"
1674
+ ],
1675
+ "description": "展示给用户的时长描述"
1676
+ },
1677
+ "duration_status": {
1678
+ "type": [
1679
+ "integer",
1680
+ "null"
1681
+ ],
1682
+ "minimum": -9007199254740991,
1683
+ "maximum": 9007199254740991,
1684
+ "description": "商品维度的服务时长标状态。值:0-未填服务时长、1-填了服务时长"
1685
+ }
1686
+ },
1687
+ "additionalProperties": true,
1688
+ "description": "服务时长标。仅支持本地生活服务商品"
1689
+ },
1690
+ "pre_sale_mark": {
1691
+ "type": [
1692
+ "object",
1693
+ "null"
1694
+ ],
1695
+ "properties": {
1696
+ "deposit_ratio": {
1697
+ "type": [
1698
+ "integer",
1699
+ "null"
1700
+ ],
1701
+ "minimum": -9007199254740991,
1702
+ "maximum": 9007199254740991,
1703
+ "description": "预售商品定金比例,单位:%(百分比)。如:1 表示 1%。"
1704
+ },
1705
+ "deposit": {
1706
+ "type": [
1707
+ "string",
1708
+ "null"
1709
+ ],
1710
+ "description": "预售商品定金金额,单位:元。 输出固定两位小数字符串。",
1711
+ "$comment": "upstream-money:fen",
1712
+ "pattern": "^-?(?:0|[1-9]\\d*)\\.\\d{2}$"
1713
+ },
1714
+ "presale_start_time": {
1715
+ "type": [
1716
+ "string",
1717
+ "null"
1718
+ ],
1719
+ "format": "beijing-date-time-ms",
1720
+ "$comment": "upstream-time:milliseconds",
1721
+ "description": "定金支付开始时间;北京时间 YYYY-MM-DD HH:mm:ss.SSS。"
1722
+ },
1723
+ "presale_end_time": {
1724
+ "type": [
1725
+ "string",
1726
+ "null"
1727
+ ],
1728
+ "format": "beijing-date-time-ms",
1729
+ "$comment": "upstream-time:milliseconds",
1730
+ "description": "定金支付结束时间;北京时间 YYYY-MM-DD HH:mm:ss.SSS。"
1731
+ },
1732
+ "etd_start_time": {
1733
+ "type": [
1734
+ "string",
1735
+ "null"
1736
+ ],
1737
+ "format": "beijing-date-time-ms",
1738
+ "$comment": "upstream-time:milliseconds",
1739
+ "description": "发货开始时间;北京时间 YYYY-MM-DD HH:mm:ss.SSS。"
1740
+ },
1741
+ "etd_end_time": {
1742
+ "type": [
1743
+ "string",
1744
+ "null"
1745
+ ],
1746
+ "format": "beijing-date-time-ms",
1747
+ "$comment": "upstream-time:milliseconds",
1748
+ "description": "发货结束时间;北京时间 YYYY-MM-DD HH:mm:ss.SSS。"
1749
+ },
1750
+ "balance_due_start_time": {
1751
+ "type": [
1752
+ "string",
1753
+ "null"
1754
+ ],
1755
+ "format": "beijing-date-time-ms",
1756
+ "$comment": "upstream-time:milliseconds",
1757
+ "description": "尾款支付开始时间;北京时间 YYYY-MM-DD HH:mm:ss.SSS。"
1758
+ },
1759
+ "balance_due_end_time": {
1760
+ "type": [
1761
+ "string",
1762
+ "null"
1763
+ ],
1764
+ "format": "beijing-date-time-ms",
1765
+ "$comment": "upstream-time:milliseconds",
1766
+ "description": "尾款支付结束时间;北京时间 YYYY-MM-DD HH:mm:ss.SSS。"
1767
+ },
1768
+ "etd_type": {
1769
+ "type": [
1770
+ "integer",
1771
+ "null"
1772
+ ],
1773
+ "minimum": -9007199254740991,
1774
+ "maximum": 9007199254740991,
1775
+ "description": "发货时间类型。值: 0(yyyy-MM-dd开始发货)、1(付款 n 天后发货)。"
1776
+ },
1777
+ "pre_sale_type": {
1778
+ "type": [
1779
+ "integer",
1780
+ "null"
1781
+ ],
1782
+ "minimum": -9007199254740991,
1783
+ "maximum": 9007199254740991,
1784
+ "description": "预售类型。值:0(全款预售)、1(定金预售)。若想设置定金预售,必须设置成不参与会员折扣,即joinMemberDiscount=0。"
1785
+ },
1786
+ "deposit_type": {
1787
+ "type": [
1788
+ "integer",
1789
+ "null"
1790
+ ],
1791
+ "minimum": -9007199254740991,
1792
+ "maximum": 9007199254740991,
1793
+ "description": "当预售类型为定金预售的定金类型。值:0(定金按比例)、1(定金按固定金额)。"
1794
+ },
1795
+ "etd_days": {
1796
+ "type": [
1797
+ "integer",
1798
+ "null"
1799
+ ],
1800
+ "minimum": -9007199254740991,
1801
+ "maximum": 9007199254740991,
1802
+ "description": "付款成功 n 后发货天数。当全款预售时,表示全款付款后的n天后发货;当定金预售时,表示尾款付款后的n天后发货。"
1803
+ }
1804
+ },
1805
+ "additionalProperties": true,
1806
+ "description": "预售标。支持微商城(仅实物商品、海淘商品)、门店(仅实物商品的网店渠道)、连锁(仅实物商品的网店渠道)。"
1807
+ },
1808
+ "hai_tao_info_mark": {
1809
+ "type": [
1810
+ "object",
1811
+ "null"
1812
+ ],
1813
+ "properties": {
1814
+ "port_code": {
1815
+ "type": [
1816
+ "string",
1817
+ "null"
1818
+ ],
1819
+ "description": "海淘口岸编码。必填"
1820
+ },
1821
+ "haitao_trade_type": {
1822
+ "type": [
1823
+ "integer",
1824
+ "null"
1825
+ ],
1826
+ "minimum": -9007199254740991,
1827
+ "maximum": 9007199254740991,
1828
+ "description": "海淘商品跨境方式。值:9610(海外直邮)、1210(保税进口)、1000(个人代购)。必填。"
1829
+ },
1830
+ "source_country_code": {
1831
+ "type": [
1832
+ "integer",
1833
+ "null"
1834
+ ],
1835
+ "minimum": -9007199254740991,
1836
+ "maximum": 9007199254740991,
1837
+ "description": "进口地code。"
1838
+ },
1839
+ "tariff_rule": {
1840
+ "type": [
1841
+ "integer",
1842
+ "null"
1843
+ ],
1844
+ "minimum": -9007199254740991,
1845
+ "maximum": 9007199254740991,
1846
+ "description": "商品价格是否已经包税。0-否、1-是。"
1847
+ },
1848
+ "tariff_rate": {
1849
+ "type": [
1850
+ "string",
1851
+ "null"
1852
+ ],
1853
+ "description": "税率。参考范围:0.01-28.9。不包税模式下必填。"
1854
+ }
1855
+ },
1856
+ "additionalProperties": true,
1857
+ "description": "海淘商品信息标。支持微商城(仅海淘商品)、门店(仅分销的海淘商品)、连锁(仅分销的海淘商品)。"
1858
+ },
1859
+ "stock_deduct_mark": {
1860
+ "type": [
1861
+ "object",
1862
+ "null"
1863
+ ],
1864
+ "properties": {
1865
+ "stock_deduct_mode": {
1866
+ "type": [
1867
+ "integer",
1868
+ "null"
1869
+ ],
1870
+ "minimum": -9007199254740991,
1871
+ "maximum": 9007199254740991,
1872
+ "description": "库存扣减方式。值:0(拍下减库存)、1(付款减库存)、2(非预占付款扣库存)。"
1873
+ }
1874
+ },
1875
+ "additionalProperties": true,
1876
+ "description": "库存扣减标。"
1877
+ },
1878
+ "refund_mark": {
1879
+ "type": [
1880
+ "object",
1881
+ "null"
1882
+ ],
1883
+ "properties": {
1884
+ "support_virtual_refund": {
1885
+ "type": [
1886
+ "integer",
1887
+ "null"
1888
+ ],
1889
+ "minimum": -9007199254740991,
1890
+ "maximum": 9007199254740991,
1891
+ "description": "是否支持退款。值:0-否、1-是。"
1892
+ },
1893
+ "refund_type": {
1894
+ "type": [
1895
+ "integer",
1896
+ "null"
1897
+ ],
1898
+ "minimum": -9007199254740991,
1899
+ "maximum": 9007199254740991,
1900
+ "description": "退款方式。值:0-未核销卡券即支持退款,1-未核销卡前在过期前若干时间前可退款。仅支持电子卡券。当长期有效(validityType=0)时,值不能是1。"
1901
+ },
1902
+ "refund_time": {
1903
+ "type": [
1904
+ "integer",
1905
+ "null"
1906
+ ],
1907
+ "minimum": -9007199254740991,
1908
+ "maximum": 9007199254740991,
1909
+ "description": "refundType=1时,过期前 n毫秒 内支持退款。仅支持电子卡券。"
1910
+ }
1911
+ },
1912
+ "additionalProperties": true,
1913
+ "description": "退款标。仅支持虚拟商品、电子卡券、付费优惠券。"
1914
+ },
1915
+ "barter_mark": {
1916
+ "type": [
1917
+ "object",
1918
+ "null"
1919
+ ],
1920
+ "properties": {
1921
+ "support_barter": {
1922
+ "type": [
1923
+ "integer",
1924
+ "null"
1925
+ ],
1926
+ "minimum": -9007199254740991,
1927
+ "maximum": 9007199254740991,
1928
+ "description": "是否支持换货。0-否、1-是。"
1929
+ }
1930
+ },
1931
+ "additionalProperties": true,
1932
+ "description": "换货标。仅限实物商品、周期购商品使用。"
1933
+ },
1934
+ "unconditional_return_mark": {
1935
+ "type": [
1936
+ "object",
1937
+ "null"
1938
+ ],
1939
+ "properties": {
1940
+ "is_support_unconditional_return": {
1941
+ "type": [
1942
+ "boolean",
1943
+ "null"
1944
+ ],
1945
+ "description": "是否支持七天无理由退换货。值:false-否、true-是。"
1946
+ }
1947
+ },
1948
+ "additionalProperties": true,
1949
+ "description": "七天无理由退换货标。仅限实物商品、周期购商品使用。"
1950
+ },
1951
+ "quick_refund_mark": {
1952
+ "type": [
1953
+ "object",
1954
+ "null"
1955
+ ],
1956
+ "properties": {
1957
+ "is_support_quick_refund": {
1958
+ "type": [
1959
+ "boolean",
1960
+ "null"
1961
+ ],
1962
+ "description": "是否支持自动退款。0-否、1-是。不支持虚拟商品、电子卡券;支持实物商品(下单成功6小时内,待发货状态下,买家提交退款申请将会立即退款)。"
1963
+ }
1964
+ },
1965
+ "additionalProperties": true,
1966
+ "description": "快速退款标。支持实物商品、电子卡券、周期购商品。"
1967
+ },
1968
+ "start_sale_num_mark": {
1969
+ "type": [
1970
+ "object",
1971
+ "null"
1972
+ ],
1973
+ "properties": {
1974
+ "start_sale_num": {
1975
+ "type": [
1976
+ "integer",
1977
+ "null"
1978
+ ],
1979
+ "minimum": -9007199254740991,
1980
+ "maximum": 9007199254740991,
1981
+ "description": "起售数量。默认:1。"
1982
+ },
1983
+ "increment_sale_num": {
1984
+ "type": [
1985
+ "integer",
1986
+ "null"
1987
+ ],
1988
+ "minimum": -9007199254740991,
1989
+ "maximum": 9007199254740991,
1990
+ "description": "每次增量。支持门店、连锁店铺;不支持微商城。"
1991
+ }
1992
+ },
1993
+ "additionalProperties": true,
1994
+ "description": "商品起售标。不支持周期购商品。"
1995
+ },
1996
+ "multi_unit_mark": {
1997
+ "type": [
1998
+ "object",
1999
+ "null"
2000
+ ],
2001
+ "properties": {
2002
+ "unit_strategy": {
2003
+ "type": [
2004
+ "integer",
2005
+ "null"
2006
+ ],
2007
+ "minimum": -9007199254740991,
2008
+ "maximum": 9007199254740991,
2009
+ "description": "单位策略。值:0-计数、10-计重。"
2010
+ },
2011
+ "unit_name": {
2012
+ "type": [
2013
+ "string",
2014
+ "null"
2015
+ ],
2016
+ "description": "单位名称。"
2017
+ }
2018
+ },
2019
+ "additionalProperties": true,
2020
+ "description": "多单位商品标。支持门店、连锁店铺;不支持微商城。"
2021
+ },
2022
+ "multi_sku_mark": {
2023
+ "type": [
2024
+ "object",
2025
+ "null"
2026
+ ],
2027
+ "properties": {
2028
+ "one_item_multi_code": {
2029
+ "type": [
2030
+ "array",
2031
+ "null"
2032
+ ],
2033
+ "items": {
2034
+ "type": [
2035
+ "string"
2036
+ ],
2037
+ "description": "列表元素"
2038
+ },
2039
+ "description": "一品多码"
2040
+ },
2041
+ "plu_code": {
2042
+ "type": [
2043
+ "string",
2044
+ "null"
2045
+ ],
2046
+ "description": "PLU码。必须为1~9999。"
2047
+ }
2048
+ },
2049
+ "additionalProperties": true,
2050
+ "description": "门店多规格,主要是为了SPU级别。仅支持门店、连锁店铺。"
2051
+ },
2052
+ "serial_no_mark": {
2053
+ "type": [
2054
+ "object",
2055
+ "null"
2056
+ ],
2057
+ "properties": {
2058
+ "serial_item": {
2059
+ "type": [
2060
+ "integer",
2061
+ "null"
2062
+ ],
2063
+ "minimum": -9007199254740991,
2064
+ "maximum": 9007199254740991,
2065
+ "description": "是否串码商品。0-否、1-是。"
2066
+ }
2067
+ },
2068
+ "additionalProperties": true,
2069
+ "description": "串码商品标。"
2070
+ },
2071
+ "combo_mark": {
2072
+ "type": [
2073
+ "object",
2074
+ "null"
2075
+ ],
2076
+ "properties": {
2077
+ "is_combo": {
2078
+ "type": [
2079
+ "boolean",
2080
+ "null"
2081
+ ],
2082
+ "description": "是否套餐商品。true-是、false-否。"
2083
+ },
2084
+ "combo_type": {
2085
+ "type": [
2086
+ "integer",
2087
+ "null"
2088
+ ],
2089
+ "minimum": -9007199254740991,
2090
+ "maximum": 9007199254740991,
2091
+ "description": "套餐类型。0、固定 1、自选。"
2092
+ },
2093
+ "is_fix_group_optional_combo": {
2094
+ "type": [
2095
+ "boolean",
2096
+ "null"
2097
+ ],
2098
+ "description": "自选套餐,套餐分组是否固定组合。true-是、false-否。"
2099
+ }
2100
+ },
2101
+ "additionalProperties": true,
2102
+ "description": "套餐商品能力标。支持连锁(仅套餐商品)。"
2103
+ },
2104
+ "id_card_authentication_mark": {
2105
+ "type": [
2106
+ "object",
2107
+ "null"
2108
+ ],
2109
+ "properties": {
2110
+ "is_required_id_card_info": {
2111
+ "type": [
2112
+ "boolean",
2113
+ "null"
2114
+ ],
2115
+ "description": "是否需要身份证信息。值:true-是、false-否。"
2116
+ },
2117
+ "is_required_id_card_photo": {
2118
+ "type": [
2119
+ "boolean",
2120
+ "null"
2121
+ ],
2122
+ "description": "是否需要身份证照片。值:true-是、false-否。"
2123
+ },
2124
+ "is_required_id_card_check": {
2125
+ "type": [
2126
+ "boolean",
2127
+ "null"
2128
+ ],
2129
+ "description": "是否需要身份证验证。值:true-是、false-否。不支持微商城的实物商品、生鲜果蔬。"
2130
+ }
2131
+ },
2132
+ "additionalProperties": true,
2133
+ "description": "身份证认证标记。支持实物商品、生鲜果蔬。"
2134
+ },
2135
+ "virtual_mark": {
2136
+ "type": [
2137
+ "object",
2138
+ "null"
2139
+ ],
2140
+ "properties": {
2141
+ "effective_type": {
2142
+ "type": [
2143
+ "integer",
2144
+ "null"
2145
+ ],
2146
+ "minimum": -9007199254740991,
2147
+ "maximum": 9007199254740991,
2148
+ "description": "生效类型。值:0-立即生效、 1-付款完成n小时后生效、2-次日生效。"
2149
+ },
2150
+ "effective_delay_hours": {
2151
+ "type": [
2152
+ "integer",
2153
+ "null"
2154
+ ],
2155
+ "minimum": -9007199254740991,
2156
+ "maximum": 9007199254740991,
2157
+ "description": "付款完成n小时后生效"
2158
+ },
2159
+ "validity_type": {
2160
+ "type": [
2161
+ "integer",
2162
+ "null"
2163
+ ],
2164
+ "minimum": -9007199254740991,
2165
+ "maximum": 9007199254740991,
2166
+ "description": "可用时间类型。值:0(长期可用)、1(生效后n天可用)、2(生效后一定日期内可用)、3(使用期间内当天使用,关联价格日历)。"
2167
+ },
2168
+ "days_after_effective": {
2169
+ "type": [
2170
+ "integer",
2171
+ "null"
2172
+ ],
2173
+ "minimum": -9007199254740991,
2174
+ "maximum": 9007199254740991,
2175
+ "description": "生效后可用天数,单位:天。"
2176
+ },
2177
+ "effective_start_time": {
2178
+ "type": [
2179
+ "string",
2180
+ "null"
2181
+ ],
2182
+ "format": "beijing-date-time-ms",
2183
+ "$comment": "upstream-time:seconds",
2184
+ "description": "可用开始时间;北京时间 YYYY-MM-DD HH:mm:ss.SSS。"
2185
+ },
2186
+ "effective_end_time": {
2187
+ "type": [
2188
+ "string",
2189
+ "null"
2190
+ ],
2191
+ "format": "beijing-date-time-ms",
2192
+ "$comment": "upstream-time:seconds",
2193
+ "description": "可用结束时间;北京时间 YYYY-MM-DD HH:mm:ss.SSS。"
2194
+ },
2195
+ "holidays_available": {
2196
+ "type": [
2197
+ "integer",
2198
+ "null"
2199
+ ],
2200
+ "minimum": -9007199254740991,
2201
+ "maximum": 9007199254740991,
2202
+ "description": "节假日是否可用。值:0-否、1-是。"
2203
+ },
2204
+ "instructions_for_use": {
2205
+ "type": [
2206
+ "string",
2207
+ "null"
2208
+ ],
2209
+ "description": "使用说明。"
2210
+ },
2211
+ "advance_booking_time": {
2212
+ "type": [
2213
+ "string",
2214
+ "null"
2215
+ ],
2216
+ "description": "提前预定时间。示例:1-03:03:01,前1天 03:03:01之前。"
2217
+ },
2218
+ "is_expiration_auto_refund_enabled": {
2219
+ "type": [
2220
+ "boolean",
2221
+ "null"
2222
+ ],
2223
+ "description": "是否支持过期自动退款。值:true-是、false-否。"
2224
+ },
2225
+ "is_sync_we_chat_bag": {
2226
+ "type": [
2227
+ "boolean",
2228
+ "null"
2229
+ ],
2230
+ "description": "是否同步微信卡包。值:true-是、false-否。"
2231
+ },
2232
+ "code_type": {
2233
+ "type": [
2234
+ "integer",
2235
+ "null"
2236
+ ],
2237
+ "minimum": -9007199254740991,
2238
+ "maximum": 9007199254740991,
2239
+ "description": "微信卡包核销码展示类型。值:0-二维码、1-条形码"
2240
+ },
2241
+ "card_color": {
2242
+ "type": [
2243
+ "string",
2244
+ "null"
2245
+ ],
2246
+ "description": "微信卡包核销码展示颜色。"
2247
+ },
2248
+ "card_title": {
2249
+ "type": [
2250
+ "string",
2251
+ "null"
2252
+ ],
2253
+ "description": "微信卡包核销码标题。"
2254
+ },
2255
+ "location_for_use": {
2256
+ "type": [
2257
+ "string",
2258
+ "null"
2259
+ ],
2260
+ "description": "核销码使用地点。"
2261
+ },
2262
+ "service_tel_area_code": {
2263
+ "type": [
2264
+ "string",
2265
+ "null"
2266
+ ],
2267
+ "description": "客服电话区号"
2268
+ },
2269
+ "service_tel": {
2270
+ "type": [
2271
+ "string",
2272
+ "null"
2273
+ ],
2274
+ "description": "客服电话"
2275
+ }
2276
+ },
2277
+ "additionalProperties": true,
2278
+ "description": "虚拟商品。仅支持电子卡券。"
2279
+ },
2280
+ "sell_channel_mark": {
2281
+ "type": [
2282
+ "object",
2283
+ "null"
2284
+ ],
2285
+ "properties": {
2286
+ "channels": {
2287
+ "type": [
2288
+ "array",
2289
+ "null"
2290
+ ],
2291
+ "items": {
2292
+ "type": [
2293
+ "integer"
2294
+ ],
2295
+ "minimum": -9007199254740991,
2296
+ "maximum": 9007199254740991,
2297
+ "description": "列表元素"
2298
+ },
2299
+ "description": "销售渠道。值:2-门店渠道、4-网店渠道、200-美团外卖、201-饿了么外卖、203-美团闪购。"
2300
+ }
2301
+ },
2302
+ "additionalProperties": true,
2303
+ "description": "销售渠道标"
2304
+ },
2305
+ "calendar_mark": {
2306
+ "type": [
2307
+ "object",
2308
+ "null"
2309
+ ],
2310
+ "properties": {
2311
+ "use_calendar": {
2312
+ "type": [
2313
+ "integer",
2314
+ "null"
2315
+ ],
2316
+ "minimum": -9007199254740991,
2317
+ "maximum": 9007199254740991,
2318
+ "description": "是否使用价格日历。0:不是, 1:是"
2319
+ }
2320
+ },
2321
+ "additionalProperties": true,
2322
+ "description": "价格日历能力标"
2323
+ }
2324
+ },
2325
+ "additionalProperties": true,
2326
+ "description": "商品维度能力标。"
2327
+ },
2328
+ "sku_marks": {
2329
+ "type": [
2330
+ "array",
2331
+ "null"
2332
+ ],
2333
+ "items": {
2334
+ "type": "object",
2335
+ "properties": {
2336
+ "sku_id": {
2337
+ "type": [
2338
+ "integer",
2339
+ "null"
2340
+ ],
2341
+ "minimum": -9007199254740991,
2342
+ "maximum": 9007199254740991,
2343
+ "description": "商品规格 ID,同一规格在各分店和渠道使用相同值;与所属商品 ID 一起解释。"
2344
+ },
2345
+ "channel_sku_id": {
2346
+ "type": [
2347
+ "integer",
2348
+ "null"
2349
+ ],
2350
+ "minimum": -9007199254740991,
2351
+ "maximum": 9007199254740991,
2352
+ "description": "渠道商品规格 ID,标识目标分店和渠道下的规格,对应旧商品接口的 sku_id;数值可能与统一规格 ID 相同,不能据此互换。缺失或 null 按原值保留,不用 sku_id 补齐。"
2353
+ },
2354
+ "prepare_time_mark": {
2355
+ "type": [
2356
+ "object",
2357
+ "null"
2358
+ ],
2359
+ "properties": {
2360
+ "prepare_time": {
2361
+ "type": [
2362
+ "integer",
2363
+ "null"
2364
+ ],
2365
+ "minimum": -9007199254740991,
2366
+ "maximum": 9007199254740991,
2367
+ "description": "不同规格单独设置备货时间。"
2368
+ }
2369
+ },
2370
+ "additionalProperties": true,
2371
+ "description": "备货时间标。支持微商城(仅蛋糕烘焙)、门店(仅实物商品、蛋糕烘焙的网店渠道)、连锁店铺(仅实物商品、蛋糕烘焙的网店渠道)。"
2372
+ },
2373
+ "multi_sku_mark": {
2374
+ "type": [
2375
+ "object",
2376
+ "null"
2377
+ ],
2378
+ "properties": {
2379
+ "one_item_multi_code": {
2380
+ "type": [
2381
+ "array",
2382
+ "null"
2383
+ ],
2384
+ "items": {
2385
+ "type": [
2386
+ "string"
2387
+ ],
2388
+ "description": "列表元素"
2389
+ },
2390
+ "description": "一品多码"
2391
+ },
2392
+ "plu_code": {
2393
+ "type": [
2394
+ "string",
2395
+ "null"
2396
+ ],
2397
+ "description": "PLU码。必须为1~9999。"
2398
+ }
2399
+ },
2400
+ "additionalProperties": true,
2401
+ "description": "一品多码标。仅支持门店、连锁店铺。"
2402
+ },
2403
+ "multi_unit_mark": {
2404
+ "type": [
2405
+ "object",
2406
+ "null"
2407
+ ],
2408
+ "properties": {
2409
+ "unit_strategy": {
2410
+ "type": [
2411
+ "integer",
2412
+ "null"
2413
+ ],
2414
+ "minimum": -9007199254740991,
2415
+ "maximum": 9007199254740991,
2416
+ "description": "单位策略。值:0-计数、10-计重。"
2417
+ },
2418
+ "unit_type": {
2419
+ "type": [
2420
+ "integer",
2421
+ "null"
2422
+ ],
2423
+ "minimum": -9007199254740991,
2424
+ "maximum": 9007199254740991,
2425
+ "description": "单位类型。 值:1-销售单位。"
2426
+ },
2427
+ "unit_name": {
2428
+ "type": [
2429
+ "string",
2430
+ "null"
2431
+ ],
2432
+ "description": "单位名称。"
2433
+ },
2434
+ "weighable": {
2435
+ "type": [
2436
+ "integer",
2437
+ "null"
2438
+ ],
2439
+ "minimum": -9007199254740991,
2440
+ "maximum": 9007199254740991,
2441
+ "description": "是否可称重。0-否、1-是。"
2442
+ }
2443
+ },
2444
+ "additionalProperties": true,
2445
+ "description": "sku的单位标"
2446
+ },
2447
+ "service_duration_mark": {
2448
+ "type": [
2449
+ "object",
2450
+ "null"
2451
+ ],
2452
+ "properties": {
2453
+ "duration_times": {
2454
+ "type": [
2455
+ "integer",
2456
+ "null"
2457
+ ],
2458
+ "minimum": -9007199254740991,
2459
+ "maximum": 9007199254740991,
2460
+ "description": "基础时长(秒)"
2461
+ },
2462
+ "duration_desc": {
2463
+ "type": [
2464
+ "string",
2465
+ "null"
2466
+ ],
2467
+ "description": "展示给用户的时长描述"
2468
+ },
2469
+ "duration_status": {
2470
+ "type": [
2471
+ "integer",
2472
+ "null"
2473
+ ],
2474
+ "minimum": -9007199254740991,
2475
+ "maximum": 9007199254740991,
2476
+ "description": "商品维度的服务时长标状态。值:0-未填服务时长、1-填了服务时长"
2477
+ }
2478
+ },
2479
+ "additionalProperties": true,
2480
+ "description": "服务时长标。仅支持本地生活服务商品"
2481
+ }
2482
+ },
2483
+ "additionalProperties": true
2484
+ },
2485
+ "description": "sku维度能力标。"
2486
+ }
2487
+ },
2488
+ "additionalProperties": true,
2489
+ "description": "商品能力标"
2490
+ },
2491
+ "combo_detail": {
2492
+ "type": [
2493
+ "object",
2494
+ "null"
2495
+ ],
2496
+ "properties": {
2497
+ "combo_groups": {
2498
+ "type": [
2499
+ "array",
2500
+ "null"
2501
+ ],
2502
+ "items": {
2503
+ "type": "object",
2504
+ "properties": {
2505
+ "name": {
2506
+ "type": [
2507
+ "string",
2508
+ "null"
2509
+ ],
2510
+ "description": "套餐分组展示名称"
2511
+ },
2512
+ "rule": {
2513
+ "type": [
2514
+ "object",
2515
+ "null"
2516
+ ],
2517
+ "properties": {
2518
+ "select_num": {
2519
+ "type": [
2520
+ "integer",
2521
+ "null"
2522
+ ],
2523
+ "minimum": -9007199254740991,
2524
+ "maximum": 9007199254740991,
2525
+ "description": "当前分组需要选择的子商品份数"
2526
+ },
2527
+ "support_repeat_select": {
2528
+ "type": [
2529
+ "boolean",
2530
+ "null"
2531
+ ],
2532
+ "description": "是否允许同一个子商品重复计入选择数量。true-允许,false-不允许"
2533
+ },
2534
+ "combo_type": {
2535
+ "type": [
2536
+ "integer",
2537
+ "null"
2538
+ ],
2539
+ "minimum": -9007199254740991,
2540
+ "maximum": 9007199254740991,
2541
+ "description": "套餐类型。0-固定套餐,1-自选套餐"
2542
+ },
2543
+ "combo_group_type": {
2544
+ "type": [
2545
+ "integer",
2546
+ "null"
2547
+ ],
2548
+ "minimum": -9007199254740991,
2549
+ "maximum": 9007199254740991,
2550
+ "description": "分组类型。0-固定分组,分组内容由商家固定;1-自选分组,由购买者选择"
2551
+ }
2552
+ },
2553
+ "additionalProperties": true,
2554
+ "description": "当前分组的商品选择规则"
2555
+ },
2556
+ "sku_id": {
2557
+ "type": [
2558
+ "integer",
2559
+ "null"
2560
+ ],
2561
+ "minimum": -9007199254740991,
2562
+ "maximum": 9007199254740991,
2563
+ "description": "套餐商品规格 ID,有赞生成,用于标识该分组绑定的套餐商品 SKU。"
2564
+ },
2565
+ "combo_sub_items": {
2566
+ "type": [
2567
+ "array",
2568
+ "null"
2569
+ ],
2570
+ "items": {
2571
+ "type": "object",
2572
+ "properties": {
2573
+ "item_id": {
2574
+ "type": [
2575
+ "integer",
2576
+ "null"
2577
+ ],
2578
+ "minimum": -9007199254740991,
2579
+ "maximum": 9007199254740991,
2580
+ "description": "套餐子商品 ID"
2581
+ },
2582
+ "title": {
2583
+ "type": [
2584
+ "string",
2585
+ "null"
2586
+ ],
2587
+ "description": "套餐子商品名称"
2588
+ },
2589
+ "picture": {
2590
+ "type": [
2591
+ "string",
2592
+ "null"
2593
+ ],
2594
+ "description": "套餐子商品图片信息"
2595
+ },
2596
+ "skus": {
2597
+ "type": [
2598
+ "array",
2599
+ "null"
2600
+ ],
2601
+ "items": {
2602
+ "type": "object",
2603
+ "properties": {
2604
+ "sku_id": {
2605
+ "type": [
2606
+ "integer",
2607
+ "null"
2608
+ ],
2609
+ "minimum": -9007199254740991,
2610
+ "maximum": 9007199254740991,
2611
+ "description": "套餐子商品SKU ID"
2612
+ },
2613
+ "combine_num": {
2614
+ "type": [
2615
+ "integer",
2616
+ "null"
2617
+ ],
2618
+ "minimum": -9007199254740991,
2619
+ "maximum": 9007199254740991,
2620
+ "description": "套餐中包含该子商品数量"
2621
+ },
2622
+ "price": {
2623
+ "type": [
2624
+ "string",
2625
+ "null"
2626
+ ],
2627
+ "description": "子商品 SKU 自身售价。单位:元 输出固定两位小数字符串。",
2628
+ "$comment": "upstream-money:fen",
2629
+ "pattern": "^-?(?:0|[1-9]\\d*)\\.\\d{2}$"
2630
+ },
2631
+ "sku": {
2632
+ "type": [
2633
+ "string",
2634
+ "null"
2635
+ ],
2636
+ "description": "当前 SKU 的规格组合,JSON 数组字符串"
2637
+ },
2638
+ "append_price": {
2639
+ "type": [
2640
+ "string",
2641
+ "null"
2642
+ ],
2643
+ "description": "在套餐中选择该完整 SKU 组合产生的加价。单位:元 输出固定两位小数字符串。",
2644
+ "$comment": "upstream-money:fen",
2645
+ "pattern": "^-?(?:0|[1-9]\\d*)\\.\\d{2}$"
2646
+ },
2647
+ "default_choose": {
2648
+ "type": [
2649
+ "integer",
2650
+ "null"
2651
+ ],
2652
+ "minimum": -9007199254740991,
2653
+ "maximum": 9007199254740991,
2654
+ "description": "该子商品 SKU 是否默认选中。0-不选择,1-默认选择"
2655
+ }
2656
+ },
2657
+ "additionalProperties": true
2658
+ },
2659
+ "description": "当前套餐配置中关联的子商品 SKU 列表"
2660
+ },
2661
+ "specs": {
2662
+ "type": [
2663
+ "array",
2664
+ "null"
2665
+ ],
2666
+ "items": {
2667
+ "type": "object",
2668
+ "properties": {
2669
+ "spec_id": {
2670
+ "type": [
2671
+ "integer",
2672
+ "null"
2673
+ ],
2674
+ "minimum": -9007199254740991,
2675
+ "maximum": 9007199254740991,
2676
+ "description": "规格项 ID"
2677
+ },
2678
+ "spec_name": {
2679
+ "type": [
2680
+ "string",
2681
+ "null"
2682
+ ],
2683
+ "description": "规格项名称"
2684
+ },
2685
+ "spec_values": {
2686
+ "type": [
2687
+ "array",
2688
+ "null"
2689
+ ],
2690
+ "items": {
2691
+ "type": "object",
2692
+ "properties": {
2693
+ "spec_value_name": {
2694
+ "type": [
2695
+ "string",
2696
+ "null"
2697
+ ],
2698
+ "description": "规格值名称"
2699
+ },
2700
+ "spec_value_id": {
2701
+ "type": [
2702
+ "integer",
2703
+ "null"
2704
+ ],
2705
+ "minimum": -9007199254740991,
2706
+ "maximum": 9007199254740991,
2707
+ "description": "规格值 ID"
2708
+ },
2709
+ "spec_value_config": {
2710
+ "type": [
2711
+ "object",
2712
+ "null"
2713
+ ],
2714
+ "properties": {
2715
+ "is_default": {
2716
+ "type": [
2717
+ "boolean",
2718
+ "null"
2719
+ ],
2720
+ "description": "该规格值是否为当前规格项的默认选择:true-是,false-否"
2721
+ },
2722
+ "append_price": {
2723
+ "type": [
2724
+ "string",
2725
+ "null"
2726
+ ],
2727
+ "description": "选择该规格值产生的加价。单位:元 输出固定两位小数字符串。",
2728
+ "$comment": "upstream-money:fen",
2729
+ "pattern": "^-?(?:0|[1-9]\\d*)\\.\\d{2}$"
2730
+ }
2731
+ },
2732
+ "additionalProperties": true,
2733
+ "description": "该规格值在当前套餐中的默认选择和加价配置"
2734
+ }
2735
+ },
2736
+ "additionalProperties": true
2737
+ },
2738
+ "description": "当前规格项在套餐中允许选择的规格值列表"
2739
+ }
2740
+ },
2741
+ "additionalProperties": true
2742
+ },
2743
+ "description": "套餐中允许选择的子商品规格项及规格值"
2744
+ },
2745
+ "props": {
2746
+ "type": [
2747
+ "array",
2748
+ "null"
2749
+ ],
2750
+ "items": {
2751
+ "type": "object",
2752
+ "properties": {
2753
+ "prop_id": {
2754
+ "type": [
2755
+ "integer",
2756
+ "null"
2757
+ ],
2758
+ "minimum": -9007199254740991,
2759
+ "maximum": 9007199254740991,
2760
+ "description": "加料属性 ID"
2761
+ },
2762
+ "prop_name": {
2763
+ "type": [
2764
+ "string",
2765
+ "null"
2766
+ ],
2767
+ "description": "加料属性名称"
2768
+ },
2769
+ "is_necessary": {
2770
+ "type": [
2771
+ "boolean",
2772
+ "null"
2773
+ ],
2774
+ "description": "是否必须选择该加料属性。true-必选,false-非必选"
2775
+ },
2776
+ "is_multiple": {
2777
+ "type": [
2778
+ "boolean",
2779
+ "null"
2780
+ ],
2781
+ "description": "是否可以同时选择多个属性值。true-多选,false-单选"
2782
+ },
2783
+ "prop_values": {
2784
+ "type": [
2785
+ "array",
2786
+ "null"
2787
+ ],
2788
+ "items": {
2789
+ "type": "object",
2790
+ "properties": {
2791
+ "prop_value_id": {
2792
+ "type": [
2793
+ "integer",
2794
+ "null"
2795
+ ],
2796
+ "minimum": -9007199254740991,
2797
+ "maximum": 9007199254740991,
2798
+ "description": "加料属性值 ID"
2799
+ },
2800
+ "prop_value_name": {
2801
+ "type": [
2802
+ "string",
2803
+ "null"
2804
+ ],
2805
+ "description": "加料属性值名称"
2806
+ },
2807
+ "status": {
2808
+ "type": [
2809
+ "integer",
2810
+ "null"
2811
+ ],
2812
+ "minimum": -9007199254740991,
2813
+ "maximum": 9007199254740991,
2814
+ "description": "加料属性值状态。0-禁用,1-启用"
2815
+ },
2816
+ "append_price": {
2817
+ "type": [
2818
+ "string",
2819
+ "null"
2820
+ ],
2821
+ "description": "选择该加料属性值产生的加价。单位:元 输出固定两位小数字符串。",
2822
+ "$comment": "upstream-money:fen",
2823
+ "pattern": "^-?(?:0|[1-9]\\d*)\\.\\d{2}$"
2824
+ }
2825
+ },
2826
+ "additionalProperties": true
2827
+ },
2828
+ "description": "当前套餐允许选择的加料属性值列表"
2829
+ }
2830
+ },
2831
+ "additionalProperties": true
2832
+ },
2833
+ "description": "子商品维度加料属性,对当前子商品全部 SKU 生效"
2834
+ },
2835
+ "sku_props": {
2836
+ "type": [
2837
+ "array",
2838
+ "null"
2839
+ ],
2840
+ "items": {
2841
+ "type": "object",
2842
+ "properties": {
2843
+ "sku_id": {
2844
+ "type": [
2845
+ "integer",
2846
+ "null"
2847
+ ],
2848
+ "minimum": -9007199254740991,
2849
+ "maximum": 9007199254740991,
2850
+ "description": "加料属性所对应的子商品 SKU ID"
2851
+ },
2852
+ "props": {
2853
+ "type": [
2854
+ "array",
2855
+ "null"
2856
+ ],
2857
+ "items": {
2858
+ "type": "object",
2859
+ "properties": {
2860
+ "prop_id": {
2861
+ "type": [
2862
+ "integer",
2863
+ "null"
2864
+ ],
2865
+ "minimum": -9007199254740991,
2866
+ "maximum": 9007199254740991,
2867
+ "description": "加料属性 ID"
2868
+ },
2869
+ "prop_name": {
2870
+ "type": [
2871
+ "string",
2872
+ "null"
2873
+ ],
2874
+ "description": "加料属性名称"
2875
+ },
2876
+ "is_necessary": {
2877
+ "type": [
2878
+ "boolean",
2879
+ "null"
2880
+ ],
2881
+ "description": "是否必须选择该加料属性。true-必选,false-非必选"
2882
+ },
2883
+ "is_multiple": {
2884
+ "type": [
2885
+ "boolean",
2886
+ "null"
2887
+ ],
2888
+ "description": "是否可以同时选择多个属性值。true-多选,false-单选"
2889
+ },
2890
+ "prop_values": {
2891
+ "type": [
2892
+ "array",
2893
+ "null"
2894
+ ],
2895
+ "items": {
2896
+ "type": "object",
2897
+ "properties": {
2898
+ "prop_value_id": {
2899
+ "type": [
2900
+ "integer",
2901
+ "null"
2902
+ ],
2903
+ "minimum": -9007199254740991,
2904
+ "maximum": 9007199254740991,
2905
+ "description": "加料属性值 ID"
2906
+ },
2907
+ "prop_value_name": {
2908
+ "type": [
2909
+ "string",
2910
+ "null"
2911
+ ],
2912
+ "description": "加料属性值名称"
2913
+ },
2914
+ "status": {
2915
+ "type": [
2916
+ "integer",
2917
+ "null"
2918
+ ],
2919
+ "minimum": -9007199254740991,
2920
+ "maximum": 9007199254740991,
2921
+ "description": "加料属性值状态。0-禁用,1-启用"
2922
+ },
2923
+ "append_price": {
2924
+ "type": [
2925
+ "string",
2926
+ "null"
2927
+ ],
2928
+ "description": "选择该加料属性值产生的加价。单位:元 输出固定两位小数字符串。",
2929
+ "$comment": "upstream-money:fen",
2930
+ "pattern": "^-?(?:0|[1-9]\\d*)\\.\\d{2}$"
2931
+ }
2932
+ },
2933
+ "additionalProperties": true
2934
+ },
2935
+ "description": "当前套餐sku允许选择的加料属性值列表"
2936
+ }
2937
+ },
2938
+ "additionalProperties": true
2939
+ },
2940
+ "description": "该 SKU 允许使用的加料属性"
2941
+ }
2942
+ },
2943
+ "additionalProperties": true
2944
+ },
2945
+ "description": "SKU 维度加料属性。用于不同子商品 SKU 配置不同加料属性"
2946
+ },
2947
+ "offline_props": {
2948
+ "type": [
2949
+ "array",
2950
+ "null"
2951
+ ],
2952
+ "items": {
2953
+ "type": "object",
2954
+ "properties": {
2955
+ "prop_id": {
2956
+ "type": [
2957
+ "integer",
2958
+ "null"
2959
+ ],
2960
+ "minimum": -9007199254740991,
2961
+ "maximum": 9007199254740991,
2962
+ "description": "加料属性 ID"
2963
+ },
2964
+ "prop_name": {
2965
+ "type": [
2966
+ "string",
2967
+ "null"
2968
+ ],
2969
+ "description": "加料属性名称"
2970
+ },
2971
+ "is_necessary": {
2972
+ "type": [
2973
+ "boolean",
2974
+ "null"
2975
+ ],
2976
+ "description": "是否必须选择该加料属性。true-必选,false-非必选"
2977
+ },
2978
+ "is_multiple": {
2979
+ "type": [
2980
+ "boolean",
2981
+ "null"
2982
+ ],
2983
+ "description": "是否可以同时选择多个属性值。true-多选,false-单选"
2984
+ },
2985
+ "prop_values": {
2986
+ "type": [
2987
+ "array",
2988
+ "null"
2989
+ ],
2990
+ "items": {
2991
+ "type": "object",
2992
+ "properties": {
2993
+ "prop_value_id": {
2994
+ "type": [
2995
+ "integer",
2996
+ "null"
2997
+ ],
2998
+ "minimum": -9007199254740991,
2999
+ "maximum": 9007199254740991,
3000
+ "description": "加料属性值 ID"
3001
+ },
3002
+ "prop_value_name": {
3003
+ "type": [
3004
+ "string",
3005
+ "null"
3006
+ ],
3007
+ "description": "加料属性值名称"
3008
+ },
3009
+ "status": {
3010
+ "type": [
3011
+ "integer",
3012
+ "null"
3013
+ ],
3014
+ "minimum": -9007199254740991,
3015
+ "maximum": 9007199254740991,
3016
+ "description": "加料属性值状态。0-禁用,1-启用"
3017
+ },
3018
+ "append_price": {
3019
+ "type": [
3020
+ "string",
3021
+ "null"
3022
+ ],
3023
+ "description": "选择该加料属性值产生的加价。单位:元 输出固定两位小数字符串。",
3024
+ "$comment": "upstream-money:fen",
3025
+ "pattern": "^-?(?:0|[1-9]\\d*)\\.\\d{2}$"
3026
+ }
3027
+ },
3028
+ "additionalProperties": true
3029
+ },
3030
+ "description": "当前套餐允许选择的加料属性值列表"
3031
+ }
3032
+ },
3033
+ "additionalProperties": true
3034
+ },
3035
+ "description": "门店渠道子商品维度加料属性,结构同 props。仅查询网店渠道(channel=0)且套餐商品发布了门店渠道时返回"
3036
+ },
3037
+ "offline_sku_props": {
3038
+ "type": [
3039
+ "array",
3040
+ "null"
3041
+ ],
3042
+ "items": {
3043
+ "type": "object",
3044
+ "properties": {
3045
+ "sku_id": {
3046
+ "type": [
3047
+ "integer",
3048
+ "null"
3049
+ ],
3050
+ "minimum": -9007199254740991,
3051
+ "maximum": 9007199254740991,
3052
+ "description": "加料属性所对应的子商品 SKU ID"
3053
+ },
3054
+ "props": {
3055
+ "type": [
3056
+ "array",
3057
+ "null"
3058
+ ],
3059
+ "items": {
3060
+ "type": "object",
3061
+ "properties": {
3062
+ "prop_id": {
3063
+ "type": [
3064
+ "integer",
3065
+ "null"
3066
+ ],
3067
+ "minimum": -9007199254740991,
3068
+ "maximum": 9007199254740991,
3069
+ "description": "加料属性 ID"
3070
+ },
3071
+ "prop_name": {
3072
+ "type": [
3073
+ "string",
3074
+ "null"
3075
+ ],
3076
+ "description": "加料属性名称"
3077
+ },
3078
+ "is_necessary": {
3079
+ "type": [
3080
+ "boolean",
3081
+ "null"
3082
+ ],
3083
+ "description": "是否必须选择该加料属性。true-必选,false-非必选"
3084
+ },
3085
+ "is_multiple": {
3086
+ "type": [
3087
+ "boolean",
3088
+ "null"
3089
+ ],
3090
+ "description": "是否可以同时选择多个属性值。true-多选,false-单选"
3091
+ },
3092
+ "prop_values": {
3093
+ "type": [
3094
+ "array",
3095
+ "null"
3096
+ ],
3097
+ "items": {
3098
+ "type": "object",
3099
+ "properties": {
3100
+ "prop_value_id": {
3101
+ "type": [
3102
+ "integer",
3103
+ "null"
3104
+ ],
3105
+ "minimum": -9007199254740991,
3106
+ "maximum": 9007199254740991,
3107
+ "description": "加料属性值 ID"
3108
+ },
3109
+ "prop_value_name": {
3110
+ "type": [
3111
+ "string",
3112
+ "null"
3113
+ ],
3114
+ "description": "加料属性值名称"
3115
+ },
3116
+ "status": {
3117
+ "type": [
3118
+ "integer",
3119
+ "null"
3120
+ ],
3121
+ "minimum": -9007199254740991,
3122
+ "maximum": 9007199254740991,
3123
+ "description": "加料属性值状态。0-禁用,1-启用"
3124
+ },
3125
+ "append_price": {
3126
+ "type": [
3127
+ "string",
3128
+ "null"
3129
+ ],
3130
+ "description": "选择该加料属性值产生的加价。单位:元 输出固定两位小数字符串。",
3131
+ "$comment": "upstream-money:fen",
3132
+ "pattern": "^-?(?:0|[1-9]\\d*)\\.\\d{2}$"
3133
+ }
3134
+ },
3135
+ "additionalProperties": true
3136
+ },
3137
+ "description": "当前套餐sku允许选择的加料属性值列表"
3138
+ }
3139
+ },
3140
+ "additionalProperties": true
3141
+ },
3142
+ "description": "该 SKU 允许使用的加料属性"
3143
+ }
3144
+ },
3145
+ "additionalProperties": true
3146
+ },
3147
+ "description": "门店渠道 SKU 维度加料属性,结构同 sku_props,sku_id 为网店 skuId。仅查询网店渠道(channel=0)且套餐商品发布了门店渠道时返回"
3148
+ }
3149
+ },
3150
+ "additionalProperties": true
3151
+ },
3152
+ "description": "当前分组中配置的套餐子商品列表"
3153
+ },
3154
+ "combo_group_id": {
3155
+ "type": [
3156
+ "integer",
3157
+ "null"
3158
+ ],
3159
+ "minimum": -9007199254740991,
3160
+ "maximum": 9007199254740991,
3161
+ "description": "套餐商品分组id"
3162
+ }
3163
+ },
3164
+ "additionalProperties": true
3165
+ },
3166
+ "description": "套餐分组列表。一个套餐商品可以配置一个或多个分组"
3167
+ }
3168
+ },
3169
+ "additionalProperties": true,
3170
+ "description": "套餐商品明细。仅套餐商品返回,非套餐商品、无套餐配置为空"
3171
+ },
3172
+ "h5_url": {
3173
+ "type": [
3174
+ "string",
3175
+ "null"
3176
+ ],
3177
+ "description": "默认生成的买家 H5 链接;已确认组织角色/渠道不适用时为 null,有效角色缺少 alias 则查询失败。"
3178
+ },
3179
+ "is_multi_sku": {
3180
+ "type": "boolean",
3181
+ "description": "沿用旧版:多条SKU、有效规格定义或SKU规格值任一成立。"
3182
+ },
3183
+ "is_multi_unit": {
3184
+ "type": "boolean",
3185
+ "description": "沿用旧版:商品能力标的multi_unit_mark为对象(含空对象)时为true。"
3186
+ }
3187
+ },
3188
+ "additionalProperties": true,
3189
+ "description": "返回数据",
3190
+ "required": [
3191
+ "item_id",
3192
+ "h5_url",
3193
+ "is_multi_sku",
3194
+ "is_multi_unit"
3195
+ ]
3196
+ },
3197
+ "group": {
3198
+ "type": "array",
3199
+ "items": {
3200
+ "type": "object",
3201
+ "properties": {
3202
+ "name": {
3203
+ "type": [
3204
+ "string",
3205
+ "null"
3206
+ ],
3207
+ "description": "分组名称"
3208
+ },
3209
+ "group_id": {
3210
+ "type": [
3211
+ "integer",
3212
+ "null"
3213
+ ],
3214
+ "minimum": -9007199254740991,
3215
+ "maximum": 9007199254740991,
3216
+ "description": "分组ID"
3217
+ },
3218
+ "is_hide_group": {
3219
+ "type": [
3220
+ "boolean",
3221
+ "null"
3222
+ ],
3223
+ "description": "是否隐藏分组"
3224
+ }
3225
+ },
3226
+ "additionalProperties": true
3227
+ },
3228
+ "description": "返回数据"
3229
+ },
3230
+ "content": {
3231
+ "type": "object",
3232
+ "properties": {
3233
+ "template_id": {
3234
+ "type": [
3235
+ "integer",
3236
+ "null"
3237
+ ],
3238
+ "minimum": -9007199254740991,
3239
+ "maximum": 9007199254740991,
3240
+ "description": "商品页模板ID"
3241
+ },
3242
+ "content": {
3243
+ "type": [
3244
+ "string",
3245
+ "null"
3246
+ ],
3247
+ "description": "详情页内容"
3248
+ },
3249
+ "components": {
3250
+ "type": [
3251
+ "string",
3252
+ "null"
3253
+ ],
3254
+ "description": "商品自定义组件"
3255
+ },
3256
+ "component_cover_image": {
3257
+ "type": [
3258
+ "object",
3259
+ "null"
3260
+ ],
3261
+ "properties": {
3262
+ "image_id": {
3263
+ "type": [
3264
+ "integer",
3265
+ "null"
3266
+ ],
3267
+ "minimum": -9007199254740991,
3268
+ "maximum": 9007199254740991,
3269
+ "description": "图片ID。"
3270
+ },
3271
+ "height": {
3272
+ "type": [
3273
+ "integer",
3274
+ "null"
3275
+ ],
3276
+ "minimum": -9007199254740991,
3277
+ "maximum": 9007199254740991,
3278
+ "description": "高"
3279
+ },
3280
+ "width": {
3281
+ "type": [
3282
+ "integer",
3283
+ "null"
3284
+ ],
3285
+ "minimum": -9007199254740991,
3286
+ "maximum": 9007199254740991,
3287
+ "description": "宽"
3288
+ },
3289
+ "url": {
3290
+ "type": [
3291
+ "string",
3292
+ "null"
3293
+ ],
3294
+ "description": "图片url"
3295
+ }
3296
+ },
3297
+ "additionalProperties": true,
3298
+ "description": "商品组件封面图。微页面 显示 商品封面图。"
3299
+ }
3300
+ },
3301
+ "additionalProperties": true,
3302
+ "description": "返回数据"
3303
+ },
3304
+ "request": {
3305
+ "type": "object",
3306
+ "required": [
3307
+ "method",
3308
+ "path",
3309
+ "body"
3310
+ ],
3311
+ "additionalProperties": false,
3312
+ "properties": {
3313
+ "method": {
3314
+ "const": "POST"
3315
+ },
3316
+ "path": {
3317
+ "type": "string",
3318
+ "minLength": 1
3319
+ },
3320
+ "body": {
3321
+ "type": "object",
3322
+ "description": "本地预览构造的请求体;结构按具体步骤说明。",
3323
+ "additionalProperties": true
3324
+ }
3325
+ }
3326
+ },
3327
+ "diagnosticExpected": {
3328
+ "type": "object",
3329
+ "additionalProperties": false,
3330
+ "required": [],
3331
+ "properties": {
3332
+ "type": {
3333
+ "anyOf": [
3334
+ {
3335
+ "type": "string",
3336
+ "description": "预期的 JSON 类型。"
3337
+ },
3338
+ {
3339
+ "type": "array",
3340
+ "items": {
3341
+ "type": "string",
3342
+ "description": "预期的 JSON 类型。"
3343
+ }
3344
+ }
3345
+ ],
3346
+ "description": "同版模型允许的类型。"
3347
+ },
3348
+ "enum": {
3349
+ "type": "array",
3350
+ "items": {
3351
+ "anyOf": [
3352
+ {
3353
+ "type": "string"
3354
+ },
3355
+ {
3356
+ "type": "number"
3357
+ },
3358
+ {
3359
+ "type": "boolean"
3360
+ },
3361
+ {
3362
+ "type": "null"
3363
+ }
3364
+ ],
3365
+ "description": "契约声明的静态标量约束。"
3366
+ },
3367
+ "description": "同版模型允许的静态值。"
3368
+ },
3369
+ "const": {
3370
+ "anyOf": [
3371
+ {
3372
+ "type": "string"
3373
+ },
3374
+ {
3375
+ "type": "number"
3376
+ },
3377
+ {
3378
+ "type": "boolean"
3379
+ },
3380
+ {
3381
+ "type": "null"
3382
+ }
3383
+ ],
3384
+ "description": "契约声明的静态标量约束。"
3385
+ },
3386
+ "minimum": {
3387
+ "type": "number",
3388
+ "description": "包含的最小值。"
3389
+ },
3390
+ "maximum": {
3391
+ "type": "number",
3392
+ "description": "包含的最大值。"
3393
+ },
3394
+ "exclusiveMinimum": {
3395
+ "type": "number",
3396
+ "description": "不包含的最小值。"
3397
+ },
3398
+ "exclusiveMaximum": {
3399
+ "type": "number",
3400
+ "description": "不包含的最大值。"
3401
+ },
3402
+ "minLength": {
3403
+ "type": "integer",
3404
+ "description": "最少字符数。"
3405
+ },
3406
+ "maxLength": {
3407
+ "type": "integer",
3408
+ "description": "最多字符数。"
3409
+ },
3410
+ "minItems": {
3411
+ "type": "integer",
3412
+ "description": "最少元素数。"
3413
+ },
3414
+ "maxItems": {
3415
+ "type": "integer",
3416
+ "description": "最多元素数。"
3417
+ },
3418
+ "format": {
3419
+ "type": "string",
3420
+ "description": "同版模型声明的格式。"
3421
+ },
3422
+ "pattern": {
3423
+ "type": "string",
3424
+ "description": "同版模型声明的字符约束。"
3425
+ },
3426
+ "additionalProperties": {
3427
+ "const": false,
3428
+ "description": "对象拒绝契约以外的属性。"
3429
+ },
3430
+ "contains": {
3431
+ "type": "object",
3432
+ "additionalProperties": false,
3433
+ "required": [
3434
+ "const"
3435
+ ],
3436
+ "properties": {
3437
+ "const": {
3438
+ "anyOf": [
3439
+ {
3440
+ "type": "string"
3441
+ },
3442
+ {
3443
+ "type": "number"
3444
+ },
3445
+ {
3446
+ "type": "boolean"
3447
+ },
3448
+ {
3449
+ "type": "null"
3450
+ }
3451
+ ],
3452
+ "description": "契约声明的静态标量约束。"
3453
+ }
3454
+ }
3455
+ },
3456
+ "items": {
3457
+ "type": "object",
3458
+ "additionalProperties": false,
3459
+ "required": [
3460
+ "enum"
3461
+ ],
3462
+ "properties": {
3463
+ "enum": {
3464
+ "type": "array",
3465
+ "items": {
3466
+ "anyOf": [
3467
+ {
3468
+ "type": "string"
3469
+ },
3470
+ {
3471
+ "type": "number"
3472
+ },
3473
+ {
3474
+ "type": "boolean"
3475
+ },
3476
+ {
3477
+ "type": "null"
3478
+ }
3479
+ ],
3480
+ "description": "契约声明的静态标量约束。"
3481
+ },
3482
+ "description": "元素允许的静态值。"
3483
+ }
3484
+ }
3485
+ }
3486
+ }
3487
+ },
3488
+ "diagnosticIssue": {
3489
+ "type": "object",
3490
+ "additionalProperties": false,
3491
+ "required": [
3492
+ "source",
3493
+ "reason"
3494
+ ],
3495
+ "properties": {
3496
+ "source": {
3497
+ "enum": [
3498
+ "argv",
3499
+ "input",
3500
+ "context",
3501
+ "output",
3502
+ "preview"
3503
+ ],
3504
+ "description": "问题所属的参数、输入、上下文、结果或预览模型。"
3505
+ },
3506
+ "path": {
3507
+ "type": "string",
3508
+ "description": "对应模型中的 JSON Pointer;不含原始输入或动态字典键。"
3509
+ },
3510
+ "option": {
3511
+ "type": "string",
3512
+ "description": "可定位时给出的已注册 CLI 选项。"
3513
+ },
3514
+ "reason": {
3515
+ "enum": [
3516
+ "required",
3517
+ "invalid_type",
3518
+ "invalid_choice",
3519
+ "out_of_range",
3520
+ "invalid_format",
3521
+ "conditional_required",
3522
+ "constraint",
3523
+ "unexpected_property",
3524
+ "unknown_option",
3525
+ "unknown_command",
3526
+ "excess_arguments",
3527
+ "missing_value"
3528
+ ],
3529
+ "description": "字段违反的约束类型,原始值不回显。"
3530
+ },
3531
+ "expected": {
3532
+ "$ref": "#/definitions/diagnosticExpected",
3533
+ "description": "同版契约的静态预期。"
3534
+ },
3535
+ "relatedPaths": {
3536
+ "type": "array",
3537
+ "items": {
3538
+ "type": "string",
3539
+ "description": "关联字段的 JSON Pointer。"
3540
+ },
3541
+ "description": "触发条件约束的关联字段。"
3542
+ }
3543
+ }
3544
+ },
3545
+ "diagnosticRecovery": {
3546
+ "type": "object",
3547
+ "additionalProperties": false,
3548
+ "required": [
3549
+ "action",
3550
+ "automaticBusinessRetry"
3551
+ ],
3552
+ "properties": {
3553
+ "action": {
3554
+ "enum": [
3555
+ "correct_input",
3556
+ "complete_authentication",
3557
+ "request_access_review",
3558
+ "stop_and_inspect"
3559
+ ],
3560
+ "description": "依次表示修正本地输入、补认证、核对权限或停止核查;仅是说明,不执行操作或授予权限。"
3561
+ },
3562
+ "automaticBusinessRetry": {
3563
+ "const": false,
3564
+ "description": "不据此自动重放业务请求。"
3565
+ }
3566
+ }
3567
+ },
3568
+ "diagnosticExecution": {
3569
+ "type": "object",
3570
+ "additionalProperties": false,
3571
+ "required": [
3572
+ "requestState",
3573
+ "coverage",
3574
+ "observedAttempts"
3575
+ ],
3576
+ "properties": {
3577
+ "requestState": {
3578
+ "enum": [
3579
+ "not_sent",
3580
+ "sent",
3581
+ "unknown"
3582
+ ],
3583
+ "description": "整次调用尚未发送、已有发送记录或无法排除未知请求;不代表业务完成。"
3584
+ },
3585
+ "coverage": {
3586
+ "enum": [
3587
+ "complete",
3588
+ "partial"
3589
+ ],
3590
+ "description": "请求观察覆盖全部已接入路径,或存在未观测路径;部分覆盖不能声明零请求。"
3591
+ },
3592
+ "observedAttempts": {
3593
+ "type": "integer",
3594
+ "minimum": 0,
3595
+ "maximum": 9007199254740991,
3596
+ "description": "本地已进入发送边界的观测次数下界,不是服务端执行次数。"
3597
+ }
3598
+ }
3599
+ }
3600
+ },
3601
+ "modules": {
3602
+ "item": {
3603
+ "base": true,
3604
+ "upstreamPath": "data",
3605
+ "required": true,
3606
+ "description": "商品基本信息(含SKU/规格/配置及默认H5,不含库存数量)。"
3607
+ },
3608
+ "group": {
3609
+ "base": false,
3610
+ "upstreamPath": "data",
3611
+ "required": true,
3612
+ "description": "商品关联分组数组,空数组表示该接口返回无分组。"
3613
+ },
3614
+ "content": {
3615
+ "base": false,
3616
+ "upstreamPath": "data",
3617
+ "required": true,
3618
+ "description": "商品图文对象,content为HTML、components为序列化字符串;不解析或改写HTML/组件。"
3619
+ }
3620
+ },
3621
+ "api": {
3622
+ "method": "POST",
3623
+ "path": "youzan.item.itemdetail.get/1.0.0"
3624
+ },
3625
+ "success": {
3626
+ "description": "item、全部显式 include 模块及必需 H5 处理均成功且匹配目标后整体输出。"
3627
+ },
3628
+ "errors": {
3629
+ "description": "失败 stdout 为空,stderr 为一份脱敏错误 JSON,退出码非零;不返回部分成功,不自动重试、切换身份或目标。按 error 模型及安全下一步处理。",
3630
+ "diagnosticsVersion": 2
3631
+ },
3632
+ "notes": [
3633
+ "默认返回 item 及适用的 H5;--include group 追加关联分组,--include content 追加图文,全部请求模块成功才整体成功。",
3634
+ "不返回已知库存数量,但保留库存单位、扣减方式等商品配置;未知扩展不据此推定结构或单位。",
3635
+ "已定义金额为元、固定两位小数字符串,不能再次除以 100;origin_price 的空字符串、null 和省略按模型保留。",
3636
+ "已有码为空字符串时不替换;只有编码为 null 或缺失时才按既定规则补全。",
3637
+ "H5 根据已核实角色与渠道生成;无法确认角色或缺必要信息时失败,不把未知情况解释为无链接。",
3638
+ "预览列出固定请求及条件分页模板,不证明实际角色、页数、对象存在或授权有效。",
3639
+ "本地 --dry-run 不读取凭证、不联网;预览只证明构造计划,不证明对象存在或权限有效。真实执行仍需有效上下文及目标范围授权,at 声明不替代服务端授权。",
3640
+ "本命令已定义金额的币种默认人民币(CNY);字段、结果或明确父对象上下文声明其他币种时按该声明处理,不执行换汇。",
3641
+ "商品标识采用新版口径:item_id/sku_id 跨分店和渠道统一,channel_item_id/channel_sku_id 对应目标店铺渠道的旧标识。商品查询使用统一商品 ID 和渠道,不接受旧渠道 ID 替代,不因标识数值相等而互换。"
3642
+ ],
3643
+ "error": {
3644
+ "type": "object",
3645
+ "required": [
3646
+ "success",
3647
+ "code",
3648
+ "message",
3649
+ "details"
3650
+ ],
3651
+ "additionalProperties": false,
3652
+ "properties": {
3653
+ "success": {
3654
+ "const": false
3655
+ },
3656
+ "code": {
3657
+ "const": -10001
3658
+ },
3659
+ "message": {
3660
+ "type": "string",
3661
+ "minLength": 1
3662
+ },
3663
+ "details": {
3664
+ "type": "object",
3665
+ "required": [
3666
+ "category",
3667
+ "stage",
3668
+ "command",
3669
+ "targetScope",
3670
+ "requestState",
3671
+ "nextStep",
3672
+ "errorVersion",
3673
+ "recovery",
3674
+ "execution"
3675
+ ],
3676
+ "additionalProperties": false,
3677
+ "properties": {
3678
+ "category": {
3679
+ "type": "string",
3680
+ "enum": [
3681
+ "parameter",
3682
+ "configuration",
3683
+ "transport",
3684
+ "authentication",
3685
+ "permission",
3686
+ "http",
3687
+ "protocol",
3688
+ "business_rejected",
3689
+ "not_found",
3690
+ "scope_unresolved",
3691
+ "pagination_stalled",
3692
+ "budget_exceeded",
3693
+ "missing_alias"
3694
+ ]
3695
+ },
3696
+ "stage": {
3697
+ "type": "string",
3698
+ "minLength": 1
3699
+ },
3700
+ "command": {
3701
+ "const": "item.item.get"
3702
+ },
3703
+ "targetScope": {
3704
+ "oneOf": [
3705
+ {
3706
+ "$ref": "#/definitions/scope"
3707
+ },
3708
+ {
3709
+ "type": "object",
3710
+ "maxProperties": 0
3711
+ }
3712
+ ]
3713
+ },
3714
+ "requestState": {
3715
+ "type": "string",
3716
+ "enum": [
3717
+ "not_sent",
3718
+ "sent",
3719
+ "unknown"
3720
+ ],
3721
+ "description": "not_sent 确认本步请求未发送;sent 已取得本步响应;unknown 传输中断,无法确定本步结果。不是整个多步查询的发送汇总。"
3722
+ },
3723
+ "nextStep": {
3724
+ "type": "string",
3725
+ "minLength": 1
3726
+ },
3727
+ "api": {
3728
+ "type": "string",
3729
+ "minLength": 1
3730
+ },
3731
+ "httpStatus": {
3732
+ "type": "integer",
3733
+ "minimum": 100,
3734
+ "maximum": 599
3735
+ },
3736
+ "businessCode": {
3737
+ "oneOf": [
3738
+ {
3739
+ "type": "integer",
3740
+ "minimum": -9007199254740991,
3741
+ "maximum": 9007199254740991
3742
+ },
3743
+ {
3744
+ "type": "string",
3745
+ "pattern": "^-?\\d{1,12}$"
3746
+ }
3747
+ ]
3748
+ },
3749
+ "gatewayCode": {
3750
+ "oneOf": [
3751
+ {
3752
+ "type": "integer",
3753
+ "minimum": -9007199254740991,
3754
+ "maximum": 9007199254740991
3755
+ },
3756
+ {
3757
+ "type": "string",
3758
+ "pattern": "^-?\\d{1,12}$"
3759
+ }
3760
+ ]
3761
+ },
3762
+ "trace_id": {
3763
+ "type": "string",
3764
+ "pattern": "^[a-zA-Z0-9_-]{1,128}$"
3765
+ },
3766
+ "request_id": {
3767
+ "type": "string",
3768
+ "pattern": "^[a-zA-Z0-9_-]{1,128}$"
3769
+ },
3770
+ "errorVersion": {
3771
+ "const": 2,
3772
+ "description": "本命令采用错误诊断协议第二版。"
3773
+ },
3774
+ "issues": {
3775
+ "type": "array",
3776
+ "minItems": 1,
3777
+ "maxItems": 16,
3778
+ "items": {
3779
+ "$ref": "#/definitions/diagnosticIssue"
3780
+ },
3781
+ "description": "最多十六个已定位问题,不包含收到的原值。"
3782
+ },
3783
+ "issuesTruncated": {
3784
+ "const": true,
3785
+ "description": "问题超过返回上限,当前列表没有穷尽全部问题。"
3786
+ },
3787
+ "recovery": {
3788
+ "$ref": "#/definitions/diagnosticRecovery",
3789
+ "description": "受限的恢复说明,不会自动执行。"
3790
+ },
3791
+ "execution": {
3792
+ "$ref": "#/definitions/diagnosticExecution",
3793
+ "description": "整次调用的请求观察,独立于失败阶段的 requestState。"
3794
+ }
3795
+ }
3796
+ }
3797
+ }
3798
+ }
3799
+ }