@optima-chat/commerce-cli 1.0.0

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 (528) hide show
  1. package/.claude/CLAUDE.md +101 -0
  2. package/LICENSE +21 -0
  3. package/README.md +1132 -0
  4. package/dist/api/rest/auth.d.ts +56 -0
  5. package/dist/api/rest/auth.d.ts.map +1 -0
  6. package/dist/api/rest/auth.js +150 -0
  7. package/dist/api/rest/auth.js.map +1 -0
  8. package/dist/api/rest/base.d.ts +7 -0
  9. package/dist/api/rest/base.d.ts.map +1 -0
  10. package/dist/api/rest/base.js +51 -0
  11. package/dist/api/rest/base.js.map +1 -0
  12. package/dist/api/rest/commerce.d.ts +730 -0
  13. package/dist/api/rest/commerce.d.ts.map +1 -0
  14. package/dist/api/rest/commerce.js +935 -0
  15. package/dist/api/rest/commerce.js.map +1 -0
  16. package/dist/commands/auth/index.d.ts +3 -0
  17. package/dist/commands/auth/index.d.ts.map +1 -0
  18. package/dist/commands/auth/index.js +14 -0
  19. package/dist/commands/auth/index.js.map +1 -0
  20. package/dist/commands/auth/login.d.ts +3 -0
  21. package/dist/commands/auth/login.d.ts.map +1 -0
  22. package/dist/commands/auth/login.js +194 -0
  23. package/dist/commands/auth/login.js.map +1 -0
  24. package/dist/commands/auth/logout.d.ts +3 -0
  25. package/dist/commands/auth/logout.d.ts.map +1 -0
  26. package/dist/commands/auth/logout.js +126 -0
  27. package/dist/commands/auth/logout.js.map +1 -0
  28. package/dist/commands/auth/switch.d.ts +3 -0
  29. package/dist/commands/auth/switch.d.ts.map +1 -0
  30. package/dist/commands/auth/switch.js +111 -0
  31. package/dist/commands/auth/switch.js.map +1 -0
  32. package/dist/commands/auth/test-refresh.d.ts +3 -0
  33. package/dist/commands/auth/test-refresh.d.ts.map +1 -0
  34. package/dist/commands/auth/test-refresh.js +43 -0
  35. package/dist/commands/auth/test-refresh.js.map +1 -0
  36. package/dist/commands/auth/whoami.d.ts +3 -0
  37. package/dist/commands/auth/whoami.d.ts.map +1 -0
  38. package/dist/commands/auth/whoami.js +117 -0
  39. package/dist/commands/auth/whoami.js.map +1 -0
  40. package/dist/commands/cleanup.d.ts +3 -0
  41. package/dist/commands/cleanup.d.ts.map +1 -0
  42. package/dist/commands/cleanup.js +100 -0
  43. package/dist/commands/cleanup.js.map +1 -0
  44. package/dist/commands/collection/add-products.d.ts +3 -0
  45. package/dist/commands/collection/add-products.d.ts.map +1 -0
  46. package/dist/commands/collection/add-products.js +105 -0
  47. package/dist/commands/collection/add-products.js.map +1 -0
  48. package/dist/commands/collection/create.d.ts +3 -0
  49. package/dist/commands/collection/create.d.ts.map +1 -0
  50. package/dist/commands/collection/create.js +154 -0
  51. package/dist/commands/collection/create.js.map +1 -0
  52. package/dist/commands/collection/delete.d.ts +3 -0
  53. package/dist/commands/collection/delete.d.ts.map +1 -0
  54. package/dist/commands/collection/delete.js +83 -0
  55. package/dist/commands/collection/delete.js.map +1 -0
  56. package/dist/commands/collection/get.d.ts +3 -0
  57. package/dist/commands/collection/get.d.ts.map +1 -0
  58. package/dist/commands/collection/get.js +83 -0
  59. package/dist/commands/collection/get.js.map +1 -0
  60. package/dist/commands/collection/index.d.ts +4 -0
  61. package/dist/commands/collection/index.d.ts.map +1 -0
  62. package/dist/commands/collection/index.js +22 -0
  63. package/dist/commands/collection/index.js.map +1 -0
  64. package/dist/commands/collection/list-products.d.ts +3 -0
  65. package/dist/commands/collection/list-products.d.ts.map +1 -0
  66. package/dist/commands/collection/list-products.js +100 -0
  67. package/dist/commands/collection/list-products.js.map +1 -0
  68. package/dist/commands/collection/list.d.ts +3 -0
  69. package/dist/commands/collection/list.d.ts.map +1 -0
  70. package/dist/commands/collection/list.js +98 -0
  71. package/dist/commands/collection/list.js.map +1 -0
  72. package/dist/commands/collection/remove-products.d.ts +3 -0
  73. package/dist/commands/collection/remove-products.d.ts.map +1 -0
  74. package/dist/commands/collection/remove-products.js +128 -0
  75. package/dist/commands/collection/remove-products.js.map +1 -0
  76. package/dist/commands/collection/update.d.ts +3 -0
  77. package/dist/commands/collection/update.d.ts.map +1 -0
  78. package/dist/commands/collection/update.js +166 -0
  79. package/dist/commands/collection/update.js.map +1 -0
  80. package/dist/commands/conversation/close.d.ts +3 -0
  81. package/dist/commands/conversation/close.d.ts.map +1 -0
  82. package/dist/commands/conversation/close.js +70 -0
  83. package/dist/commands/conversation/close.js.map +1 -0
  84. package/dist/commands/conversation/create.d.ts +3 -0
  85. package/dist/commands/conversation/create.d.ts.map +1 -0
  86. package/dist/commands/conversation/create.js +153 -0
  87. package/dist/commands/conversation/create.js.map +1 -0
  88. package/dist/commands/conversation/get.d.ts +3 -0
  89. package/dist/commands/conversation/get.d.ts.map +1 -0
  90. package/dist/commands/conversation/get.js +128 -0
  91. package/dist/commands/conversation/get.js.map +1 -0
  92. package/dist/commands/conversation/index.d.ts +3 -0
  93. package/dist/commands/conversation/index.d.ts.map +1 -0
  94. package/dist/commands/conversation/index.js +19 -0
  95. package/dist/commands/conversation/index.js.map +1 -0
  96. package/dist/commands/conversation/list.d.ts +3 -0
  97. package/dist/commands/conversation/list.d.ts.map +1 -0
  98. package/dist/commands/conversation/list.js +129 -0
  99. package/dist/commands/conversation/list.js.map +1 -0
  100. package/dist/commands/conversation/mark-read.d.ts +3 -0
  101. package/dist/commands/conversation/mark-read.d.ts.map +1 -0
  102. package/dist/commands/conversation/mark-read.js +69 -0
  103. package/dist/commands/conversation/mark-read.js.map +1 -0
  104. package/dist/commands/conversation/messages.d.ts +3 -0
  105. package/dist/commands/conversation/messages.d.ts.map +1 -0
  106. package/dist/commands/conversation/messages.js +128 -0
  107. package/dist/commands/conversation/messages.js.map +1 -0
  108. package/dist/commands/conversation/send.d.ts +3 -0
  109. package/dist/commands/conversation/send.d.ts.map +1 -0
  110. package/dist/commands/conversation/send.js +100 -0
  111. package/dist/commands/conversation/send.js.map +1 -0
  112. package/dist/commands/homepage/create.d.ts +3 -0
  113. package/dist/commands/homepage/create.d.ts.map +1 -0
  114. package/dist/commands/homepage/create.js +150 -0
  115. package/dist/commands/homepage/create.js.map +1 -0
  116. package/dist/commands/homepage/delete.d.ts +3 -0
  117. package/dist/commands/homepage/delete.d.ts.map +1 -0
  118. package/dist/commands/homepage/delete.js +83 -0
  119. package/dist/commands/homepage/delete.js.map +1 -0
  120. package/dist/commands/homepage/get.d.ts +3 -0
  121. package/dist/commands/homepage/get.d.ts.map +1 -0
  122. package/dist/commands/homepage/get.js +96 -0
  123. package/dist/commands/homepage/get.js.map +1 -0
  124. package/dist/commands/homepage/index.d.ts +4 -0
  125. package/dist/commands/homepage/index.d.ts.map +1 -0
  126. package/dist/commands/homepage/index.js +26 -0
  127. package/dist/commands/homepage/index.js.map +1 -0
  128. package/dist/commands/homepage/list.d.ts +3 -0
  129. package/dist/commands/homepage/list.d.ts.map +1 -0
  130. package/dist/commands/homepage/list.js +101 -0
  131. package/dist/commands/homepage/list.js.map +1 -0
  132. package/dist/commands/homepage/patch-settings.d.ts +3 -0
  133. package/dist/commands/homepage/patch-settings.d.ts.map +1 -0
  134. package/dist/commands/homepage/patch-settings.js +109 -0
  135. package/dist/commands/homepage/patch-settings.js.map +1 -0
  136. package/dist/commands/homepage/reorder.d.ts +3 -0
  137. package/dist/commands/homepage/reorder.d.ts.map +1 -0
  138. package/dist/commands/homepage/reorder.js +99 -0
  139. package/dist/commands/homepage/reorder.js.map +1 -0
  140. package/dist/commands/homepage/update-collections.d.ts +3 -0
  141. package/dist/commands/homepage/update-collections.d.ts.map +1 -0
  142. package/dist/commands/homepage/update-collections.js +93 -0
  143. package/dist/commands/homepage/update-collections.js.map +1 -0
  144. package/dist/commands/homepage/update-images.d.ts +3 -0
  145. package/dist/commands/homepage/update-images.d.ts.map +1 -0
  146. package/dist/commands/homepage/update-images.js +129 -0
  147. package/dist/commands/homepage/update-images.js.map +1 -0
  148. package/dist/commands/homepage/update-target.d.ts +3 -0
  149. package/dist/commands/homepage/update-target.d.ts.map +1 -0
  150. package/dist/commands/homepage/update-target.js +94 -0
  151. package/dist/commands/homepage/update-target.js.map +1 -0
  152. package/dist/commands/homepage/update.d.ts +3 -0
  153. package/dist/commands/homepage/update.d.ts.map +1 -0
  154. package/dist/commands/homepage/update.js +109 -0
  155. package/dist/commands/homepage/update.js.map +1 -0
  156. package/dist/commands/i18n/collection/create.d.ts +3 -0
  157. package/dist/commands/i18n/collection/create.d.ts.map +1 -0
  158. package/dist/commands/i18n/collection/create.js +147 -0
  159. package/dist/commands/i18n/collection/create.js.map +1 -0
  160. package/dist/commands/i18n/collection/delete.d.ts +3 -0
  161. package/dist/commands/i18n/collection/delete.d.ts.map +1 -0
  162. package/dist/commands/i18n/collection/delete.js +82 -0
  163. package/dist/commands/i18n/collection/delete.js.map +1 -0
  164. package/dist/commands/i18n/collection/get.d.ts +3 -0
  165. package/dist/commands/i18n/collection/get.d.ts.map +1 -0
  166. package/dist/commands/i18n/collection/get.js +85 -0
  167. package/dist/commands/i18n/collection/get.js.map +1 -0
  168. package/dist/commands/i18n/collection/index.d.ts +3 -0
  169. package/dist/commands/i18n/collection/index.d.ts.map +1 -0
  170. package/dist/commands/i18n/collection/index.js +14 -0
  171. package/dist/commands/i18n/collection/index.js.map +1 -0
  172. package/dist/commands/i18n/collection/list.d.ts +3 -0
  173. package/dist/commands/i18n/collection/list.d.ts.map +1 -0
  174. package/dist/commands/i18n/collection/list.js +89 -0
  175. package/dist/commands/i18n/collection/list.js.map +1 -0
  176. package/dist/commands/i18n/collection/update.d.ts +3 -0
  177. package/dist/commands/i18n/collection/update.d.ts.map +1 -0
  178. package/dist/commands/i18n/collection/update.js +108 -0
  179. package/dist/commands/i18n/collection/update.js.map +1 -0
  180. package/dist/commands/i18n/homepage/delete.d.ts +3 -0
  181. package/dist/commands/i18n/homepage/delete.d.ts.map +1 -0
  182. package/dist/commands/i18n/homepage/delete.js +90 -0
  183. package/dist/commands/i18n/homepage/delete.js.map +1 -0
  184. package/dist/commands/i18n/homepage/index.d.ts +4 -0
  185. package/dist/commands/i18n/homepage/index.d.ts.map +1 -0
  186. package/dist/commands/i18n/homepage/index.js +10 -0
  187. package/dist/commands/i18n/homepage/index.js.map +1 -0
  188. package/dist/commands/i18n/homepage/list.d.ts +3 -0
  189. package/dist/commands/i18n/homepage/list.d.ts.map +1 -0
  190. package/dist/commands/i18n/homepage/list.js +85 -0
  191. package/dist/commands/i18n/homepage/list.js.map +1 -0
  192. package/dist/commands/i18n/homepage/set.d.ts +3 -0
  193. package/dist/commands/i18n/homepage/set.d.ts.map +1 -0
  194. package/dist/commands/i18n/homepage/set.js +157 -0
  195. package/dist/commands/i18n/homepage/set.js.map +1 -0
  196. package/dist/commands/i18n/index.d.ts +3 -0
  197. package/dist/commands/i18n/index.d.ts.map +1 -0
  198. package/dist/commands/i18n/index.js +16 -0
  199. package/dist/commands/i18n/index.js.map +1 -0
  200. package/dist/commands/i18n/languages.d.ts +3 -0
  201. package/dist/commands/i18n/languages.d.ts.map +1 -0
  202. package/dist/commands/i18n/languages.js +90 -0
  203. package/dist/commands/i18n/languages.js.map +1 -0
  204. package/dist/commands/i18n/merchant/create.d.ts +3 -0
  205. package/dist/commands/i18n/merchant/create.d.ts.map +1 -0
  206. package/dist/commands/i18n/merchant/create.js +107 -0
  207. package/dist/commands/i18n/merchant/create.js.map +1 -0
  208. package/dist/commands/i18n/merchant/delete.d.ts +3 -0
  209. package/dist/commands/i18n/merchant/delete.d.ts.map +1 -0
  210. package/dist/commands/i18n/merchant/delete.js +57 -0
  211. package/dist/commands/i18n/merchant/delete.js.map +1 -0
  212. package/dist/commands/i18n/merchant/index.d.ts +3 -0
  213. package/dist/commands/i18n/merchant/index.d.ts.map +1 -0
  214. package/dist/commands/i18n/merchant/index.js +12 -0
  215. package/dist/commands/i18n/merchant/index.js.map +1 -0
  216. package/dist/commands/i18n/merchant/list.d.ts +3 -0
  217. package/dist/commands/i18n/merchant/list.d.ts.map +1 -0
  218. package/dist/commands/i18n/merchant/list.js +65 -0
  219. package/dist/commands/i18n/merchant/list.js.map +1 -0
  220. package/dist/commands/i18n/merchant/update.d.ts +3 -0
  221. package/dist/commands/i18n/merchant/update.d.ts.map +1 -0
  222. package/dist/commands/i18n/merchant/update.js +62 -0
  223. package/dist/commands/i18n/merchant/update.js.map +1 -0
  224. package/dist/commands/i18n/product/create.d.ts +3 -0
  225. package/dist/commands/i18n/product/create.d.ts.map +1 -0
  226. package/dist/commands/i18n/product/create.js +142 -0
  227. package/dist/commands/i18n/product/create.js.map +1 -0
  228. package/dist/commands/i18n/product/delete.d.ts +3 -0
  229. package/dist/commands/i18n/product/delete.d.ts.map +1 -0
  230. package/dist/commands/i18n/product/delete.js +67 -0
  231. package/dist/commands/i18n/product/delete.js.map +1 -0
  232. package/dist/commands/i18n/product/get.d.ts +3 -0
  233. package/dist/commands/i18n/product/get.d.ts.map +1 -0
  234. package/dist/commands/i18n/product/get.js +69 -0
  235. package/dist/commands/i18n/product/get.js.map +1 -0
  236. package/dist/commands/i18n/product/index.d.ts +3 -0
  237. package/dist/commands/i18n/product/index.d.ts.map +1 -0
  238. package/dist/commands/i18n/product/index.js +14 -0
  239. package/dist/commands/i18n/product/index.js.map +1 -0
  240. package/dist/commands/i18n/product/list.d.ts +3 -0
  241. package/dist/commands/i18n/product/list.d.ts.map +1 -0
  242. package/dist/commands/i18n/product/list.js +88 -0
  243. package/dist/commands/i18n/product/list.js.map +1 -0
  244. package/dist/commands/i18n/product/update.d.ts +3 -0
  245. package/dist/commands/i18n/product/update.d.ts.map +1 -0
  246. package/dist/commands/i18n/product/update.js +75 -0
  247. package/dist/commands/i18n/product/update.js.map +1 -0
  248. package/dist/commands/i18n/variant/create.d.ts +3 -0
  249. package/dist/commands/i18n/variant/create.d.ts.map +1 -0
  250. package/dist/commands/i18n/variant/create.js +179 -0
  251. package/dist/commands/i18n/variant/create.js.map +1 -0
  252. package/dist/commands/i18n/variant/delete.d.ts +3 -0
  253. package/dist/commands/i18n/variant/delete.d.ts.map +1 -0
  254. package/dist/commands/i18n/variant/delete.js +91 -0
  255. package/dist/commands/i18n/variant/delete.js.map +1 -0
  256. package/dist/commands/i18n/variant/get.d.ts +3 -0
  257. package/dist/commands/i18n/variant/get.d.ts.map +1 -0
  258. package/dist/commands/i18n/variant/get.js +75 -0
  259. package/dist/commands/i18n/variant/get.js.map +1 -0
  260. package/dist/commands/i18n/variant/index.d.ts +3 -0
  261. package/dist/commands/i18n/variant/index.d.ts.map +1 -0
  262. package/dist/commands/i18n/variant/index.js +14 -0
  263. package/dist/commands/i18n/variant/index.js.map +1 -0
  264. package/dist/commands/i18n/variant/list.d.ts +3 -0
  265. package/dist/commands/i18n/variant/list.d.ts.map +1 -0
  266. package/dist/commands/i18n/variant/list.js +79 -0
  267. package/dist/commands/i18n/variant/list.js.map +1 -0
  268. package/dist/commands/i18n/variant/update.d.ts +3 -0
  269. package/dist/commands/i18n/variant/update.d.ts.map +1 -0
  270. package/dist/commands/i18n/variant/update.js +113 -0
  271. package/dist/commands/i18n/variant/update.js.map +1 -0
  272. package/dist/commands/init.d.ts +3 -0
  273. package/dist/commands/init.d.ts.map +1 -0
  274. package/dist/commands/init.js +98 -0
  275. package/dist/commands/init.js.map +1 -0
  276. package/dist/commands/inventory/history.d.ts +3 -0
  277. package/dist/commands/inventory/history.d.ts.map +1 -0
  278. package/dist/commands/inventory/history.js +133 -0
  279. package/dist/commands/inventory/history.js.map +1 -0
  280. package/dist/commands/inventory/index.d.ts +3 -0
  281. package/dist/commands/inventory/index.d.ts.map +1 -0
  282. package/dist/commands/inventory/index.js +12 -0
  283. package/dist/commands/inventory/index.js.map +1 -0
  284. package/dist/commands/inventory/low-stock.d.ts +3 -0
  285. package/dist/commands/inventory/low-stock.d.ts.map +1 -0
  286. package/dist/commands/inventory/low-stock.js +100 -0
  287. package/dist/commands/inventory/low-stock.js.map +1 -0
  288. package/dist/commands/inventory/reserve.d.ts +3 -0
  289. package/dist/commands/inventory/reserve.d.ts.map +1 -0
  290. package/dist/commands/inventory/reserve.js +103 -0
  291. package/dist/commands/inventory/reserve.js.map +1 -0
  292. package/dist/commands/inventory/update.d.ts +3 -0
  293. package/dist/commands/inventory/update.d.ts.map +1 -0
  294. package/dist/commands/inventory/update.js +119 -0
  295. package/dist/commands/inventory/update.js.map +1 -0
  296. package/dist/commands/merchant/index.d.ts +3 -0
  297. package/dist/commands/merchant/index.d.ts.map +1 -0
  298. package/dist/commands/merchant/index.js +12 -0
  299. package/dist/commands/merchant/index.js.map +1 -0
  300. package/dist/commands/merchant/info.d.ts +3 -0
  301. package/dist/commands/merchant/info.d.ts.map +1 -0
  302. package/dist/commands/merchant/info.js +113 -0
  303. package/dist/commands/merchant/info.js.map +1 -0
  304. package/dist/commands/merchant/setup.d.ts +3 -0
  305. package/dist/commands/merchant/setup.d.ts.map +1 -0
  306. package/dist/commands/merchant/setup.js +228 -0
  307. package/dist/commands/merchant/setup.js.map +1 -0
  308. package/dist/commands/merchant/update.d.ts +3 -0
  309. package/dist/commands/merchant/update.d.ts.map +1 -0
  310. package/dist/commands/merchant/update.js +177 -0
  311. package/dist/commands/merchant/update.js.map +1 -0
  312. package/dist/commands/merchant/url.d.ts +3 -0
  313. package/dist/commands/merchant/url.d.ts.map +1 -0
  314. package/dist/commands/merchant/url.js +96 -0
  315. package/dist/commands/merchant/url.js.map +1 -0
  316. package/dist/commands/order/cancel.d.ts +3 -0
  317. package/dist/commands/order/cancel.d.ts.map +1 -0
  318. package/dist/commands/order/cancel.js +142 -0
  319. package/dist/commands/order/cancel.js.map +1 -0
  320. package/dist/commands/order/complete.d.ts +3 -0
  321. package/dist/commands/order/complete.d.ts.map +1 -0
  322. package/dist/commands/order/complete.js +99 -0
  323. package/dist/commands/order/complete.js.map +1 -0
  324. package/dist/commands/order/get.d.ts +3 -0
  325. package/dist/commands/order/get.d.ts.map +1 -0
  326. package/dist/commands/order/get.js +80 -0
  327. package/dist/commands/order/get.js.map +1 -0
  328. package/dist/commands/order/index.d.ts +3 -0
  329. package/dist/commands/order/index.d.ts.map +1 -0
  330. package/dist/commands/order/index.js +16 -0
  331. package/dist/commands/order/index.js.map +1 -0
  332. package/dist/commands/order/list.d.ts +3 -0
  333. package/dist/commands/order/list.d.ts.map +1 -0
  334. package/dist/commands/order/list.js +135 -0
  335. package/dist/commands/order/list.js.map +1 -0
  336. package/dist/commands/order/mark-delivered.d.ts +3 -0
  337. package/dist/commands/order/mark-delivered.d.ts.map +1 -0
  338. package/dist/commands/order/mark-delivered.js +70 -0
  339. package/dist/commands/order/mark-delivered.js.map +1 -0
  340. package/dist/commands/order/ship.d.ts +3 -0
  341. package/dist/commands/order/ship.d.ts.map +1 -0
  342. package/dist/commands/order/ship.js +124 -0
  343. package/dist/commands/order/ship.js.map +1 -0
  344. package/dist/commands/product/add-images.d.ts +3 -0
  345. package/dist/commands/product/add-images.d.ts.map +1 -0
  346. package/dist/commands/product/add-images.js +210 -0
  347. package/dist/commands/product/add-images.js.map +1 -0
  348. package/dist/commands/product/create.d.ts +3 -0
  349. package/dist/commands/product/create.d.ts.map +1 -0
  350. package/dist/commands/product/create.js +369 -0
  351. package/dist/commands/product/create.js.map +1 -0
  352. package/dist/commands/product/delete.d.ts +3 -0
  353. package/dist/commands/product/delete.d.ts.map +1 -0
  354. package/dist/commands/product/delete.js +100 -0
  355. package/dist/commands/product/delete.js.map +1 -0
  356. package/dist/commands/product/get.d.ts +3 -0
  357. package/dist/commands/product/get.d.ts.map +1 -0
  358. package/dist/commands/product/get.js +123 -0
  359. package/dist/commands/product/get.js.map +1 -0
  360. package/dist/commands/product/index.d.ts +3 -0
  361. package/dist/commands/product/index.d.ts.map +1 -0
  362. package/dist/commands/product/index.js +18 -0
  363. package/dist/commands/product/index.js.map +1 -0
  364. package/dist/commands/product/list.d.ts +3 -0
  365. package/dist/commands/product/list.d.ts.map +1 -0
  366. package/dist/commands/product/list.js +154 -0
  367. package/dist/commands/product/list.js.map +1 -0
  368. package/dist/commands/product/update.d.ts +3 -0
  369. package/dist/commands/product/update.d.ts.map +1 -0
  370. package/dist/commands/product/update.js +183 -0
  371. package/dist/commands/product/update.js.map +1 -0
  372. package/dist/commands/product/url.d.ts +3 -0
  373. package/dist/commands/product/url.d.ts.map +1 -0
  374. package/dist/commands/product/url.js +124 -0
  375. package/dist/commands/product/url.js.map +1 -0
  376. package/dist/commands/refund/create.d.ts +3 -0
  377. package/dist/commands/refund/create.d.ts.map +1 -0
  378. package/dist/commands/refund/create.js +161 -0
  379. package/dist/commands/refund/create.js.map +1 -0
  380. package/dist/commands/refund/get.d.ts +3 -0
  381. package/dist/commands/refund/get.d.ts.map +1 -0
  382. package/dist/commands/refund/get.js +93 -0
  383. package/dist/commands/refund/get.js.map +1 -0
  384. package/dist/commands/refund/index.d.ts +3 -0
  385. package/dist/commands/refund/index.d.ts.map +1 -0
  386. package/dist/commands/refund/index.js +8 -0
  387. package/dist/commands/refund/index.js.map +1 -0
  388. package/dist/commands/shipping/calculate.d.ts +3 -0
  389. package/dist/commands/shipping/calculate.d.ts.map +1 -0
  390. package/dist/commands/shipping/calculate.js +183 -0
  391. package/dist/commands/shipping/calculate.js.map +1 -0
  392. package/dist/commands/shipping/history.d.ts +3 -0
  393. package/dist/commands/shipping/history.d.ts.map +1 -0
  394. package/dist/commands/shipping/history.js +111 -0
  395. package/dist/commands/shipping/history.js.map +1 -0
  396. package/dist/commands/shipping/index.d.ts +3 -0
  397. package/dist/commands/shipping/index.d.ts.map +1 -0
  398. package/dist/commands/shipping/index.js +10 -0
  399. package/dist/commands/shipping/index.js.map +1 -0
  400. package/dist/commands/shipping/update-status.d.ts +3 -0
  401. package/dist/commands/shipping/update-status.d.ts.map +1 -0
  402. package/dist/commands/shipping/update-status.js +138 -0
  403. package/dist/commands/shipping/update-status.js.map +1 -0
  404. package/dist/commands/shipping-zone/create.d.ts +3 -0
  405. package/dist/commands/shipping-zone/create.d.ts.map +1 -0
  406. package/dist/commands/shipping-zone/create.js +191 -0
  407. package/dist/commands/shipping-zone/create.js.map +1 -0
  408. package/dist/commands/shipping-zone/delete.d.ts +3 -0
  409. package/dist/commands/shipping-zone/delete.d.ts.map +1 -0
  410. package/dist/commands/shipping-zone/delete.js +97 -0
  411. package/dist/commands/shipping-zone/delete.js.map +1 -0
  412. package/dist/commands/shipping-zone/index.d.ts +3 -0
  413. package/dist/commands/shipping-zone/index.d.ts.map +1 -0
  414. package/dist/commands/shipping-zone/index.js +14 -0
  415. package/dist/commands/shipping-zone/index.js.map +1 -0
  416. package/dist/commands/shipping-zone/list.d.ts +3 -0
  417. package/dist/commands/shipping-zone/list.d.ts.map +1 -0
  418. package/dist/commands/shipping-zone/list.js +91 -0
  419. package/dist/commands/shipping-zone/list.js.map +1 -0
  420. package/dist/commands/shipping-zone/rates.d.ts +4 -0
  421. package/dist/commands/shipping-zone/rates.d.ts.map +1 -0
  422. package/dist/commands/shipping-zone/rates.js +285 -0
  423. package/dist/commands/shipping-zone/rates.js.map +1 -0
  424. package/dist/commands/test/health.d.ts +3 -0
  425. package/dist/commands/test/health.d.ts.map +1 -0
  426. package/dist/commands/test/health.js +126 -0
  427. package/dist/commands/test/health.js.map +1 -0
  428. package/dist/commands/test/index.d.ts +3 -0
  429. package/dist/commands/test/index.d.ts.map +1 -0
  430. package/dist/commands/test/index.js +8 -0
  431. package/dist/commands/test/index.js.map +1 -0
  432. package/dist/commands/test/smoke.d.ts +3 -0
  433. package/dist/commands/test/smoke.d.ts.map +1 -0
  434. package/dist/commands/test/smoke.js +201 -0
  435. package/dist/commands/test/smoke.js.map +1 -0
  436. package/dist/commands/transfer/index.d.ts +3 -0
  437. package/dist/commands/transfer/index.d.ts.map +1 -0
  438. package/dist/commands/transfer/index.js +8 -0
  439. package/dist/commands/transfer/index.js.map +1 -0
  440. package/dist/commands/transfer/list.d.ts +3 -0
  441. package/dist/commands/transfer/list.d.ts.map +1 -0
  442. package/dist/commands/transfer/list.js +90 -0
  443. package/dist/commands/transfer/list.js.map +1 -0
  444. package/dist/commands/transfer/summary.d.ts +3 -0
  445. package/dist/commands/transfer/summary.d.ts.map +1 -0
  446. package/dist/commands/transfer/summary.js +68 -0
  447. package/dist/commands/transfer/summary.js.map +1 -0
  448. package/dist/commands/upload/file.d.ts +3 -0
  449. package/dist/commands/upload/file.d.ts.map +1 -0
  450. package/dist/commands/upload/file.js +79 -0
  451. package/dist/commands/upload/file.js.map +1 -0
  452. package/dist/commands/upload/image.d.ts +3 -0
  453. package/dist/commands/upload/image.d.ts.map +1 -0
  454. package/dist/commands/upload/image.js +92 -0
  455. package/dist/commands/upload/image.js.map +1 -0
  456. package/dist/commands/upload/index.d.ts +3 -0
  457. package/dist/commands/upload/index.d.ts.map +1 -0
  458. package/dist/commands/upload/index.js +10 -0
  459. package/dist/commands/upload/index.js.map +1 -0
  460. package/dist/commands/upload/video.d.ts +3 -0
  461. package/dist/commands/upload/video.d.ts.map +1 -0
  462. package/dist/commands/upload/video.js +78 -0
  463. package/dist/commands/upload/video.js.map +1 -0
  464. package/dist/commands/variant/add-images.d.ts +3 -0
  465. package/dist/commands/variant/add-images.d.ts.map +1 -0
  466. package/dist/commands/variant/add-images.js +146 -0
  467. package/dist/commands/variant/add-images.js.map +1 -0
  468. package/dist/commands/variant/create.d.ts +3 -0
  469. package/dist/commands/variant/create.d.ts.map +1 -0
  470. package/dist/commands/variant/create.js +189 -0
  471. package/dist/commands/variant/create.js.map +1 -0
  472. package/dist/commands/variant/delete.d.ts +3 -0
  473. package/dist/commands/variant/delete.d.ts.map +1 -0
  474. package/dist/commands/variant/delete.js +110 -0
  475. package/dist/commands/variant/delete.js.map +1 -0
  476. package/dist/commands/variant/index.d.ts +3 -0
  477. package/dist/commands/variant/index.d.ts.map +1 -0
  478. package/dist/commands/variant/index.js +14 -0
  479. package/dist/commands/variant/index.js.map +1 -0
  480. package/dist/commands/variant/list.d.ts +3 -0
  481. package/dist/commands/variant/list.d.ts.map +1 -0
  482. package/dist/commands/variant/list.js +98 -0
  483. package/dist/commands/variant/list.js.map +1 -0
  484. package/dist/commands/variant/update.d.ts +3 -0
  485. package/dist/commands/variant/update.d.ts.map +1 -0
  486. package/dist/commands/variant/update.js +141 -0
  487. package/dist/commands/variant/update.js.map +1 -0
  488. package/dist/index.d.ts +3 -0
  489. package/dist/index.d.ts.map +1 -0
  490. package/dist/index.js +133 -0
  491. package/dist/index.js.map +1 -0
  492. package/dist/postinstall.d.ts +3 -0
  493. package/dist/postinstall.d.ts.map +1 -0
  494. package/dist/postinstall.js +108 -0
  495. package/dist/postinstall.js.map +1 -0
  496. package/dist/preuninstall.d.ts +3 -0
  497. package/dist/preuninstall.d.ts.map +1 -0
  498. package/dist/preuninstall.js +53 -0
  499. package/dist/preuninstall.js.map +1 -0
  500. package/dist/utils/config.d.ts +110 -0
  501. package/dist/utils/config.d.ts.map +1 -0
  502. package/dist/utils/config.js +347 -0
  503. package/dist/utils/config.js.map +1 -0
  504. package/dist/utils/error.d.ts +35 -0
  505. package/dist/utils/error.d.ts.map +1 -0
  506. package/dist/utils/error.js +110 -0
  507. package/dist/utils/error.js.map +1 -0
  508. package/dist/utils/format.d.ts +77 -0
  509. package/dist/utils/format.d.ts.map +1 -0
  510. package/dist/utils/format.js +406 -0
  511. package/dist/utils/format.js.map +1 -0
  512. package/dist/utils/helpText.d.ts +116 -0
  513. package/dist/utils/helpText.d.ts.map +1 -0
  514. package/dist/utils/helpText.js +138 -0
  515. package/dist/utils/helpText.js.map +1 -0
  516. package/dist/utils/interactive.d.ts +60 -0
  517. package/dist/utils/interactive.d.ts.map +1 -0
  518. package/dist/utils/interactive.js +118 -0
  519. package/dist/utils/interactive.js.map +1 -0
  520. package/dist/utils/output.d.ts +82 -0
  521. package/dist/utils/output.d.ts.map +1 -0
  522. package/dist/utils/output.js +151 -0
  523. package/dist/utils/output.js.map +1 -0
  524. package/dist/utils/validation.d.ts +16 -0
  525. package/dist/utils/validation.d.ts.map +1 -0
  526. package/dist/utils/validation.js +46 -0
  527. package/dist/utils/validation.js.map +1 -0
  528. package/package.json +73 -0
package/README.md ADDED
@@ -0,0 +1,1132 @@
1
+ <div align="center">
2
+
3
+ # ⚡️ Optima CLI
4
+
5
+ ### 用自然语言管理你的电商店铺
6
+
7
+ **专为 Claude Code 设计的对话式 CLI 工具**
8
+
9
+ [![NPM Version](https://img.shields.io/npm/v/@optima-chat/commerce-cli?style=flat&logo=npm&color=CB3837)](https://www.npmjs.com/package/@optima-chat/commerce-cli)
10
+ [![Downloads](https://img.shields.io/npm/dt/@optima-chat/commerce-cli?style=flat&logo=npm&color=CB3837)](https://www.npmjs.com/package/@optima-chat/commerce-cli)
11
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat)](https://opensource.org/licenses/MIT)
12
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5.3-blue?style=flat&logo=typescript)](https://www.typescriptlang.org/)
13
+ [![Node Version](https://img.shields.io/badge/node-%3E%3D18-brightgreen?style=flat&logo=node.js)](https://nodejs.org/)
14
+
15
+ [网站](https://cli.optima.shop) • [文档](https://github.com/Optima-Chat/optima-cli#readme) • [NPM](https://www.npmjs.com/package/@optima-chat/commerce-cli) • [问题反馈](https://github.com/Optima-Chat/optima-cli/issues)
16
+
17
+ </div>
18
+
19
+ ---
20
+
21
+ ## 🎯 简介
22
+
23
+ Optima CLI 是 [Optima Commerce](https://www.optima.shop) 生态的命令行工具,**专为 Claude Code 设计**。
24
+
25
+ 无需记住命令 - 直接用中文对话,Claude 会自动调用相应的 CLI 命令来管理你的电商店铺。
26
+
27
+ ```bash
28
+ # 传统方式(需要记住命令)
29
+ commerce product create --title "陶瓷杯" --price 89 --stock 20
30
+
31
+ # Optima CLI + Claude Code(自然语言)
32
+ "创建陶瓷杯商品,89 美元,库存 20" ✨
33
+ ```
34
+
35
+ ## 🎬 演示
36
+
37
+ ### Claude Code 自然语言交互
38
+ > 这是 Optima CLI 最强大的功能 - 用自然语言管理电商店铺
39
+
40
+ <!--
41
+ TODO: 录制演示 GIF 后取消注释
42
+ ![Claude Code 演示](.github/assets/demo-claude-code.gif)
43
+ -->
44
+
45
+ **计划展示场景**:
46
+ - 💬 用中文对话创建商品
47
+ - 📦 自然语言查询订单
48
+ - 🚚 对话式订单发货
49
+ - 📊 智能库存管理
50
+
51
+ > 📹 演示内容录制中。参见 [DEMO_GUIDE.md](./docs/DEMO_GUIDE.md) 查看录制计划
52
+
53
+ ### 安装和基本使用
54
+ <!--
55
+ TODO: 录制安装演示 GIF
56
+ ![安装演示](.github/assets/demo-install.gif)
57
+ -->
58
+
59
+ ### 商品管理
60
+ <!--
61
+ TODO: 录制商品管理演示 GIF
62
+ ![商品管理演示](.github/assets/demo-product.gif)
63
+ -->
64
+
65
+ ## ✨ 核心特性
66
+
67
+ - 🤖 **对话式操作** - 在 Claude Code 中用自然语言管理店铺,无需记住命令
68
+ - ⚡️ **即开即用** - 一行命令安装,自动配置 Claude Code 集成
69
+ - 📦 **功能完整** - 16 个模块,95+ 个命令,覆盖商品、订单、库存、物流、首页配置等全流程
70
+ - 🌍 **国际化支持** - 内置多语言翻译管理,支持商品、商户、集合、首页的国际化
71
+ - 🎨 **双输出模式** - 默认 JSON 格式(AI 友好),支持 `--pretty` 彩色表格输出
72
+ - 🤖 **AI 优先设计** - 所有命令默认 JSON 输出,可被 AI Agent 直接解析和处理
73
+ - 🔐 **安全可靠** - OAuth 2.0 Device Flow 认证,Token 自动刷新
74
+ - 🌐 **多环境隔离** - 支持 Production/Stage/Development 三环境,各自独立配置
75
+ - 🧪 **测试工具** - 内置健康检查、冒烟测试、E2E 测试脚本,可用作功能测试工具
76
+ - 🛠 **开发者友好** - TypeScript 类型安全,完善的错误处理,单元测试覆盖
77
+
78
+ ## 🚀 快速开始
79
+
80
+ **要求**:Node.js >= 18
81
+
82
+ ### 1. 安装
83
+
84
+ ```bash
85
+ npm install -g @optima-chat/commerce-cli@latest
86
+ ```
87
+
88
+ 安装完成后会自动配置 Claude Code 集成。如需在项目中启用,对 Claude 说:
89
+
90
+ ```
91
+ "在这个项目启用 Optima CLI"
92
+ ```
93
+
94
+ ### 2. 登录你的账号
95
+
96
+ 在 Claude Code 中,你可以用自然语言说:
97
+
98
+ ```
99
+ "登录 Optima"
100
+ "Optima 登录"
101
+ "帮我登录到 Optima"
102
+ ```
103
+
104
+ Claude 会自动打开浏览器引导你完成 OAuth 授权。
105
+
106
+ ### 3. 开始用自然语言管理店铺 ✨
107
+
108
+ 在 Claude Code 中,你可以这样说:
109
+
110
+ ```
111
+ - "创建珍珠耳环商品,299 美元,库存 10"
112
+ - "查看今天的订单"
113
+ - "订单 order_123 发货,快递单号 DHL123456"
114
+ - "库存低于 5 的商品"
115
+ - "商品 prod_123 改价 399"
116
+ - "给商品添加中文翻译"
117
+ ```
118
+
119
+ Claude 会自动调用对应的 `optima` 命令来完成操作。
120
+
121
+ **就是这么简单!** 🎉
122
+
123
+ ## 📦 功能模块
124
+
125
+ Optima CLI 提供 **16 个功能模块**,**95+ 个命令**,覆盖电商全流程:
126
+
127
+ | 模块 | 命令数 | 说明 |
128
+ |------|--------|------|
129
+ | 🔐 **auth** | 4 | OAuth 2.0 认证(login, logout, whoami, switch)+ 多环境支持 |
130
+ | 📦 **product** | 7 | 商品 CRUD,图片管理,URL |
131
+ | 🎨 **variant** | 6 | SKU/规格管理 |
132
+ | 📋 **order** | 6 | 订单查询、发货、取消、标记送达 |
133
+ | 💰 **refund** | 2 | 退款创建和查询 |
134
+ | 📊 **inventory** | 4 | 库存预警、调整、历史、预留 |
135
+ | 🏪 **merchant** | 4 | 商户资料管理,URL |
136
+ | 🏠 **homepage** | 13 | 首页配置(CRUD、设置、重排序、翻译) |
137
+ | 📚 **collection** | 13 | 集合管理(CRUD、产品关联、翻译) |
138
+ | 🚚 **shipping** | 3 | 运费计算、物流历史、状态更新 |
139
+ | 🌍 **shipping-zone** | 5 | 运费区域和费率配置 |
140
+ | 📤 **upload** | 3 | 图片、视频、文件上传 |
141
+ | 💬 **conversation** | 7 | 客服对话管理 |
142
+ | 💳 **transfer** | 2 | 财务转账和汇总 |
143
+ | 🌐 **i18n** | 24 | 多语言翻译管理(商品/变体/集合/商户/首页) |
144
+ | 🧪 **test** | 2 | 健康检查、冒烟测试(功能测试工具) |
145
+
146
+ ## 🎨 输出格式
147
+
148
+ Optima CLI 支持两种输出格式,适用于不同场景:
149
+
150
+ ### JSON 模式(默认,AI 友好)
151
+
152
+ 适合 AI Agent 和程序化处理,返回结构化 JSON 数据:
153
+
154
+ ```bash
155
+ commerce product list --limit 2
156
+ # 输出标准 JSON 格式
157
+ {
158
+ "success": true,
159
+ "data": {
160
+ "products": [...],
161
+ "total": 2,
162
+ "page": 1,
163
+ "has_next": false
164
+ }
165
+ }
166
+ ```
167
+
168
+ **JSON 输出特性**:
169
+ - ✅ 所有 93 个命令默认输出 JSON 格式
170
+ - ✅ 统一的响应格式:`{ success, data, message?, error? }`
171
+ - ✅ 完整的数据结构,无信息丢失
172
+ - ✅ 适合 AI Agent 解析和自动化脚本
173
+ - ✅ 向后兼容:可使用 `--pretty` 切换到表格模式
174
+
175
+ ### Pretty 模式(人类可读)
176
+
177
+ 适合人类阅读,提供彩色终端输出和表格化数据:
178
+
179
+ ```bash
180
+ commerce product list --limit 2 --pretty
181
+ # 输出彩色表格,包含商品名称、价格、库存等
182
+ ```
183
+
184
+ **使用场景**:
185
+
186
+ **JSON 模式**(默认):
187
+ - AI Agent 调用(如 Claude Code)
188
+ - 自动化脚本和 CI/CD 流程
189
+ - 需要解析数据的程序
190
+ - 数据导出和集成
191
+
192
+ **Pretty 模式**:
193
+ - 在终端手动执行命令
194
+ - 快速查看数据和调试
195
+ - 人类可读性优先
196
+
197
+ **示例对比**:
198
+
199
+ ```bash
200
+ # JSON 模式(AI 友好,默认)
201
+ $ commerce merchant info
202
+ {
203
+ "success": true,
204
+ "data": {
205
+ "merchant": {
206
+ "id": "...",
207
+ "name": "徐昊的全球小店",
208
+ "slug": "xuhao-global-store",
209
+ "default_currency": "USD",
210
+ ...
211
+ }
212
+ }
213
+ }
214
+
215
+ # Pretty 模式(人类友好)
216
+ $ commerce merchant info --pretty
217
+ ✔ 商户信息获取成功
218
+
219
+ 店铺名称: 徐昊的全球小店
220
+ 店铺 Slug: xuhao-global-store
221
+ 默认货币: USD
222
+ ...
223
+ ```
224
+
225
+ > **提示**:在 Claude Code 中,Claude 会根据需要自动选择合适的输出格式。
226
+
227
+ ## 🤖 非交互模式 / CI/CD
228
+
229
+ **v0.16.0 新增**:Optima CLI 现在支持智能环境检测,自动适配终端用户和 AI/CI/CD 环境!
230
+
231
+ ### 🎯 自动环境检测
232
+
233
+ Optima CLI 自动检测运行环境,无需手动配置:
234
+
235
+ | 环境 | 行为 | 示例 |
236
+ |------|------|------|
237
+ | **终端** | 缺少参数时显示友好交互提示 | `$ commerce product create`<br>📦 创建新商品<br>? 商品名称: _ |
238
+ | **AI / CI/CD** | 自动禁用交互,立即报错 | `$ commerce product create`<br>⚠️ 缺少必需参数: --title |
239
+
240
+ ### 🔧 环境变量控制
241
+
242
+ **强制启用交互模式**(终端检测失败时):
243
+ ```bash
244
+ export OPTIMA_INTERACTIVE=1
245
+ ```
246
+
247
+ **强制禁用交互模式**:
248
+ ```bash
249
+ export NON_INTERACTIVE=1
250
+ # 或
251
+ export OPTIMA_NON_INTERACTIVE=true
252
+ ```
253
+
254
+ **CI 环境自动检测**:
255
+ - GitHub Actions (`CI=true`)
256
+ - GitLab CI (`GITLAB_CI=true`)
257
+ - Jenkins (`JENKINS_URL` 存在)
258
+ - Travis CI (`TRAVIS=true`)
259
+ - 等其他 CI 平台
260
+
261
+ ### 💻 CI/CD 使用示例
262
+
263
+ #### GitHub Actions
264
+
265
+ ```yaml
266
+ name: Deploy Products
267
+ on: [push]
268
+
269
+ jobs:
270
+ deploy:
271
+ runs-on: ubuntu-latest
272
+ steps:
273
+ - uses: actions/checkout@v3
274
+
275
+ - name: Install Optima CLI
276
+ run: npm install -g @optima-chat/commerce-cli
277
+
278
+ - name: Create Products
279
+ env:
280
+ OPTIMA_TOKEN: ${{ secrets.OPTIMA_TOKEN }}
281
+ run: |
282
+ # CI 环境自动禁用交互提示
283
+ commerce product create \
284
+ --title "自动化商品" \
285
+ --price 99 \
286
+ --stock 100
287
+
288
+ # 删除操作需要 --yes 确认
289
+ commerce product delete --id prod-123 --yes
290
+ ```
291
+
292
+ #### GitLab CI
293
+
294
+ ```yaml
295
+ stages:
296
+ - deploy
297
+
298
+ deploy_products:
299
+ stage: deploy
300
+ image: node:18
301
+ before_script:
302
+ - npm install -g @optima-chat/commerce-cli
303
+ script:
304
+ # CI 环境自动检测,无需额外配置
305
+ - commerce product list --json > products.json
306
+ - commerce product create --title "新商品" --price 49
307
+ variables:
308
+ OPTIMA_TOKEN: $OPTIMA_TOKEN
309
+ ```
310
+
311
+ #### Docker
312
+
313
+ ```dockerfile
314
+ FROM node:18-alpine
315
+
316
+ RUN npm install -g @optima-chat/commerce-cli
317
+
318
+ # 非交互环境,需提供所有参数
319
+ CMD ["optima", "product", "list", "--json"]
320
+ ```
321
+
322
+ ```bash
323
+ # 运行容器
324
+ docker run -e OPTIMA_TOKEN=$OPTIMA_TOKEN optima-cli
325
+ ```
326
+
327
+ ### ✅ 确认操作(`--yes` 标志)
328
+
329
+ 删除、取消等危险操作在终端和 CI 环境都需要明确确认:
330
+
331
+ ```bash
332
+ # 终端:显示确认提示
333
+ $ commerce product delete --id prod-123
334
+ ⚠️ 即将删除商品: prod-123
335
+ ? 确定要删除此商品吗? (y/N)
336
+
337
+ # CI/CD:使用 --yes 跳过确认
338
+ $ commerce product delete --id prod-123 --yes
339
+ ✓ 商品删除成功!
340
+ ```
341
+
342
+ 需要 `--yes` 的命令:
343
+ - `product delete`, `variant delete`
344
+ - `order cancel`, `order complete`
345
+ - `shipping-zone delete`
346
+ - `cleanup`
347
+
348
+ ### 📋 受影响的命令(17 个)
349
+
350
+ 以下命令支持自动环境检测:
351
+
352
+ | 类别 | 命令 | 非交互要求 |
353
+ |------|------|-----------|
354
+ | **核心** | `shipping calculate`, `product create`, `order ship` | 提供所有必需参数 |
355
+ | **常用** | `variant create`, `inventory update/reserve`, `shipping-zone create/add-rate` | 提供所有必需参数 |
356
+ | **确认** | `product/variant delete`, `order cancel/complete`, `cleanup` | 添加 `--yes` 标志 |
357
+ | **i18n** | `i18n product/merchant create` | 提供 `--lang` 和 `--name` |
358
+
359
+ ### 📚 更多信息
360
+
361
+ 完整技术文档请参阅 [`docs/NON_INTERACTIVE_MODE_DESIGN.md`](./docs/NON_INTERACTIVE_MODE_DESIGN.md)
362
+
363
+ ---
364
+
365
+ ## 📖 命令参考
366
+
367
+ > **提示**:推荐通过 Claude Code 用自然语言调用,以下为完整命令参考。
368
+
369
+ ### 🔐 认证管理
370
+
371
+ ```bash
372
+ commerce auth login # OAuth 登录到生产环境(默认)
373
+ commerce auth login --env stage # OAuth 登录到 Stage 环境
374
+ commerce auth login --env development # OAuth 登录到开发环境
375
+ commerce auth whoami # 查看当前用户和环境信息
376
+ commerce auth switch --env stage # 切换到 Stage 环境(无需重新登录)
377
+ commerce auth logout # 登出当前环境
378
+ commerce auth logout --env stage # 登出指定环境
379
+ commerce auth logout --all # 登出所有环境
380
+ ```
381
+
382
+ **多环境支持**(v0.19.0+):
383
+
384
+ Optima CLI 支持三个独立环境,各自拥有独立的配置文件:
385
+
386
+ | 环境 | Auth API | Commerce API | 前端域名 | 配置文件 |
387
+ |------|----------|--------------|---------|----------|
388
+ | Production(默认) | auth.optima.shop | api.optima.shop | optima.shop | config-prod.json |
389
+ | **Stage** | **auth-stage.optima.shop** | **api-stage.optima.shop** | **stage.optima.shop** | **config-stage.json** |
390
+ | Development | auth.optima.chat | api.optima.chat | optima.sh | config-dev.json |
391
+
392
+ **配置文件位置**:`~/.config/optima-cli/`
393
+
394
+ ```bash
395
+ # 登录到不同环境
396
+ commerce auth login # Production(默认)
397
+ commerce auth login --env stage # Stage 预发布环境
398
+ commerce auth login --env development # Development 开发环境
399
+
400
+ # 切换环境(无需重新登录)
401
+ commerce auth switch --env stage # 切换到 Stage
402
+ commerce auth switch --env production # 切换回 Production
403
+
404
+ # 查看当前环境
405
+ commerce auth whoami # 显示环境、用户、API URLs
406
+
407
+ # 环境配置会持久化,后续命令自动使用当前环境
408
+ commerce merchant url # 根据当前环境返回正确的店铺域名
409
+ ```
410
+
411
+ **环境变量认证**(适用于容器/CI/CD):
412
+
413
+ ```bash
414
+ # 设置环境变量后直接使用,无需 commerce auth login
415
+ export OPTIMA_TOKEN=<your_access_token>
416
+ commerce product list
417
+
418
+ # Docker 容器
419
+ docker run -e OPTIMA_TOKEN=<your_token> optima-cli product list
420
+
421
+ # CI/CD 流水线
422
+ export OPTIMA_TOKEN=${{ secrets.OPTIMA_TOKEN }}
423
+ commerce product create --title "商品"
424
+ ```
425
+
426
+ **认证优先级**:`OPTIMA_TOKEN` 环境变量 > 配置文件(`~/.config/optima-cli`)
427
+
428
+ **自定义 Backend 地址**(适用于开发/测试环境):
429
+
430
+ ```bash
431
+ # 自定义 Commerce API 地址
432
+ export OPTIMA_API_URL=http://localhost:8000
433
+ commerce product list
434
+
435
+ # 自定义 Auth API 地址
436
+ export OPTIMA_AUTH_URL=http://localhost:3000
437
+ commerce auth login
438
+
439
+ # Docker 开发环境
440
+ docker run \
441
+ -e OPTIMA_TOKEN=<your_token> \
442
+ -e OPTIMA_API_URL=http://host.docker.internal:8000 \
443
+ optima-cli product list
444
+ ```
445
+
446
+ **默认 Backend**:
447
+ - Commerce API: `https://api.optima.shop`
448
+ - Auth API: `https://auth.optima.shop`
449
+
450
+ ### 📦 商品管理
451
+
452
+ ```bash
453
+ commerce product create [--tags <tags>] # 创建商品(支持标签)
454
+ commerce product list [--limit 20] [--tags <tags>] # 商品列表(支持标签筛选)
455
+ commerce product get --id <id> # 商品详情
456
+ commerce product update --id <id> [--tags <tags>] # 更新商品(支持标签)
457
+ commerce product delete --id <id> [-y] # 删除商品
458
+ commerce product add-images --id <id> --path <...> # 添加本地图片
459
+ commerce product add-images --id <id> --url <...> # 添加图片URL
460
+ ```
461
+
462
+ **示例**:
463
+
464
+ ```bash
465
+ # 创建商品(带标签)
466
+ commerce product create \
467
+ --title "手工陶瓷杯" \
468
+ --price 89 \
469
+ --currency USD \
470
+ --stock 20 \
471
+ --description "精美手工制作" \
472
+ --tags "featured,new,handmade"
473
+
474
+ # 更新商品
475
+ commerce product update --id prod_123 \
476
+ --price 99 \
477
+ --stock 50 \
478
+ --tags "featured,sale"
479
+
480
+ # 按标签筛选商品
481
+ commerce product list --tags "featured,new"
482
+
483
+ # 添加本地图片
484
+ commerce product add-images --id prod_123 --path ./img1.jpg ./img2.jpg
485
+
486
+ # 添加图片 URL(避免重复上传)
487
+ commerce product add-images --id prod_123 --url https://example.com/image.jpg
488
+
489
+ # 混合使用
490
+ commerce product add-images --id prod_123 --path ./local.jpg --url https://example.com/remote.jpg
491
+ ```
492
+
493
+ ### 🎨 商品变体(SKU/规格)
494
+
495
+ ```bash
496
+ commerce variant list --product-id <product-id> # 变体列表
497
+ commerce variant create --product-id <product-id> # 创建变体
498
+ commerce variant get --product-id <product-id> --id <id> # 变体详情
499
+ commerce variant update --product-id <product-id> --id <id> # 更新变体
500
+ commerce variant delete --product-id <product-id> --id <id> [-y] # 删除变体
501
+ commerce variant add-images --product-id <product-id> --id <id> --path <...> # 添加变体图片
502
+ ```
503
+
504
+ **示例**:
505
+
506
+ ```bash
507
+ # 创建变体
508
+ commerce variant create --product-id prod_123 \
509
+ --sku "CUP-S-WHITE" \
510
+ --price 89 \
511
+ --stock 10 \
512
+ --attributes '{"size":"S","color":"White"}'
513
+ ```
514
+
515
+ ### 📋 订单管理
516
+
517
+ ```bash
518
+ commerce order list [--status pending] # 订单列表
519
+ commerce order get --id <id> # 订单详情
520
+ commerce order ship --id <id> # 订单发货
521
+ commerce order complete --id <id> # 完成订单
522
+ commerce order cancel --id <id> # 取消订单
523
+ commerce order mark-delivered --id <id> # 标记已送达
524
+ ```
525
+
526
+ **示例**:
527
+
528
+ ```bash
529
+ # 发货
530
+ commerce order ship --id order_123 \
531
+ --tracking DHL123456 \
532
+ --carrier DHL
533
+
534
+ # 取消订单
535
+ commerce order cancel --id order_456 \
536
+ --reason "客户要求取消" \
537
+ --yes
538
+ ```
539
+
540
+ ### 💰 退款管理
541
+
542
+ ```bash
543
+ commerce refund create --order-id <order-id> # 创建退款
544
+ commerce refund get --id <id> # 退款详情
545
+ ```
546
+
547
+ **示例**:
548
+
549
+ ```bash
550
+ # 创建退款
551
+ commerce refund create --order-id order_123 \
552
+ --amount 50 \
553
+ --reason requested_by_customer
554
+ ```
555
+
556
+ ### 📊 库存管理
557
+
558
+ ```bash
559
+ commerce inventory low-stock [--threshold 5] # 低库存商品
560
+ commerce inventory update --id <id> # 更新库存
561
+ commerce inventory history --id <id> # 库存历史
562
+ commerce inventory reserve --id <id> # 预留库存
563
+ ```
564
+
565
+ **示例**:
566
+
567
+ ```bash
568
+ # 查看低库存
569
+ commerce inventory low-stock --threshold 10
570
+
571
+ # 更新库存
572
+ commerce inventory update --id prod_123 \
573
+ --quantity 50 \
574
+ --reason "补货"
575
+ ```
576
+
577
+ ### 🏪 商户管理
578
+
579
+ ```bash
580
+ commerce merchant info # 获取商户信息
581
+ commerce merchant update # 更新商户资料
582
+ commerce merchant setup # 初始化商户资料(首次使用)
583
+ commerce merchant url [--open] # 获取店铺链接(可在浏览器打开)
584
+ ```
585
+
586
+ **初始化商户资料示例**:
587
+
588
+ ```bash
589
+ # 交互式模式(适合本地使用)
590
+ commerce merchant setup
591
+
592
+ # 非交互式模式(适合容器/CI/CD,所有必填字段通过参数提供)
593
+ commerce merchant setup \
594
+ --name "我的店铺" \
595
+ --origin-country-alpha2 HK \
596
+ --origin-city Saikung \
597
+ --origin-state "New Territories" \
598
+ --origin-line-1 "G/F NO.93, TAI PO TSAI VILLAGE" \
599
+ --contact-name "XU, HAO" \
600
+ --contact-phone "53736279" \
601
+ --contact-email "merchant@example.com"
602
+
603
+ # 带可选字段
604
+ commerce merchant setup \
605
+ --name "我的店铺" \
606
+ --description "高品质商品" \
607
+ --slug "my-store" \
608
+ --default-currency USD \
609
+ --origin-country-alpha2 CN \
610
+ --origin-city "深圳" \
611
+ --origin-state "广东省" \
612
+ --origin-line-1 "南山区科技园" \
613
+ --origin-line-2 "创业大厦10楼" \
614
+ --origin-postal-code "518000" \
615
+ --contact-name "张三" \
616
+ --contact-phone "13800138000" \
617
+ --contact-email "merchant@example.com" \
618
+ --company-name "深圳某某科技有限公司"
619
+ ```
620
+
621
+ **必填字段**:
622
+ - `--name`: 商户名称
623
+ - `--origin-country-alpha2`: 发货国家代码(2位,如 CN, US, HK)
624
+ - `--origin-city`: 发货城市
625
+ - `--origin-state`: 发货省/州
626
+ - `--origin-line-1`: 发货地址第一行
627
+ - `--contact-name`: 联系人姓名
628
+ - `--contact-phone`: 联系电话
629
+ - `--contact-email`: 联系邮箱
630
+
631
+ ### 🏠 首页配置
632
+
633
+ ```bash
634
+ # 首页模块管理
635
+ commerce homepage module list # 查看所有首页模块
636
+ commerce homepage module get --slug <slug> # 获取模块详情
637
+ commerce homepage module create # 创建首页模块
638
+ commerce homepage module update --slug <slug> # 更新模块
639
+ commerce homepage module delete --slug <slug> [-y] # 删除模块
640
+ commerce homepage module reorder # 重新排序模块
641
+
642
+ # 首页设置
643
+ commerce homepage settings get # 获取首页设置
644
+ commerce homepage settings update # 更新首页设置
645
+
646
+ # 首页统计
647
+ commerce homepage analytics # 查看首页分析数据
648
+
649
+ # 首页区块翻译
650
+ commerce i18n homepage list --section-id <id> # 查看区块的所有翻译
651
+ commerce i18n homepage set --section-id <id> --lang <lang> --title <text> # 创建/更新区块翻译
652
+ commerce i18n homepage delete --section-id <id> --lang <lang> [-y] # 删除区块翻译
653
+ ```
654
+
655
+ **示例**:
656
+
657
+ ```bash
658
+ # 创建轮播图模块
659
+ commerce homepage module create \
660
+ --slug hero-banner \
661
+ --type banner \
662
+ --position 1 \
663
+ --enabled true \
664
+ --config '{"images":[{"url":"https://example.com/banner.jpg","alt":"Summer Sale"}]}'
665
+
666
+ # 更新首页设置
667
+ commerce homepage settings update \
668
+ --show-search true \
669
+ --show-categories true \
670
+ --featured-limit 8
671
+
672
+ # 为首页区块添加中英文翻译
673
+ commerce i18n homepage set \
674
+ --section-id section-123 \
675
+ --lang zh-CN \
676
+ --title "精选商品" \
677
+ --description "查看我们最受欢迎的产品"
678
+
679
+ commerce i18n homepage set \
680
+ --section-id section-123 \
681
+ --lang en-US \
682
+ --title "Featured Products" \
683
+ --description "Discover our most popular items"
684
+ ```
685
+
686
+ ### 📚 集合管理
687
+
688
+ ```bash
689
+ # 集合 CRUD
690
+ commerce collection list # 查看所有集合
691
+ commerce collection get --slug <slug> # 获取集合详情
692
+ commerce collection create # 创建集合
693
+ commerce collection update --slug <slug> # 更新集合
694
+ commerce collection delete --slug <slug> [-y] # 删除集合
695
+
696
+ # 集合产品关联
697
+ commerce collection add-products --slug <slug> # 添加产品到集合
698
+ commerce collection remove-products --slug <slug> # 从集合移除产品
699
+
700
+ # 集合翻译
701
+ commerce i18n collection list --collection-id <id> # 查看集合翻译列表
702
+ commerce i18n collection get --collection-id <id> --lang <lang> # 获取特定语言翻译
703
+ commerce i18n collection create --collection-id <id> # 创建集合翻译
704
+ commerce i18n collection update --collection-id <id> --lang <lang> # 更新集合翻译
705
+ commerce i18n collection delete --collection-id <id> --lang <lang> [-y] # 删除集合翻译
706
+ ```
707
+
708
+ **示例**:
709
+
710
+ ```bash
711
+ # 创建夏季促销集合
712
+ commerce collection create \
713
+ --name "Summer Sale" \
714
+ --slug summer-sale \
715
+ --description "Hot deals for summer" \
716
+ --image-url "https://example.com/summer.jpg"
717
+
718
+ # 添加产品到集合
719
+ commerce collection add-products --slug summer-sale \
720
+ --product-ids prod_123,prod_456,prod_789
721
+
722
+ # 添加西班牙语翻译
723
+ commerce i18n collection create \
724
+ --collection-id coll_123 \
725
+ --lang es-ES \
726
+ --name "Promoción de Verano" \
727
+ --description "Ofertas calientes para el verano"
728
+ ```
729
+
730
+ ### 🚚 物流管理
731
+
732
+ ```bash
733
+ commerce shipping calculate # 计算运费
734
+ commerce shipping history --order-id <order-id> # 物流历史
735
+ commerce shipping update-status --id <id> # 更新物流状态
736
+ ```
737
+
738
+ **示例**:
739
+
740
+ ```bash
741
+ # 计算运费
742
+ commerce shipping calculate \
743
+ --country US \
744
+ --postal-code 10001 \
745
+ --weight 0.5
746
+ ```
747
+
748
+ ### 🌍 运费区域管理
749
+
750
+ ```bash
751
+ commerce shipping-zone list # 运费区域列表
752
+ commerce shipping-zone create # 创建运费区域
753
+ commerce shipping-zone delete --id <id> [-y] # 删除运费区域
754
+ commerce shipping-zone list-rates --zone-id <zone-id> # 查看区域费率
755
+ commerce shipping-zone add-rate --zone-id <zone-id> # 添加运费费率
756
+ ```
757
+
758
+ **示例**:
759
+
760
+ ```bash
761
+ # 创建区域
762
+ commerce shipping-zone create \
763
+ --name "北美区域" \
764
+ --countries US,CA,MX
765
+
766
+ # 添加费率
767
+ commerce shipping-zone add-rate --zone-id zone_123 \
768
+ --price 15 \
769
+ --currency USD \
770
+ --min-weight 0 \
771
+ --free-threshold 100
772
+ ```
773
+
774
+ ### 📤 文件上传
775
+
776
+ ```bash
777
+ commerce upload image --path <path> # 上传图片
778
+ commerce upload video --path <path> # 上传视频
779
+ commerce upload file --path <path> # 上传文件
780
+ ```
781
+
782
+ ### 💬 对话管理
783
+
784
+ ```bash
785
+ commerce conversation list # 对话列表
786
+ commerce conversation get --id <id> # 对话详情
787
+ commerce conversation create # 创建对话
788
+ commerce conversation close --id <id> # 关闭对话
789
+ commerce conversation messages --id <id> # 查看消息
790
+ commerce conversation send --id <id> # 发送消息
791
+ commerce conversation mark-read --id <id> # 标记已读
792
+ ```
793
+
794
+ ### 💳 财务管理
795
+
796
+ ```bash
797
+ commerce transfer list # 转账列表
798
+ commerce transfer summary # 财务汇总
799
+ ```
800
+
801
+ ### 🌐 国际化翻译
802
+
803
+ Optima CLI 内置完整的多语言翻译管理系统:
804
+
805
+ ```bash
806
+ # 语言管理
807
+ commerce i18n languages [--all] # 查看支持的语言
808
+
809
+ # 商品翻译
810
+ commerce i18n product list --product-id <product-id>
811
+ commerce i18n product get --product-id <product-id> --lang <lang>
812
+ commerce i18n product create --product-id <product-id>
813
+ commerce i18n product update --product-id <product-id> --lang <lang>
814
+ commerce i18n product delete --product-id <product-id> --lang <lang> [-y]
815
+
816
+ # 商户翻译
817
+ commerce i18n merchant list
818
+ commerce i18n merchant get --lang <lang>
819
+ commerce i18n merchant create
820
+ commerce i18n merchant update --lang <lang>
821
+ commerce i18n merchant delete --lang <lang> [-y]
822
+
823
+ # 变体翻译
824
+ commerce i18n variant list --variant-id <variant-id>
825
+ commerce i18n variant get --variant-id <variant-id> --lang <lang>
826
+ commerce i18n variant create --variant-id <variant-id>
827
+ commerce i18n variant update --variant-id <variant-id> --lang <lang>
828
+ commerce i18n variant delete --variant-id <variant-id> --lang <lang> [-y]
829
+
830
+ # 集合翻译
831
+ commerce i18n collection list --collection-id <collection-id>
832
+ commerce i18n collection get --collection-id <collection-id> --lang <lang>
833
+ commerce i18n collection create --collection-id <collection-id>
834
+ commerce i18n collection update --collection-id <collection-id> --lang <lang>
835
+ commerce i18n collection delete --collection-id <collection-id> --lang <lang> [-y]
836
+
837
+ # 首页区块翻译
838
+ commerce i18n homepage list --section-id <id>
839
+ commerce i18n homepage set --section-id <id> --lang <lang> --title <text>
840
+ commerce i18n homepage delete --section-id <id> --lang <lang> [-y]
841
+ ```
842
+
843
+ **示例**:
844
+
845
+ ```bash
846
+ # 查看支持的语言
847
+ commerce i18n languages
848
+
849
+ # 为商品添加中文翻译
850
+ commerce i18n product create --product-id prod_123 \
851
+ --lang zh-CN \
852
+ --name "手工陶瓷杯" \
853
+ --description "精美的手工制作陶瓷杯" \
854
+ --meta-title "手工陶瓷杯 - 传统工艺"
855
+
856
+ # 为变体添加翻译(注意:使用 --variant-id 而非 --product-id)
857
+ commerce i18n variant create --variant-id var_456 \
858
+ --lang ja-JP \
859
+ --name "セラミックマグ" \
860
+ --variant-attributes-translations '{"size":{"key_translation":"サイズ","value_translation":{"S":"小"}},"color":{"key_translation":"色","value_translation":{"白":"白"}}}'
861
+
862
+ # 为集合添加翻译
863
+ commerce i18n collection create --collection-id coll_789 \
864
+ --lang es-ES \
865
+ --name "Promoción de Verano" \
866
+ --description "Colección especial de verano"
867
+ ```
868
+
869
+ ### 🧪 测试工具
870
+
871
+ Optima CLI 内置测试工具,可用作功能测试和 API 健康检查:
872
+
873
+ ```bash
874
+ # 健康检查(检查 API 连通性和响应时间)
875
+ commerce test health
876
+
877
+ # 冒烟测试(测试核心 API 端点)
878
+ commerce test smoke
879
+
880
+ # 端到端测试脚本(适用于 CI/CD)
881
+ export OPTIMA_TOKEN=your_token
882
+ export TEST_ENV=stage
883
+ ./scripts/e2e-test.sh
884
+ ```
885
+
886
+ **健康检查示例**:
887
+ ```bash
888
+ $ commerce test health
889
+
890
+ 🏥 健康检查 - stage 环境
891
+
892
+ 检查 Auth API...
893
+ ✓ Auth API 健康 (120ms)
894
+ 检查 Commerce API...
895
+ ✓ Commerce API 健康 (150ms)
896
+
897
+ 认证状态:
898
+ ✓ 已登录
899
+
900
+ 总体状态:
901
+ ✓ 所有服务正常
902
+ ```
903
+
904
+ **冒烟测试示例**:
905
+ ```bash
906
+ $ commerce test smoke
907
+
908
+ 🧪 冒烟测试 - stage 环境
909
+
910
+ 1. 测试商户信息 API...
911
+ ✓ 成功 (120ms) - 商户: My Store
912
+ 2. 测试商品列表 API...
913
+ ✓ 成功 (150ms) - 5 个商品
914
+ 3. 测试订单列表 API...
915
+ ✓ 成功 (180ms) - 3 个订单
916
+
917
+ 测试结果:
918
+ ✓ 通过: 3
919
+
920
+ 成功率: 100.0%
921
+ ```
922
+
923
+ **E2E 测试脚本**:
924
+ ```bash
925
+ # scripts/e2e-test.sh 执行完整业务流程测试
926
+ # 1. 健康检查
927
+ # 2. 冒烟测试
928
+ # 3. 创建测试商品
929
+ # 4. 验证商品
930
+ # 5. 清理测试数据
931
+
932
+ # 在 CI/CD 中使用
933
+ - name: Run E2E tests
934
+ env:
935
+ OPTIMA_TOKEN: ${{ secrets.OPTIMA_TOKEN_STAGE }}
936
+ TEST_ENV: stage
937
+ run: ./scripts/e2e-test.sh
938
+ ```
939
+
940
+ **特点**:
941
+ - ✅ 默认 JSON 输出,易于解析
942
+ - ✅ 测试失败时退出码为 1(CI/CD 友好)
943
+ - ✅ 支持多环境测试
944
+ - ✅ 详细的错误信息和响应时间
945
+
946
+ ## 💬 自然语言示例
947
+
948
+ 在 Claude Code 中,你可以用非常简洁的自然语言描述需求:
949
+
950
+ **认证和环境**:
951
+ - "登录 Optima"
952
+ - "登录到 Stage 环境"
953
+ - "切换到生产环境"
954
+ - "查看我的账号信息"
955
+ - "打开我的店铺"
956
+ - "切换到开发环境"
957
+
958
+ **商品管理**:
959
+ - "创建陶瓷杯商品,89 美元,库存 20"
960
+ - "查看所有商品"
961
+ - "商品 prod_123 改价 99"
962
+ - "删除商品 prod_456"
963
+ - "给商品 prod_789 添加这张图片"
964
+ - "把产品 handle 改成英文"
965
+ - "创建白色 S 码变体,SKU 为 CUP-S-WHITE"
966
+
967
+ **订单处理**:
968
+ - "今天的订单"
969
+ - "待发货订单"
970
+ - "订单 order_123 详情"
971
+ - "订单 order_456 发货,快递单号 DHL123456"
972
+ - "取消订单 order_789"
973
+ - "标记订单 order_123 已送达"
974
+
975
+ **库存管理**:
976
+ - "库存低于 5 的商品"
977
+ - "商品 prod_123 库存改为 50"
978
+ - "查看商品 prod_456 的库存历史"
979
+ - "预留商品 prod_789 的 10 个库存"
980
+
981
+ **物流管理**:
982
+ - "计算从香港到纽约的运费,0.5 公斤"
983
+ - "查看订单 order_123 的物流历史"
984
+ - "创建北美运费区域,包含 US、CA、MX"
985
+
986
+ **国际化管理**:
987
+ - "查看支持的语言"
988
+ - "给商品 prod_123 添加中文翻译"
989
+ - "更新商品 prod_456 的日语翻译"
990
+ - "查看商户的所有翻译"
991
+ - "给变体 var_123 添加日语翻译"
992
+ - "给集合 coll_456 添加西班牙语翻译"
993
+
994
+ **首页配置**:
995
+ - "查看首页所有模块"
996
+ - "创建轮播图模块"
997
+ - "更新首页设置,启用搜索栏"
998
+ - "重新排序首页模块"
999
+ - "给首页添加中文翻译"
1000
+
1001
+ **集合管理**:
1002
+ - "创建夏季促销集合"
1003
+ - "查看所有集合"
1004
+ - "给集合 coll_123 添加商品 prod_456"
1005
+ - "从集合中移除商品"
1006
+ - "给集合添加西班牙语翻译"
1007
+
1008
+ **客服管理**:
1009
+ - "查看所有对话"
1010
+ - "创建新的客户对话"
1011
+ - "给对话 conv_123 发送消息"
1012
+
1013
+ **测试工具**:
1014
+ - "检查 API 健康状态"
1015
+ - "运行冒烟测试"
1016
+ - "测试 Stage 环境的服务"
1017
+
1018
+ > **提示**:说话越自然越好,Claude 会理解你的意图并调用正确的命令。
1019
+
1020
+ ## 🛠 工具命令
1021
+
1022
+ ```bash
1023
+ commerce init # 在当前项目启用 Optima CLI
1024
+ commerce cleanup # 清理配置文件
1025
+ commerce version # 显示版本信息
1026
+ ```
1027
+
1028
+ ## 🏗 项目状态
1029
+
1030
+ **当前版本:v0.19.0** 🎉
1031
+
1032
+ ✅ **已完成功能**:
1033
+ - ✅ 完整的 OAuth 2.0 认证系统(Device Flow + 自动刷新)
1034
+ - ✅ 16 个核心功能模块(新增 test 测试模块)
1035
+ - ✅ 95+ 个完整命令
1036
+ - ✅ 默认 JSON 输出(AI 优先设计)
1037
+ - ✅ 双输出模式(JSON + Pretty)
1038
+ - ✅ 国际化翻译管理系统(支持 5 种语言)
1039
+ - ✅ 首页配置管理(模块化组件 + 多语言)
1040
+ - ✅ 集合管理(CRUD + 产品关联 + 翻译)
1041
+ - ✅ **三环境隔离支持**(Production/Stage/Development)
1042
+ - ✅ **测试工具集成**(健康检查 + 冒烟测试 + E2E 脚本)
1043
+ - ✅ Claude Code 深度集成
1044
+ - ✅ 完善的错误处理和用户提示
1045
+ - ✅ 单元测试覆盖(19 tests, 81% coverage)
1046
+ - ✅ 交互式命令提示
1047
+ - ✅ 智能环境检测(终端 vs AI/CI)
1048
+
1049
+ **功能覆盖率**:100%(所有核心商户运营功能 + 测试工具)
1050
+
1051
+ **最近更新**:
1052
+
1053
+ **v0.19.0**(2025-11-13):
1054
+ - 🌐 **三环境架构**:新增 Stage 环境,支持 Production/Stage/Development 完全隔离
1055
+ - 🔐 **多文件配置**:每个环境独立配置文件(config-prod.json, config-stage.json, config-dev.json)
1056
+ - 🔄 **环境切换命令**:新增 `auth switch` 命令,无需重新登录即可切换环境
1057
+ - 🧪 **测试模块**:新增 `test health` 和 `test smoke` 命令
1058
+ - 📜 **E2E 测试脚本**:`scripts/e2e-test.sh` 用于 CI/CD 集成
1059
+ - 🛠️ **认证命令增强**:`whoami` 显示环境信息,`logout` 支持 `--env` 和 `--all`
1060
+ - 📚 **完整文档更新**:CLAUDE.md 和 README.md 包含所有新功能
1061
+
1062
+ **v0.18.1**(2025-11-11):
1063
+ - 🐛 修复:开发环境店铺域名使用正确的 `optima.sh`
1064
+ - 🛠️ 优化:统一店铺域名管理,自动根据环境选择
1065
+
1066
+ **v0.18.0**(2025-11-11):
1067
+ - 🌍 新增:环境支持(`--env development` 参数)
1068
+ - 🔐 支持生产和开发环境切换
1069
+ - 🎯 自动选择对应的 OAuth Client ID 和 API 端点
1070
+ - 🔄 环境配置持久化
1071
+
1072
+ ## 🔧 开发
1073
+
1074
+ ```bash
1075
+ # 克隆仓库
1076
+ git clone https://github.com/Optima-Chat/optima-cli.git
1077
+ cd optima-cli
1078
+
1079
+ # 安装依赖
1080
+ npm install
1081
+
1082
+ # 开发模式运行
1083
+ npm run dev
1084
+
1085
+ # 构建
1086
+ npm run build
1087
+
1088
+ # 测试
1089
+ npm test # 运行所有测试
1090
+ npm run test:watch # 监听模式
1091
+ npm run test:coverage # 生成覆盖率报告
1092
+
1093
+ # 发布到 NPM
1094
+ npm version minor # 升级版本号
1095
+ git push --follow-tags # 推送触发自动发布
1096
+ ```
1097
+
1098
+ ## 📚 技术栈
1099
+
1100
+ - **语言**:TypeScript 5.3
1101
+ - **CLI 框架**:Commander.js
1102
+ - **HTTP 客户端**:Axios
1103
+ - **交互提示**:Inquirer.js
1104
+ - **UI 组件**:Chalk(颜色)+ cli-table3(表格)+ Ora(加载动画)
1105
+ - **配置存储**:Conf(加密)
1106
+ - **认证**:OAuth 2.0 Device Flow
1107
+ - **测试**:Jest + ts-jest(19 tests, 81% coverage)
1108
+
1109
+ ## 📝 许可证
1110
+
1111
+ [MIT License](./LICENSE)
1112
+
1113
+ ## 🔗 相关链接
1114
+
1115
+ - [Optima Commerce 官网](https://www.optima.shop)
1116
+ - [Agentic Chat](https://ai.optima.chat) - 卖家对话界面
1117
+ - [Optima Store](https://go.optima.shop) - 买家购物前端
1118
+ - [Claude Code](https://claude.com/claude-code)
1119
+ - [NPM Package](https://www.npmjs.com/package/@optima-chat/commerce-cli)
1120
+ - [GitHub Issues](https://github.com/Optima-Chat/optima-cli/issues)
1121
+
1122
+ ## 💬 支持
1123
+
1124
+ 遇到问题?
1125
+
1126
+ - 提交 [Issue](https://github.com/Optima-Chat/optima-cli/issues)
1127
+ - 查看 [完整命令列表](.claude/CLAUDE.md)
1128
+ - 联系团队:support@optima.chat
1129
+
1130
+ ---
1131
+
1132
+ **由 [Optima Commerce Team](https://www.optima.shop) 用 ❤️ 打造**