@optima-chat/commerce-cli 1.17.0 → 1.17.1
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.
|
@@ -45,13 +45,17 @@ description: Storefront and product page configuration. Manage homepage sections
|
|
|
45
45
|
- 格式支持:WebP(优先)、JPG、PNG
|
|
46
46
|
- 跳转链接:配置促销页面或集合页面
|
|
47
47
|
- 懒加载:启用图片懒加载优化性能
|
|
48
|
+
- 显示模式:`--image-fit cover`(默认,裁切填充)或 `--image-fit contain`(完整显示,高度自适应)
|
|
49
|
+
- contain 模式适合纯切图首页(用 banner 堆叠实现完整页面,图片不裁切)
|
|
48
50
|
|
|
49
51
|
```bash
|
|
50
52
|
# 图片 URL 直接使用,后端自动下载处理
|
|
51
|
-
commerce homepage create \
|
|
52
|
-
--
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
commerce homepage create-banner --title "主 Banner" \
|
|
54
|
+
--images '[{"url":"https://example.com/banner.jpg","link":"/collections/summer-sale"}]'
|
|
55
|
+
|
|
56
|
+
# 创建不裁切的 banner(图片按原始比例完整显示)
|
|
57
|
+
commerce homepage create-banner --title "全屏 Banner" \
|
|
58
|
+
--images '[{"url":"https://example.com/full-page.jpg"}]' --image-fit contain
|
|
55
59
|
```
|
|
56
60
|
|
|
57
61
|
### 场景 3:创建商品集合
|
|
@@ -264,6 +268,8 @@ commerce collection create --name "Sale!!!" --slug "sale"
|
|
|
264
268
|
- "设置集合封面" / "修改集合封面图" → `commerce collection set-cover --id XX --url/--path/--media-id`
|
|
265
269
|
- "集合封面图 URL 是 https://..." → `commerce collection set-cover --id XX --url "https://..."`
|
|
266
270
|
- "上传本地图片作为集合封面" → `commerce collection set-cover --id XX --path ./cover.jpg`
|
|
271
|
+
- "Banner 图片不裁切" / "图片完整显示" → `commerce homepage create-banner ... --image-fit contain`
|
|
272
|
+
- "纯切图首页" → 所有 banner 区块使用 `--image-fit contain`
|
|
267
273
|
|
|
268
274
|
### 核心功能
|
|
269
275
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-banner.d.ts","sourceRoot":"","sources":["../../../src/commands/homepage/create-banner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"create-banner.d.ts","sourceRoot":"","sources":["../../../src/commands/homepage/create-banner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmFpC,eAAO,MAAM,mBAAmB,SAAM,CAAC"}
|
|
@@ -11,6 +11,7 @@ const cmd = new Command('create-banner')
|
|
|
11
11
|
.option('--description <text>', 'Section description (optional)')
|
|
12
12
|
.option('--lang <code>', 'Language code (default: en-US)', 'en-US')
|
|
13
13
|
.option('--images <json>', 'Banner images as JSON array (required)')
|
|
14
|
+
.option('--image-fit <mode>', 'Image fit mode: cover (crop) or contain (full image, no crop)', 'cover')
|
|
14
15
|
.action(async (options) => {
|
|
15
16
|
try {
|
|
16
17
|
await createBanner(options);
|
|
@@ -32,6 +33,10 @@ addEnhancedHelp(cmd, {
|
|
|
32
33
|
'# Create banner with full options',
|
|
33
34
|
'$ commerce homepage create-banner --title "Hero" \\',
|
|
34
35
|
' --images \'[{"url":"https://a.jpg","alt":"Banner 1","link":"/a","action_type":"link"}]\'',
|
|
36
|
+
'',
|
|
37
|
+
'# Create banner with contain mode (full image, no crop)',
|
|
38
|
+
'$ commerce homepage create-banner --title "Full Page" \\',
|
|
39
|
+
' --images \'[{"url":"https://example.com/full.jpg"}]\' --image-fit contain',
|
|
35
40
|
],
|
|
36
41
|
output: {
|
|
37
42
|
example: JSON.stringify({
|
|
@@ -59,11 +64,17 @@ addEnhancedHelp(cmd, {
|
|
|
59
64
|
'Optional fields: mobile_url, mobile_media_id',
|
|
60
65
|
'Defaults: alt="Banner N", action_type="link" (if link) or "none"',
|
|
61
66
|
'Multiple images create a carousel effect',
|
|
67
|
+
'--image-fit: cover (default, crop to fill) or contain (full image, height adapts)',
|
|
62
68
|
],
|
|
63
69
|
});
|
|
64
70
|
export const createBannerCommand = cmd;
|
|
65
71
|
async function createBanner(options) {
|
|
66
|
-
const { title, description, lang = 'en-US', images } = options;
|
|
72
|
+
const { title, description, lang = 'en-US', images, imageFit = 'cover' } = options;
|
|
73
|
+
// Validate image-fit
|
|
74
|
+
const VALID_IMAGE_FIT = ['cover', 'contain'];
|
|
75
|
+
if (!VALID_IMAGE_FIT.includes(imageFit)) {
|
|
76
|
+
throw new ValidationError(`Invalid image-fit value: ${imageFit}. Valid values: ${VALID_IMAGE_FIT.join(', ')}`, 'imageFit');
|
|
77
|
+
}
|
|
67
78
|
// Validate required params
|
|
68
79
|
if (!isInteractiveEnvironment()) {
|
|
69
80
|
if (!title || title.trim().length === 0) {
|
|
@@ -122,6 +133,7 @@ async function createBanner(options) {
|
|
|
122
133
|
},
|
|
123
134
|
settings: {
|
|
124
135
|
images: parsedImages,
|
|
136
|
+
...(imageFit !== 'cover' && { image_fit: imageFit }),
|
|
125
137
|
},
|
|
126
138
|
};
|
|
127
139
|
const result = await commerceApi.homepage.sections.create(data);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-banner.js","sourceRoot":"","sources":["../../../src/commands/homepage/create-banner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"create-banner.js","sourceRoot":"","sources":["../../../src/commands/homepage/create-banner.ts"],"names":[],"mappings":"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"}
|