shoplazza-cli 1.1.2 → 2.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.
- package/CHANGELOG.md +21 -0
- package/LICENSE +21 -0
- package/README.md +206 -332
- package/README.zh.md +318 -0
- package/package.json +24 -70
- package/scripts/install.js +144 -0
- package/scripts/jsbuild/dev/index.js +123 -0
- package/scripts/jsbuild/index.js +77 -0
- package/{lib/checkout/build → scripts/jsbuild}/plugin/vite-plugin-add-extension-id.js +4 -2
- package/scripts/jsbuild/vite.config.js +35 -0
- package/scripts/run.js +29 -0
- package/.editorconfig +0 -28
- package/.prettierrc +0 -9
- package/bin/shoplazza +0 -137
- package/fixtures/assets/blog.scss +0 -74
- package/fixtures/assets/cart_modal.scss +0 -450
- package/fixtures/assets/collection_detail.js +0 -234
- package/fixtures/assets/collection_detail.scss +0 -345
- package/fixtures/assets/collection_list.scss +0 -11
- package/fixtures/assets/collection_slider.scss +0 -169
- package/fixtures/assets/feature_columns.scss +0 -26
- package/fixtures/assets/feature_product.scss +0 -109
- package/fixtures/assets/footer.js +0 -58
- package/fixtures/assets/footer.scss +0 -337
- package/fixtures/assets/four_images.scss +0 -29
- package/fixtures/assets/gallery.scss +0 -55
- package/fixtures/assets/header.js +0 -178
- package/fixtures/assets/header.scss +0 -929
- package/fixtures/assets/image_text.scss +0 -72
- package/fixtures/assets/logo_bar.scss +0 -11
- package/fixtures/assets/newsletter.scss +0 -90
- package/fixtures/assets/not_found.scss +0 -39
- package/fixtures/assets/page_detail.scss +0 -16
- package/fixtures/assets/pagination.scss +0 -150
- package/fixtures/assets/postcss.config.js +0 -6
- package/fixtures/assets/product_description.scss +0 -88
- package/fixtures/assets/product_detail.js +0 -634
- package/fixtures/assets/product_detail.scss +0 -1106
- package/fixtures/assets/relative_product.scss +0 -45
- package/fixtures/assets/reviews.scss +0 -70
- package/fixtures/assets/rich_text.scss +0 -71
- package/fixtures/assets/search.js +0 -87
- package/fixtures/assets/search.scss +0 -67
- package/fixtures/assets/slide.scss +0 -51
- package/fixtures/assets/slider.scss +0 -141
- package/fixtures/assets/test.scss +0 -1
- package/fixtures/assets/theme.css +0 -976
- package/fixtures/assets/theme.scss +0 -1100
- package/fixtures/assets/three_images.scss +0 -20
- package/fixtures/assets/tools.scss +0 -23
- package/fixtures/assets/two_images.scss +0 -24
- package/fixtures/assets/video.scss +0 -45
- package/fixtures/assets/video_text.scss +0 -63
- package/fixtures/config/settings_data.json +0 -107
- package/fixtures/config/settings_schema.json +0 -690
- package/fixtures/layout/theme.liquid +0 -76
- package/fixtures/locales/ar-SA.json +0 -212
- package/fixtures/locales/de-DE.json +0 -290
- package/fixtures/locales/en-US.json +0 -290
- package/fixtures/locales/es-ES.json +0 -290
- package/fixtures/locales/fr-FR.json +0 -290
- package/fixtures/locales/id-ID.json +0 -212
- package/fixtures/locales/it-IT.json +0 -212
- package/fixtures/locales/ja-JP.json +0 -289
- package/fixtures/locales/ko-KR.json +0 -290
- package/fixtures/locales/nl-NL.json +0 -290
- package/fixtures/locales/pl-PL.json +0 -290
- package/fixtures/locales/pt-PT.json +0 -212
- package/fixtures/locales/ru-RU.json +0 -212
- package/fixtures/locales/th-TH.json +0 -212
- package/fixtures/locales/zh-CN.json +0 -290
- package/fixtures/locales/zh-TW.json +0 -290
- package/fixtures/sections/apps.liquid +0 -47
- package/fixtures/sections/blog.liquid +0 -137
- package/fixtures/sections/collection_desc.liquid +0 -34
- package/fixtures/sections/collection_detail.liquid +0 -436
- package/fixtures/sections/collection_image.liquid +0 -104
- package/fixtures/sections/collection_list.liquid +0 -161
- package/fixtures/sections/collection_name.liquid +0 -34
- package/fixtures/sections/collection_slider.liquid +0 -330
- package/fixtures/sections/feature_columns.liquid +0 -275
- package/fixtures/sections/feature_product.liquid +0 -227
- package/fixtures/sections/footer.liquid +0 -488
- package/fixtures/sections/four_images.liquid +0 -160
- package/fixtures/sections/gallery.liquid +0 -258
- package/fixtures/sections/header.liquid +0 -1157
- package/fixtures/sections/html.liquid +0 -40
- package/fixtures/sections/image_text.liquid +0 -350
- package/fixtures/sections/instagram_plus.liquid +0 -393
- package/fixtures/sections/logo_bar.liquid +0 -183
- package/fixtures/sections/newsletter.liquid +0 -225
- package/fixtures/sections/not_found.liquid +0 -39
- package/fixtures/sections/overlay_image.liquid +0 -648
- package/fixtures/sections/page_detail.liquid +0 -39
- package/fixtures/sections/photo_collection.liquid +0 -433
- package/fixtures/sections/product_description.liquid +0 -208
- package/fixtures/sections/product_detail.liquid +0 -611
- package/fixtures/sections/products.liquid +0 -216
- package/fixtures/sections/relative_product.liquid +0 -121
- package/fixtures/sections/reviews.liquid +0 -115
- package/fixtures/sections/rich_text.liquid +0 -157
- package/fixtures/sections/search.liquid +0 -163
- package/fixtures/sections/slide.liquid +0 -719
- package/fixtures/sections/three_images.liquid +0 -157
- package/fixtures/sections/two_images.liquid +0 -125
- package/fixtures/sections/video.liquid +0 -95
- package/fixtures/sections/video_text.liquid +0 -128
- package/fixtures/snippets/bgset.liquid +0 -21
- package/fixtures/snippets/card_title.liquid +0 -8
- package/fixtures/snippets/cart_modal.liquid +0 -74
- package/fixtures/snippets/collection.liquid +0 -77
- package/fixtures/snippets/collection_filter_modal.liquid +0 -56
- package/fixtures/snippets/default_image_4.liquid +0 -14
- package/fixtures/snippets/default_image_6.liquid +0 -18
- package/fixtures/snippets/default_image_8.liquid +0 -23
- package/fixtures/snippets/four_images_item.liquid +0 -8
- package/fixtures/snippets/header_ads.liquid +0 -95
- package/fixtures/snippets/hero_image.liquid +0 -94
- package/fixtures/snippets/icon_video_play_large.liquid +0 -1
- package/fixtures/snippets/icon_video_play_medium.liquid +0 -4
- package/fixtures/snippets/icon_video_play_small.liquid +0 -4
- package/fixtures/snippets/lazyimg.liquid +0 -22
- package/fixtures/snippets/lazyimg_art.liquid +0 -36
- package/fixtures/snippets/lazysizes.liquid +0 -41
- package/fixtures/snippets/link.liquid +0 -2
- package/fixtures/snippets/pagination.liquid +0 -48
- package/fixtures/snippets/product.liquid +0 -126
- package/fixtures/snippets/product_art_tpl.liquid +0 -152
- package/fixtures/snippets/product_info_body.liquid +0 -337
- package/fixtures/snippets/product_info_tpl.liquid +0 -423
- package/fixtures/snippets/product_label.liquid +0 -46
- package/fixtures/snippets/settings.liquid +0 -295
- package/fixtures/snippets/social-meta-tags.liquid +0 -106
- package/fixtures/snippets/video_html.liquid +0 -11
- package/fixtures/snippets/video_source.liquid +0 -98
- package/fixtures/snippets/video_thumb_icon.liquid +0 -2
- package/fixtures/templates/404.liquid +0 -1
- package/fixtures/templates/collection.liquid +0 -92
- package/fixtures/templates/index.liquid +0 -206
- package/fixtures/templates/page.liquid +0 -1
- package/fixtures/templates/product.liquid +0 -99
- package/fixtures/templates/search.liquid +0 -1
- package/jest.config.js +0 -192
- package/lib/__tests__/log.test.js +0 -15
- package/lib/__tests__/utils.test.js +0 -69
- package/lib/app/api/cli.js +0 -225
- package/lib/app/api/openapi.js +0 -121
- package/lib/app/api/partnerOpenapi.js +0 -104
- package/lib/app/bin/index.js +0 -20
- package/lib/app/bin/javy/javy-arm-linux-v5.0.1 +0 -0
- package/lib/app/bin/javy/javy-arm-macos-v5.0.1 +0 -0
- package/lib/app/bin/javy/javy-x86_64-linux-v5.0.1 +0 -0
- package/lib/app/bin/javy/javy-x86_64-macos-v5.0.1 +0 -0
- package/lib/app/bin/javy/javy-x86_64-windows-v5.0.1 +0 -0
- package/lib/app/commands/config/actions/link.js +0 -189
- package/lib/app/commands/config/actions/use.js +0 -40
- package/lib/app/commands/config/index.js +0 -25
- package/lib/app/commands/config/link.js +0 -11
- package/lib/app/commands/config/use.js +0 -11
- package/lib/app/commands/deploy/actions/deploy.js +0 -196
- package/lib/app/commands/deploy/index.js +0 -11
- package/lib/app/commands/dev/actions/dev.js +0 -206
- package/lib/app/commands/dev/index.js +0 -11
- package/lib/app/commands/generate/actions/extension.js +0 -97
- package/lib/app/commands/generate/actions/generateCheckout.js +0 -58
- package/lib/app/commands/generate/actions/generateFunction.js +0 -56
- package/lib/app/commands/generate/actions/generateTheme.js +0 -128
- package/lib/app/commands/generate/extension.js +0 -11
- package/lib/app/commands/generate/index.js +0 -22
- package/lib/app/commands/index.js +0 -82
- package/lib/app/commands/info/actions/info.js +0 -168
- package/lib/app/commands/info/index.js +0 -11
- package/lib/app/commands/init/actions/init.js +0 -176
- package/lib/app/commands/init/index.js +0 -14
- package/lib/app/commands/versions/actions/list.js +0 -210
- package/lib/app/commands/versions/index.js +0 -22
- package/lib/app/commands/versions/list.js +0 -14
- package/lib/app/constant/code.js +0 -7
- package/lib/app/constant/color.js +0 -18
- package/lib/app/constant/extension.js +0 -16
- package/lib/app/constant/host.js +0 -23
- package/lib/app/constant/sso.js +0 -7
- package/lib/app/index.js +0 -8
- package/lib/app/services/auth/config.js +0 -33
- package/lib/app/services/auth/index.js +0 -9
- package/lib/app/services/auth/oauth-server.js +0 -70
- package/lib/app/services/auth/partner-token.js +0 -45
- package/lib/app/services/auth/sso-token.js +0 -69
- package/lib/app/services/auth/store-token.js +0 -100
- package/lib/app/services/auth/url-builder.js +0 -23
- package/lib/app/services/config/index.js +0 -41
- package/lib/app/services/devServer/app.js +0 -76
- package/lib/app/services/devServer/index.js +0 -103
- package/lib/app/services/devServer/middleware/hmacValidatorMiddleWare.js +0 -20
- package/lib/app/services/devServer/middleware/index.js +0 -5
- package/lib/app/services/devServer/tunnel/index.js +0 -43
- package/lib/app/services/devServer/tunnel/providers/cloudflare.js +0 -364
- package/lib/app/services/devServer/tunnel/providers/ngrok.js +0 -70
- package/lib/app/services/devServer/utils/index.js +0 -5
- package/lib/app/services/devServer/utils/secureCompare.js +0 -5
- package/lib/app/services/devServer/views/app.ejs +0 -133
- package/lib/app/services/extension-build/buildCheckout.js +0 -47
- package/lib/app/services/extension-build/buildFunction.js +0 -57
- package/lib/app/services/extension-build/buildTheme.js +0 -100
- package/lib/app/services/extension-build/index.js +0 -23
- package/lib/app/services/extension-build/plugins/vite-plugin-add-extension-id.js +0 -26
- package/lib/app/services/extension-diff/index.js +0 -132
- package/lib/app/services/extension-upsert/index.js +0 -21
- package/lib/app/services/extension-upsert/upsertCheckout.js +0 -44
- package/lib/app/services/extension-upsert/upsertFunction.js +0 -52
- package/lib/app/services/extension-upsert/upsertTheme.js +0 -113
- package/lib/app/services/oss/index.js +0 -45
- package/lib/app/services/partner/index.js +0 -52
- package/lib/app/store/base-store.js +0 -37
- package/lib/app/store/config-store.js +0 -55
- package/lib/app/store/config.js +0 -21
- package/lib/app/store/index.js +0 -14
- package/lib/app/store/install-store.js +0 -41
- package/lib/app/store/sso-store.js +0 -55
- package/lib/app/utils/asyncPool.js +0 -42
- package/lib/app/utils/debug/index.js +0 -16
- package/lib/app/utils/env.js +0 -24
- package/lib/app/utils/error.js +0 -20
- package/lib/app/utils/git.js +0 -20
- package/lib/app/utils/json.js +0 -27
- package/lib/app/utils/path.js +0 -33
- package/lib/app/utils/platform.js +0 -37
- package/lib/app/utils/request/cli.js +0 -72
- package/lib/app/utils/request/debug.js +0 -13
- package/lib/app/utils/request/openapi.js +0 -67
- package/lib/app/utils/request/partnerOpenapi.js +0 -47
- package/lib/app/utils/toml.js +0 -56
- package/lib/app/utils/views/message.js +0 -68
- package/lib/app/utils/views/select.js +0 -36
- package/lib/app/utils/withTempDir.js +0 -55
- package/lib/auth/__mocks__/getCode.js +0 -7
- package/lib/auth/__mocks__/index.js +0 -0
- package/lib/auth/child.js +0 -23
- package/lib/auth/getCode.js +0 -39
- package/lib/auth/index.js +0 -134
- package/lib/check.js +0 -28
- package/lib/checkout/api.js +0 -164
- package/lib/checkout/build/plugin/vite-plugin-transform-extension-html.js +0 -207
- package/lib/checkout/build/vite.config.js +0 -34
- package/lib/checkout/build.js +0 -38
- package/lib/checkout/config.js +0 -97
- package/lib/checkout/create.js +0 -132
- package/lib/checkout/delete.js +0 -26
- package/lib/checkout/deploy.js +0 -59
- package/lib/checkout/dev/index.js +0 -143
- package/lib/checkout/fields.js +0 -29
- package/lib/checkout/index.js +0 -63
- package/lib/checkout/preview.js +0 -52
- package/lib/checkout/pull.js +0 -22
- package/lib/checkout/push.js +0 -141
- package/lib/checkout/template/README.md +0 -34
- package/lib/checkout/template/_gitignore +0 -4
- package/lib/checkout/template/extension.config.js +0 -4
- package/lib/checkout/template/extensions/extension-template/extension.json +0 -10
- package/lib/checkout/template/extensions/extension-template/src/content.html +0 -3
- package/lib/checkout/template/extensions/extension-template/src/index.html +0 -5
- package/lib/checkout/template/extensions/extension-template/src/index.js +0 -11
- package/lib/checkout/template/extensions/extension-template/src/script.html +0 -3
- package/lib/checkout/template/extensions/extension-template/src/style.html +0 -3
- package/lib/checkout/template/package.json +0 -17
- package/lib/checkout/undeploy.js +0 -40
- package/lib/checkout/util.js +0 -201
- package/lib/checkout/verify.js +0 -16
- package/lib/checkout/version.js +0 -7
- package/lib/commands/__tests__/login.test.js +0 -77
- package/lib/commands/__tests__/logout.test.js +0 -29
- package/lib/commands/__tests__/store.test.js +0 -44
- package/lib/commands/__tests__/switch.test.js +0 -45
- package/lib/commands/login.js +0 -120
- package/lib/commands/logout.js +0 -23
- package/lib/commands/store.js +0 -14
- package/lib/commands/switch.js +0 -52
- package/lib/commands/theme/__tests__/delete.test.js +0 -49
- package/lib/commands/theme/__tests__/init.test.js +0 -21
- package/lib/commands/theme/__tests__/list.test.js +0 -80
- package/lib/commands/theme/__tests__/package.test.js +0 -17
- package/lib/commands/theme/__tests__/publish.test.js +0 -61
- package/lib/commands/theme/__tests__/pull.test.js +0 -69
- package/lib/commands/theme/__tests__/push.test.js +0 -63
- package/lib/commands/theme/__tests__/serve.test.js +0 -107
- package/lib/commands/theme/delete.js +0 -64
- package/lib/commands/theme/init.js +0 -51
- package/lib/commands/theme/list.js +0 -28
- package/lib/commands/theme/package.js +0 -37
- package/lib/commands/theme/publish.js +0 -56
- package/lib/commands/theme/pull.js +0 -62
- package/lib/commands/theme/push.js +0 -106
- package/lib/commands/theme/serve.js +0 -153
- package/lib/commands/theme/share.js +0 -20
- package/lib/commands/version.js +0 -6
- package/lib/common/constants.js +0 -24
- package/lib/common/db/partner.js +0 -91
- package/lib/common/inquirers/choose-app.js +0 -79
- package/lib/common/inquirers/choose-partner.js +0 -74
- package/lib/common/log.js +0 -15
- package/lib/common/login.js +0 -125
- package/lib/common/logout.js +0 -16
- package/lib/db/__mocks__/index.js +0 -9
- package/lib/db/__tests__/analytics.test.js +0 -19
- package/lib/db/__tests__/user.test.js +0 -20
- package/lib/db/analytics.js +0 -48
- package/lib/db/index.js +0 -9
- package/lib/db/user.js +0 -71
- package/lib/function/bin/index.js +0 -20
- package/lib/function/bin/javy/javy-arm-linux-v5.0.1 +0 -0
- package/lib/function/bin/javy/javy-arm-macos-v5.0.1 +0 -0
- package/lib/function/bin/javy/javy-x86_64-linux-v5.0.1 +0 -0
- package/lib/function/bin/javy/javy-x86_64-macos-v5.0.1 +0 -0
- package/lib/function/bin/javy/javy-x86_64-windows-v5.0.1 +0 -0
- package/lib/function/commands/compile.js +0 -43
- package/lib/function/commands/create.js +0 -77
- package/lib/function/commands/list.js +0 -18
- package/lib/function/commands/release.js +0 -69
- package/lib/function/index.js +0 -24
- package/lib/function/template/js/README.md +0 -37
- package/lib/function/template/js/_gitignore +0 -4
- package/lib/function/template/js/extension.config.json +0 -5
- package/lib/function/template/js/package.json +0 -17
- package/lib/function/template/js/src/index.js +0 -64
- package/lib/function/utils.js +0 -29
- package/lib/log.js +0 -13
- package/lib/openAPI/__mocks__/index.js +0 -20
- package/lib/openAPI/api.js +0 -76
- package/lib/openAPI/index.js +0 -56
- package/lib/oss.js +0 -102
- package/lib/partner-api/axios.js +0 -67
- package/lib/partner-api/index.js +0 -79
- package/lib/report.js +0 -37
- package/lib/theme-extension/api/index.js +0 -96
- package/lib/theme-extension/commands/build.js +0 -114
- package/lib/theme-extension/commands/connect.js +0 -73
- package/lib/theme-extension/commands/create.js +0 -105
- package/lib/theme-extension/commands/deploy.js +0 -56
- package/lib/theme-extension/commands/list.js +0 -35
- package/lib/theme-extension/commands/release.js +0 -59
- package/lib/theme-extension/commands/serve.js +0 -179
- package/lib/theme-extension/commands/versions.js +0 -55
- package/lib/theme-extension/index.js +0 -29
- package/lib/theme-extension/template/basic-app/README.md +0 -125
- package/lib/theme-extension/template/basic-app/extension.config.json +0 -4
- package/lib/theme-extension/template/basic-app/package.json +0 -18
- package/lib/theme-extension/template/basic-app/theme-app/assets/index.css +0 -4
- package/lib/theme-extension/template/basic-app/theme-app/assets-manifest.json +0 -1
- package/lib/theme-extension/template/basic-app/theme-app/blocks/index.liquid +0 -16
- package/lib/theme-extension/template/basic-app/theme-app/locales/ar-SA.json +0 -1
- package/lib/theme-extension/template/basic-app/theme-app/locales/de-DE.json +0 -1
- package/lib/theme-extension/template/basic-app/theme-app/locales/en-US.json +0 -6
- package/lib/theme-extension/template/basic-app/theme-app/locales/es-ES.json +0 -1
- package/lib/theme-extension/template/basic-app/theme-app/locales/fr-FR.json +0 -1
- package/lib/theme-extension/template/basic-app/theme-app/locales/id-ID.json +0 -1
- package/lib/theme-extension/template/basic-app/theme-app/locales/it-IT.json +0 -1
- package/lib/theme-extension/template/basic-app/theme-app/locales/ja-JP.json +0 -1
- package/lib/theme-extension/template/basic-app/theme-app/locales/ko-KR.json +0 -1
- package/lib/theme-extension/template/basic-app/theme-app/locales/nl-NL.json +0 -1
- package/lib/theme-extension/template/basic-app/theme-app/locales/pl-PL.json +0 -1
- package/lib/theme-extension/template/basic-app/theme-app/locales/pt-PT.json +0 -1
- package/lib/theme-extension/template/basic-app/theme-app/locales/ru-RU.json +0 -1
- package/lib/theme-extension/template/basic-app/theme-app/locales/th-TH.json +0 -1
- package/lib/theme-extension/template/basic-app/theme-app/locales/zh-CN.json +0 -6
- package/lib/theme-extension/template/basic-app/theme-app/locales/zh-TW.json +0 -1
- package/lib/theme-extension/template/basic-app/theme-app/snippets/index.liquid +0 -8
- package/lib/theme-extension/template/embed-app/README.md +0 -125
- package/lib/theme-extension/template/embed-app/extension.config.json +0 -4
- package/lib/theme-extension/template/embed-app/package.json +0 -18
- package/lib/theme-extension/template/embed-app/theme-app/assets-manifest.json +0 -1
- package/lib/theme-extension/template/embed-app/theme-app/blocks/index.liquid +0 -18
- package/lib/theme-extension/template/embed-app/theme-app/locales/ar-SA.json +0 -1
- package/lib/theme-extension/template/embed-app/theme-app/locales/de-DE.json +0 -1
- package/lib/theme-extension/template/embed-app/theme-app/locales/en-US.json +0 -6
- package/lib/theme-extension/template/embed-app/theme-app/locales/es-ES.json +0 -1
- package/lib/theme-extension/template/embed-app/theme-app/locales/fr-FR.json +0 -1
- package/lib/theme-extension/template/embed-app/theme-app/locales/id-ID.json +0 -1
- package/lib/theme-extension/template/embed-app/theme-app/locales/it-IT.json +0 -1
- package/lib/theme-extension/template/embed-app/theme-app/locales/ja-JP.json +0 -1
- package/lib/theme-extension/template/embed-app/theme-app/locales/ko-KR.json +0 -1
- package/lib/theme-extension/template/embed-app/theme-app/locales/nl-NL.json +0 -1
- package/lib/theme-extension/template/embed-app/theme-app/locales/pl-PL.json +0 -1
- package/lib/theme-extension/template/embed-app/theme-app/locales/pt-PT.json +0 -1
- package/lib/theme-extension/template/embed-app/theme-app/locales/ru-RU.json +0 -1
- package/lib/theme-extension/template/embed-app/theme-app/locales/th-TH.json +0 -1
- package/lib/theme-extension/template/embed-app/theme-app/locales/zh-CN.json +0 -6
- package/lib/theme-extension/template/embed-app/theme-app/locales/zh-TW.json +0 -1
- package/lib/theme-extension/template/embed-app/theme-app/snippets/index.liquid +0 -8
- package/lib/theme-extension/template/embed-app/theme-app/snippets/index_css.liquid +0 -6
- package/lib/theme-extension/utils/config.js +0 -32
- package/lib/theme-extension/utils/index.js +0 -213
- package/lib/tracing.js +0 -50
- package/lib/utils/config.js +0 -12
- package/lib/utils/console.js +0 -33
- package/lib/utils/env.js +0 -17
- package/lib/utils/file.js +0 -48
- package/lib/utils/platform.js +0 -37
- package/lib/utils/utils.js +0 -165
- /package/{lib/checkout → scripts/jsbuild}/dev/client.js +0 -0
- /package/{lib/app/services/extension-build/plugins → scripts/jsbuild/plugin}/vite-plugin-transform-extension-html.js +0 -0
package/README.md
CHANGED
|
@@ -1,444 +1,318 @@
|
|
|
1
|
-
|
|
2
|
-
<h3 align="center">Shoplazza CLI</h3>
|
|
3
|
-
<p align="center">Shoplazza CLI is a command-line interface tool that helps you build Shoplazza themes. It quickly generates Shoplazza themes. You can also use it to automate many common development tasks.</p>
|
|
4
|
-
<p align="center">
|
|
5
|
-
<img src="https://img.shields.io/npm/v/shoplazza-cli">
|
|
6
|
-
</p>
|
|
7
|
-
</p>
|
|
1
|
+
# shoplazza-cli
|
|
8
2
|
|
|
9
|
-
|
|
3
|
+
[](https://opensource.org/licenses/MIT)
|
|
4
|
+
[](https://go.dev/)
|
|
5
|
+
[](https://www.npmjs.com/package/shoplazza-cli)
|
|
10
6
|
|
|
11
|
-
|
|
7
|
+
[中文版](./README.zh.md) | [English](./README.md)
|
|
12
8
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
Shoplazza CLI accelerates your theme development process with the following features:
|
|
16
|
-
|
|
17
|
-
- Safely preview, test, and share changes to themes using unpublish themes
|
|
18
|
-
- Hot reload CSS and section changes, or automatically refresh a page on file change, when previewing a theme.
|
|
19
|
-
- Initialize a new theme using Nova 2023 as a starting point.
|
|
20
|
-
- Use workflow tools like Git to work with a team of theme developers.
|
|
21
|
-
- Upload themes to your store.
|
|
22
|
-
- Watch for local changes and upload them automatically to Shoplazza.
|
|
23
|
-
- Work on Linux, macOS, and Windows.
|
|
24
|
-
- Support customized Checkout page.
|
|
25
|
-
|
|
26
|
-
## Installation [shoplazza-cli](https://www.npmjs.com/package/shoplazza-themekit)
|
|
27
|
-
|
|
28
|
-
```terminal
|
|
29
|
-
$ npm install shoplazza-cli -g
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## Before you start
|
|
9
|
+
The official [Shoplazza Open Platform](https://www.shoplazza.dev/) CLI tool — built for humans and AI Agents. Develop apps and themes, manage products, discounts, orders and customers, all from the terminal with structured output designed for AI Agent integration.
|
|
33
10
|
|
|
34
|
-
|
|
11
|
+
[Install](#installation--quick-start) · [Auth](#authentication) · [Development](#development-workflows) · [Commands](#three-layer-command-system) · [Advanced](#advanced-usage) · [Contributing](#contributing)
|
|
35
12
|
|
|
36
|
-
|
|
37
|
-
- Install [Git](https://git-scm.com/downloads).
|
|
38
|
-
- Make sure that you have a account with the Manage themes permission for the store that you want to work on, or you're the owner of the store.
|
|
39
|
-
- Note the URL of the store that you want to work on.
|
|
40
|
-
- Make sure that you're connected to the internet. Most Shoplazza CLI commands need an internet connection to run.
|
|
13
|
+
## Why shoplazza-cli?
|
|
41
14
|
|
|
15
|
+
- **Agent-Native Design** — Structured JSON output out of the box; AI Agents can operate Shoplazza stores with zero extra setup
|
|
16
|
+
- **E-Commerce Focused** — Products, Discounts, Orders, Customers with full CRUD and 20+ shortcut commands for high-frequency operations
|
|
17
|
+
- **Full Developer Workflow** — App creation, extension scaffolding (checkout / theme / function), local dev server with HMR, one-command deploy; plus theme init, live reload, and packaging
|
|
18
|
+
- **Secure & Controllable** — Input injection protection, OS-native keychain credential storage, token auto-refresh
|
|
19
|
+
- **Three-Layer Architecture** — Shortcuts (human & AI friendly) → API Commands (OpenAPI-synced) → Raw API (full coverage)
|
|
20
|
+
- **Up and Running in 3 Minutes** — Interactive login, from install to first API call in 3 steps
|
|
42
21
|
|
|
43
|
-
##
|
|
22
|
+
## Features
|
|
44
23
|
|
|
45
|
-
|
|
24
|
+
| Domain | Capabilities |
|
|
25
|
+
|--------|-------------|
|
|
26
|
+
| 🛍️ Products | CRUD + shortcuts: `+search`, `+publish`, `+unpublish`, `+create`, `+set-price`, `+stock` |
|
|
27
|
+
| 🏷️ Discounts | CRUD + 8 shortcut creators for automatic & code discounts |
|
|
28
|
+
| 📦 Orders | CRUD + shortcuts: `+search`, `+count`, `+ship`, `+refund`, `+update-tracking` |
|
|
29
|
+
| 👤 Customers | CRUD + shortcuts: `+search`, `+create` |
|
|
30
|
+
| 🎨 Themes | `init`, `serve` (live reload), `pull`, `push`, `package`, `share` |
|
|
31
|
+
| 🧩 App | Full lifecycle: init → extension create → dev → deploy; extensions: checkout, theme, function |
|
|
46
32
|
|
|
47
|
-
|
|
33
|
+
## Installation & Quick Start
|
|
48
34
|
|
|
49
|
-
|
|
50
|
-
- 支持预览,在推送到店铺之后,通过预览链接进入可以进行预览。
|
|
51
|
-
- 支持部署extension,部署后所有用户都能看到变更。
|
|
52
|
-
- 支持下线extension,下线之后extension将不在店铺中生效。
|
|
35
|
+
### Install
|
|
53
36
|
|
|
54
|
-
|
|
37
|
+
| Method | Command | Notes |
|
|
38
|
+
|--------|---------|-------|
|
|
39
|
+
| **Homebrew** (macOS / Linux) | `brew install Shoplazza/tap/shoplazza-cli` | Recommended. Auto-updates via `brew upgrade`. |
|
|
40
|
+
| **Shell script** (macOS / Linux) | `curl -fsSL https://raw.githubusercontent.com/Shoplazza/shoplazza-cli/main/install.sh \| bash` | Auto-detects OS and architecture. |
|
|
41
|
+
| **npm** | `npm install -g @shoplazza/cli` | Requires Node.js `>=14.18.0`. |
|
|
42
|
+
| **Download binary** | See [GitHub Releases](https://github.com/Shoplazza/shoplazza-cli/releases) | Manual download for any platform. |
|
|
43
|
+
| **Build from source** | `git clone ... && cd shoplazza-cli && make install` | Requires Go `v1.24`+. Installs to `~/.local/bin`. |
|
|
55
44
|
|
|
56
|
-
|
|
45
|
+
<details>
|
|
46
|
+
<summary>Platform-specific binary download</summary>
|
|
57
47
|
|
|
58
|
-
创建过程会要求你输入店铺地址和token,token可以在后台中应用->管理私有应用->创建应用 获得。创建过程还要求你输入一个extension名字,一个项目下支持存在多个extension,这是为了方便管理,它们互不影响。
|
|
59
48
|
```bash
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
#### Step2: 本地开发
|
|
66
|
-
extension支持本地开发,支持在线上店铺Checkout页面插入本地的extension代码,这仅在你的浏览器生效。
|
|
67
|
-
首先,先启动本地开发服务器:
|
|
68
|
-
```
|
|
69
|
-
shoplazza checkout dev
|
|
70
|
-
```
|
|
71
|
-
然后在checkout页面打开控制台切换为开发模式:
|
|
72
|
-
```
|
|
73
|
-
CheckoutAPI.extension.DEV_switchDevMode()
|
|
74
|
-
```
|
|
75
|
-
在checkout页面即可看到extension变更。
|
|
76
|
-
|
|
77
|
-
#### Step3: 预览extension
|
|
78
|
-
在完成本地开发之后,我们可以将extension推送到店铺进行预览。
|
|
79
|
-
```
|
|
80
|
-
shoplazza checkout push
|
|
81
|
-
```
|
|
82
|
-
访问预览url即可看到效果。
|
|
83
|
-
#### Step4: 部署Extension
|
|
84
|
-
在预览测试完成之后,可以在店铺发布extension,发布之后所有用户都可以看到。
|
|
85
|
-
```
|
|
86
|
-
shoplazza checkout deploy
|
|
87
|
-
```
|
|
88
|
-
或者对将已发布的extension下线:
|
|
89
|
-
```
|
|
90
|
-
shoplazza checkout undeploy
|
|
91
|
-
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
### Other command
|
|
95
|
-
|
|
96
|
-
#### 查看已部署的extension
|
|
97
|
-
```
|
|
98
|
-
shoplazza checkout list
|
|
99
|
-
|
|
100
|
-
// 查看所有
|
|
101
|
-
shoplazza checkout list -a
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
#### 预览extension
|
|
105
|
-
```
|
|
106
|
-
shoplazza checkout preview
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
## Theme Develop
|
|
110
|
-
|
|
111
|
-
### Authenticate
|
|
112
|
-
|
|
113
|
-
```terminal
|
|
114
|
-
$ shoplazza login --store developer.myshoplaza.com
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
> In your browser window, log into the account that's attached to the store that you want to use for development.
|
|
118
|
-
|
|
119
|
-
### Create a new theme
|
|
120
|
-
|
|
121
|
-
```terminal
|
|
122
|
-
$ shoplazza theme init
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
> Use `shoplazza theme init` to create a new theme on your local machine. This command clones a Git repository to your local machine to use as the starting point for building a theme.
|
|
126
|
-
|
|
127
|
-
### Connect to existing theme
|
|
128
|
-
|
|
129
|
-
```terminal
|
|
130
|
-
$ shoplazza theme pull
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
> Pull the theme onto your local machine using `shoplazza theme pull`. You're prompted to select a theme from the list of themes on the store.
|
|
134
|
-
|
|
135
|
-
### Preview, test, and share your theme
|
|
136
|
-
|
|
137
|
-
```terminal
|
|
138
|
-
$ shoplazza theme serve
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
> After you create or navigate to your theme, you can run `shoplazza theme serve` to interact with the theme in a browser.
|
|
142
|
-
|
|
143
|
-
### Push your theme to your store
|
|
144
|
-
|
|
145
|
-
```terminal
|
|
146
|
-
$ shoplazza theme push
|
|
147
|
-
```
|
|
49
|
+
# macOS (Apple Silicon)
|
|
50
|
+
curl -fsSL https://github.com/Shoplazza/shoplazza-cli/releases/latest/download/shoplazza-cli-darwin-arm64.tar.gz | tar -xz
|
|
51
|
+
sudo install -m755 shoplazza /usr/local/bin/
|
|
148
52
|
|
|
149
|
-
|
|
53
|
+
# macOS (Intel)
|
|
54
|
+
curl -fsSL https://github.com/Shoplazza/shoplazza-cli/releases/latest/download/shoplazza-cli-darwin-amd64.tar.gz | tar -xz
|
|
55
|
+
sudo install -m755 shoplazza /usr/local/bin/
|
|
150
56
|
|
|
151
|
-
|
|
57
|
+
# Linux (x86_64)
|
|
58
|
+
curl -fsSL https://github.com/Shoplazza/shoplazza-cli/releases/latest/download/shoplazza-cli-linux-amd64.tar.gz | tar -xz
|
|
59
|
+
sudo install -m755 shoplazza /usr/local/bin/
|
|
152
60
|
|
|
153
|
-
|
|
154
|
-
|
|
61
|
+
# Linux (ARM64)
|
|
62
|
+
curl -fsSL https://github.com/Shoplazza/shoplazza-cli/releases/latest/download/shoplazza-cli-linux-arm64.tar.gz | tar -xz
|
|
63
|
+
sudo install -m755 shoplazza /usr/local/bin/
|
|
155
64
|
```
|
|
156
65
|
|
|
157
|
-
>
|
|
158
|
-
|
|
159
|
-
### Find your theme ID
|
|
160
|
-
|
|
161
|
-
```terminal
|
|
162
|
-
$ shoplazza theme list
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
> You might want to use a theme's ID to pull, push, publish, or delete a theme using Shoplazza CLI.
|
|
166
|
-
|
|
167
|
-
|
|
66
|
+
</details>
|
|
168
67
|
|
|
169
|
-
|
|
68
|
+
<details>
|
|
69
|
+
<summary>Build from source</summary>
|
|
170
70
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
Theme Extension is a method provided by Shoplazza for extending and customizing themes. Developers can use Theme Extensions to enhance and tailor theme pages.
|
|
174
|
-
|
|
175
|
-
### Create an Extension
|
|
71
|
+
Requires Go `v1.24`+. Installs to `~/.local/bin` (no `sudo` needed):
|
|
176
72
|
|
|
177
73
|
```bash
|
|
178
|
-
|
|
74
|
+
git clone https://github.com/Shoplazza/shoplazza-cli.git
|
|
75
|
+
cd shoplazza-cli
|
|
76
|
+
make install
|
|
179
77
|
```
|
|
180
78
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
- **Basic Extension**: Allows modifying insertion positions via the theme editor.
|
|
184
|
-
- **Embed Extension**: Insertion positions are hard-coded within the Extension.
|
|
79
|
+
> If `~/.local/bin` is not on your `PATH`, add it: `export PATH="$HOME/.local/bin:$PATH"`.
|
|
80
|
+
> For a system-wide install: `sudo make install PREFIX=/usr/local`.
|
|
185
81
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
```bash
|
|
189
|
-
cd your-project # Navigate to the project directory
|
|
190
|
-
shoplazza te serve
|
|
191
|
-
```
|
|
82
|
+
</details>
|
|
192
83
|
|
|
193
|
-
|
|
84
|
+
### Quick Start (Human Users)
|
|
194
85
|
|
|
195
|
-
|
|
196
|
-
- **Second link**: Redirects to the storefront preview page. After adding the Extension via the editor, any local code updates will take effect upon refreshing the storefront page.
|
|
197
|
-
|
|
198
|
-
### Build for Production
|
|
86
|
+
> **Note for AI assistants:** If you are an AI Agent helping the user install, jump directly to [Quick Start (AI Agent)](#quick-start-ai-agent).
|
|
199
87
|
|
|
200
88
|
```bash
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
Generates a deployable production build from the current project code. Multiple builds can be created, and one can be selected during deployment.
|
|
89
|
+
# Log in (replace with your store domain)
|
|
90
|
+
shoplazza auth login --store-domain my-store.shoplazza.com --domain products,orders
|
|
205
91
|
|
|
206
|
-
|
|
92
|
+
# Verify
|
|
93
|
+
shoplazza auth status
|
|
207
94
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
```bash
|
|
211
|
-
shoplazza te deploy
|
|
95
|
+
# Start using
|
|
96
|
+
shoplazza products list --format table
|
|
212
97
|
```
|
|
213
98
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
### Connect Extension to an APP
|
|
99
|
+
### Quick Start (AI Agent)
|
|
217
100
|
|
|
218
|
-
|
|
101
|
+
> Run the login command, extract the authorization URL from output, and send it to the user. The command polls until the user completes OAuth in their browser.
|
|
219
102
|
|
|
220
103
|
```bash
|
|
221
|
-
|
|
104
|
+
npm install -g shoplazza-cli
|
|
105
|
+
shoplazza auth login --store-domain <store-domain> --domain products,orders
|
|
106
|
+
shoplazza auth status
|
|
222
107
|
```
|
|
223
108
|
|
|
224
|
-
|
|
109
|
+
## Authentication
|
|
225
110
|
|
|
226
|
-
|
|
227
|
-
|
|
111
|
+
| Command | Description |
|
|
112
|
+
|---------|-------------|
|
|
113
|
+
| `auth login` | Account-only OAuth — opens browser, obtains UAT |
|
|
114
|
+
| `auth login --store-domain <domain>` | OAuth + store token (requires `--scope` or `--domain`) |
|
|
115
|
+
| `auth store use --store-domain <domain>` | Switch current store |
|
|
116
|
+
| `auth logout` | Sign out and remove credentials |
|
|
117
|
+
| `auth status` | Show current auth state |
|
|
118
|
+
| `auth scopes` | List available and granted scopes |
|
|
228
119
|
|
|
229
120
|
```bash
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
The release will be based on the current production version of your store. Once published, the changes will take effect for **all stores that have installed your app**.
|
|
234
|
-
|
|
235
|
-
### CLI Command Guide
|
|
121
|
+
# Interactive login with store
|
|
122
|
+
shoplazza auth login --store-domain my-store.myshoplazza.com --domain products
|
|
236
123
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
| `shoplazza te create` | Create a new Theme Extension project |
|
|
240
|
-
| `shoplazza te serve` | Start a local development server |
|
|
241
|
-
| `shoplazza te build` | Build a production version of the Extension |
|
|
242
|
-
| `shoplazza te versions` | View production version list of an Extension |
|
|
243
|
-
| `shoplazza te list` | List private Extensions in the store |
|
|
244
|
-
| `shoplazza te deploy` | Deploy a production build to the current store |
|
|
245
|
-
| `shoplazza te connect <extension-id>` | Bind an Extension to an APP |
|
|
246
|
-
| `shoplazza te release` | Publish an Extension to its bound APP |
|
|
124
|
+
# UAT fast-path (non-interactive, for CI)
|
|
125
|
+
shoplazza auth login --uat <user-access-token>
|
|
247
126
|
|
|
248
|
-
|
|
127
|
+
# Switch store
|
|
128
|
+
shoplazza auth store use --store-domain another-store.myshoplazza.com
|
|
249
129
|
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
```terminal
|
|
253
|
-
$ shoplazza help
|
|
130
|
+
# Check status
|
|
131
|
+
shoplazza auth status
|
|
254
132
|
```
|
|
255
133
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
### login
|
|
134
|
+
Access tokens are stored in the OS-native keychain (macOS Keychain, Windows Credential Manager, Linux Secret Service).
|
|
259
135
|
|
|
260
|
-
|
|
261
|
-
$ shoplazza login --store developer.myshoplaza.com
|
|
136
|
+
## Development Workflows
|
|
262
137
|
|
|
263
|
-
|
|
264
|
-
```
|
|
138
|
+
### App Development
|
|
265
139
|
|
|
266
|
-
|
|
267
|
-
> --partner: Authenticates and logs you into the partner with Shoplazza CLI.
|
|
140
|
+
The CLI covers the full app lifecycle: create, configure, develop, and deploy.
|
|
268
141
|
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
$ shoplazza logout
|
|
273
|
-
|
|
274
|
-
$ shoplazza logout --partner
|
|
275
|
-
```
|
|
142
|
+
```bash
|
|
143
|
+
# 1. Create a new app project (creates a sub-directory)
|
|
144
|
+
shoplazza app init --name "My App" --partner <partner-id>
|
|
276
145
|
|
|
277
|
-
|
|
278
|
-
|
|
146
|
+
# 2. Add extensions (theme / checkout / function)
|
|
147
|
+
cd my-app
|
|
148
|
+
shoplazza app extension create --type checkout --name my-checkout
|
|
149
|
+
shoplazza app extension create --type theme --name my-theme --theme-type basic
|
|
150
|
+
shoplazza app extension create --type function --name my-fn
|
|
279
151
|
|
|
152
|
+
# 3. Local development (dev server + HMR) — store comes from the active app config
|
|
153
|
+
shoplazza app dev
|
|
280
154
|
|
|
281
|
-
|
|
155
|
+
# 4. Deploy all extensions
|
|
156
|
+
shoplazza app deploy
|
|
282
157
|
|
|
283
|
-
|
|
284
|
-
|
|
158
|
+
# 5. View deployed versions
|
|
159
|
+
shoplazza app versions
|
|
285
160
|
```
|
|
286
161
|
|
|
287
|
-
>
|
|
162
|
+
<details>
|
|
163
|
+
<summary>Additional app commands</summary>
|
|
288
164
|
|
|
289
|
-
|
|
165
|
+
```bash
|
|
166
|
+
shoplazza app list # List apps in your account
|
|
167
|
+
shoplazza app info # Print app and extension info
|
|
168
|
+
shoplazza app config use --config alt.toml # Switch active app config
|
|
169
|
+
shoplazza app config link --client-id <id> # Link an existing app
|
|
290
170
|
|
|
291
|
-
|
|
292
|
-
|
|
171
|
+
# Function extensions (compile/release individually)
|
|
172
|
+
shoplazza app function compile --extension my-fn
|
|
173
|
+
shoplazza app function release --extension my-fn
|
|
174
|
+
shoplazza app function list
|
|
293
175
|
```
|
|
294
176
|
|
|
295
|
-
>
|
|
177
|
+
</details>
|
|
296
178
|
|
|
297
|
-
###
|
|
179
|
+
### Theme Development
|
|
298
180
|
|
|
299
|
-
|
|
300
|
-
$ shoplazza version
|
|
301
|
-
```
|
|
181
|
+
The CLI provides a complete theme development workflow with live reload.
|
|
302
182
|
|
|
303
|
-
|
|
183
|
+
```bash
|
|
184
|
+
# 1. Scaffold a new theme from the Nova-2023 template
|
|
185
|
+
shoplazza themes init --name my-theme
|
|
304
186
|
|
|
305
|
-
|
|
187
|
+
# 2. Start the dev server (auto-creates a development theme, live reload)
|
|
188
|
+
cd my-theme
|
|
189
|
+
shoplazza themes serve
|
|
306
190
|
|
|
307
|
-
|
|
191
|
+
# 3. Pull / push / package
|
|
192
|
+
shoplazza themes pull --theme-id <theme-id>
|
|
193
|
+
shoplazza themes push --theme-id <theme-id>
|
|
194
|
+
shoplazza themes package
|
|
308
195
|
|
|
309
|
-
|
|
310
|
-
|
|
196
|
+
# 4. Upload as a preview
|
|
197
|
+
shoplazza themes share
|
|
311
198
|
```
|
|
312
199
|
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
### serve
|
|
200
|
+
## Three-Layer Command System
|
|
316
201
|
|
|
317
|
-
|
|
318
|
-
$ shoplazza theme serve [--theme]
|
|
319
|
-
```
|
|
202
|
+
The CLI provides three levels of granularity, covering everything from quick operations to fully custom API calls.
|
|
320
203
|
|
|
321
|
-
|
|
204
|
+
### 1. Shortcuts
|
|
322
205
|
|
|
323
|
-
|
|
206
|
+
Prefixed with `+`, designed to be friendly for both humans and AI, with smart defaults and structured output.
|
|
324
207
|
|
|
325
|
-
```
|
|
326
|
-
|
|
327
|
-
|
|
208
|
+
```bash
|
|
209
|
+
# Products
|
|
210
|
+
shoplazza products +search --keyword "shirt"
|
|
211
|
+
shoplazza products +publish <product-id>
|
|
328
212
|
|
|
329
|
-
|
|
213
|
+
# Discounts — automatic
|
|
214
|
+
shoplazza discounts +rebate --title "Summer Sale" --percentage 15 --min-amount 100
|
|
215
|
+
shoplazza discounts +flashsale --title "Flash Sale" --percentage 20 --product-ids "123,456"
|
|
330
216
|
|
|
331
|
-
|
|
217
|
+
# Discounts — code-based
|
|
218
|
+
shoplazza discounts +percent-code --code "SAVE20" --percentage 20
|
|
219
|
+
shoplazza discounts +bxgy-code --code "BUY2GET1" --buy-quantity 2 --get-quantity 1
|
|
332
220
|
|
|
333
|
-
|
|
334
|
-
|
|
221
|
+
# Orders
|
|
222
|
+
shoplazza orders +ship <order-id>
|
|
335
223
|
```
|
|
336
224
|
|
|
337
|
-
|
|
225
|
+
Run `shoplazza <domain> --help` to see all shortcuts for a domain.
|
|
338
226
|
|
|
339
|
-
###
|
|
227
|
+
### 2. API Commands
|
|
340
228
|
|
|
341
|
-
|
|
342
|
-
$ shoplazza theme push [--theme]
|
|
343
|
-
```
|
|
229
|
+
Auto-generated from OpenAPI metadata — commands mapped 1:1 to platform endpoints.
|
|
344
230
|
|
|
345
|
-
|
|
231
|
+
```bash
|
|
232
|
+
shoplazza products list
|
|
233
|
+
shoplazza products get <product-id>
|
|
234
|
+
shoplazza products create --data @product.json
|
|
346
235
|
|
|
347
|
-
|
|
236
|
+
shoplazza discounts list
|
|
237
|
+
shoplazza discounts create-discount --data @discount.json
|
|
348
238
|
|
|
349
|
-
|
|
350
|
-
|
|
239
|
+
# All domains: products, discounts, orders, customers, billing, shop, themes, webhook
|
|
240
|
+
shoplazza orders list
|
|
241
|
+
shoplazza customers list
|
|
351
242
|
```
|
|
352
243
|
|
|
353
|
-
|
|
244
|
+
### 3. Raw API Calls
|
|
354
245
|
|
|
355
|
-
|
|
246
|
+
Call any Shoplazza Open Platform endpoint directly for full coverage.
|
|
356
247
|
|
|
357
|
-
```
|
|
358
|
-
|
|
248
|
+
```bash
|
|
249
|
+
shoplazza api rest GET /openapi/2022-01/products.json
|
|
250
|
+
shoplazza api rest POST /openapi/2022-01/products.json \
|
|
251
|
+
--data '{"product": {"title": "New Product", "status": "active"}}'
|
|
359
252
|
```
|
|
360
253
|
|
|
361
|
-
|
|
254
|
+
## Advanced Usage
|
|
362
255
|
|
|
363
|
-
###
|
|
256
|
+
### Common Flags
|
|
364
257
|
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
258
|
+
| Flag | Scope | Description |
|
|
259
|
+
|------|-------|-------------|
|
|
260
|
+
| `--format json\|pretty\|table` | All commands | Output format (default: `json`) |
|
|
261
|
+
| `--fields "f1,f2"` | Shortcut commands | Response field projection |
|
|
262
|
+
| `--dry-run` | API & shortcut commands | Preview request without executing |
|
|
263
|
+
| `--jq "expr"` / `-q` | API commands | Filter JSON output with jq expression |
|
|
368
264
|
|
|
369
|
-
|
|
265
|
+
### Schema Introspection
|
|
370
266
|
|
|
371
|
-
|
|
267
|
+
Inspect any service's methods, parameters, required scopes, and response shape:
|
|
372
268
|
|
|
373
|
-
```
|
|
374
|
-
|
|
269
|
+
```bash
|
|
270
|
+
shoplazza schema # List all services
|
|
271
|
+
shoplazza schema products # Inspect a service
|
|
272
|
+
shoplazza schema products.list # Inspect a method
|
|
375
273
|
```
|
|
376
274
|
|
|
377
|
-
|
|
275
|
+
### Environment Variables
|
|
378
276
|
|
|
379
|
-
|
|
277
|
+
| Variable | Description |
|
|
278
|
+
|----------|-------------|
|
|
279
|
+
| `SHOPLAZZA_UAT` | User Access Token for non-interactive login (equivalent to `--uat`) |
|
|
280
|
+
| `SHOPLAZZA_CLI_AUTH_BASE_URL` | Override auth base URL (default: `https://partners.shoplazza.com`) |
|
|
380
281
|
|
|
381
|
-
|
|
282
|
+
## Security & Risk Warnings
|
|
382
283
|
|
|
383
|
-
|
|
384
|
-
$ shoplazza app init
|
|
385
|
-
```
|
|
284
|
+
> Read Before Use
|
|
386
285
|
|
|
387
|
-
|
|
286
|
+
- **AI Agent Automation Risk** — When AI Agents operate the CLI on your behalf, all API calls carry real consequences (creating products, modifying orders, deleting discounts). Always review the Agent's proposed commands before execution.
|
|
287
|
+
- **Credential Safety** — Tokens are stored in the OS-native keychain. Never share your UAT or store tokens. Rotate credentials immediately if you suspect exposure.
|
|
288
|
+
- **Scope Control** — Use `--scope` or `--domain` to limit the permissions granted during login. Grant only the scopes your workflow requires.
|
|
388
289
|
|
|
389
|
-
|
|
290
|
+
## Contributing
|
|
390
291
|
|
|
391
|
-
|
|
392
|
-
$ shoplazza app generate extension
|
|
393
|
-
```
|
|
292
|
+
Contributions are welcome! If you find a bug or have a feature suggestion, please open an Issue or Pull Request on [GitHub](https://github.com/Shoplazza/shoplazza-cli).
|
|
394
293
|
|
|
395
|
-
|
|
294
|
+
For major changes, please open an issue first to discuss the approach.
|
|
396
295
|
|
|
397
|
-
###
|
|
296
|
+
### Local Setup
|
|
398
297
|
|
|
399
|
-
```
|
|
400
|
-
|
|
401
|
-
|
|
298
|
+
```bash
|
|
299
|
+
# Build
|
|
300
|
+
make build
|
|
402
301
|
|
|
403
|
-
|
|
302
|
+
# Run tests
|
|
303
|
+
make test
|
|
404
304
|
|
|
405
|
-
|
|
305
|
+
# Lint (pre-PR)
|
|
306
|
+
go mod tidy
|
|
307
|
+
go run github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.1.6 run --new-from-rev=origin/main
|
|
406
308
|
|
|
407
|
-
|
|
408
|
-
|
|
309
|
+
# Install locally
|
|
310
|
+
make install
|
|
409
311
|
```
|
|
410
312
|
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
## Theme Directory
|
|
313
|
+
Commit messages follow [Conventional Commits](https://www.conventionalcommits.org/): `feat:`, `fix:`, `docs:`, `test:`, `refactor:`, `chore:`, `ci:`.
|
|
414
314
|
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
The default Shoplazza theme directory structure is as follows:
|
|
418
|
-
|
|
419
|
-
```terminal
|
|
420
|
-
└── project
|
|
421
|
-
├── assets
|
|
422
|
-
├── config
|
|
423
|
-
├── layout
|
|
424
|
-
├── locales
|
|
425
|
-
├── sections
|
|
426
|
-
├── snippets
|
|
427
|
-
└── templates
|
|
428
|
-
```
|
|
315
|
+
## License
|
|
429
316
|
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
You should expect mostly good support for the CLI below. This does not mean we won't look at issues found on other command line - feel free to report any!
|
|
433
|
-
|
|
434
|
-
- Mac OS
|
|
435
|
-
- Terminal.app
|
|
436
|
-
- iTerm
|
|
437
|
-
- Windows (Known issues):
|
|
438
|
-
- ConEmu
|
|
439
|
-
- cmd.exe
|
|
440
|
-
- Powershell
|
|
441
|
-
- Cygwin
|
|
442
|
-
- Linux (Ubuntu, openSUSE, Arch Linux, etc):
|
|
443
|
-
- gnome-terminal (Terminal GNOME)
|
|
444
|
-
- konsole
|
|
317
|
+
This project is licensed under the **MIT License**.
|
|
318
|
+
When running, it calls the Shoplazza Open Platform APIs. Usage of these APIs is subject to the [Shoplazza Developer Agreement](https://www.shoplazza.dev/).
|