ecomcoder-cli 1.3.3 → 1.3.5
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/README.md +0 -23
- package/dist/cli.js +4 -84
- package/dist/cli.js.map +1 -1
- package/dist/commands/discount/index.d.ts.map +1 -1
- package/dist/commands/discount/index.js +10 -49
- package/dist/commands/discount/index.js.map +1 -1
- package/dist/commands/docs/index.d.ts.map +1 -1
- package/dist/commands/docs/index.js +4 -18
- package/dist/commands/docs/index.js.map +1 -1
- package/dist/commands/metafield/index.d.ts.map +1 -1
- package/dist/commands/metafield/index.js +6 -24
- package/dist/commands/metafield/index.js.map +1 -1
- package/dist/commands/product/create.d.ts +8 -0
- package/dist/commands/product/create.d.ts.map +1 -0
- package/dist/commands/product/create.js +166 -0
- package/dist/commands/product/create.js.map +1 -0
- package/dist/commands/product/get-metafield.d.ts +8 -0
- package/dist/commands/product/get-metafield.d.ts.map +1 -0
- package/dist/commands/product/get-metafield.js +131 -0
- package/dist/commands/product/get-metafield.js.map +1 -0
- package/dist/commands/product/index.d.ts.map +1 -1
- package/dist/commands/product/index.js +42 -42
- package/dist/commands/product/index.js.map +1 -1
- package/dist/commands/product/queries.d.ts +19 -0
- package/dist/commands/product/queries.d.ts.map +1 -1
- package/dist/commands/product/queries.js +122 -0
- package/dist/commands/product/queries.js.map +1 -1
- package/dist/commands/product/service.d.ts +35 -1
- package/dist/commands/product/service.d.ts.map +1 -1
- package/dist/commands/product/service.js +241 -1
- package/dist/commands/product/service.js.map +1 -1
- package/dist/commands/product/set-metafield.d.ts +8 -0
- package/dist/commands/product/set-metafield.d.ts.map +1 -0
- package/dist/commands/product/set-metafield.js +174 -0
- package/dist/commands/product/set-metafield.js.map +1 -0
- package/dist/commands/product/types.d.ts +88 -0
- package/dist/commands/product/types.d.ts.map +1 -1
- package/dist/commands/product/update-status.d.ts +8 -0
- package/dist/commands/product/update-status.d.ts.map +1 -0
- package/dist/commands/product/update-status.js +105 -0
- package/dist/commands/product/update-status.js.map +1 -0
- package/dist/commands/products/index.d.ts.map +1 -1
- package/dist/commands/products/index.js +5 -31
- package/dist/commands/products/index.js.map +1 -1
- package/dist/commands/shop/get-metafield.d.ts +8 -0
- package/dist/commands/shop/get-metafield.d.ts.map +1 -0
- package/dist/commands/shop/get-metafield.js +117 -0
- package/dist/commands/shop/get-metafield.js.map +1 -0
- package/dist/commands/shop/index.d.ts +10 -0
- package/dist/commands/shop/index.d.ts.map +1 -0
- package/dist/commands/shop/index.js +38 -0
- package/dist/commands/shop/index.js.map +1 -0
- package/dist/commands/shop/queries.d.ts +24 -0
- package/dist/commands/shop/queries.d.ts.map +1 -0
- package/dist/commands/shop/queries.js +83 -0
- package/dist/commands/shop/queries.js.map +1 -0
- package/dist/commands/shop/service.d.ts +30 -0
- package/dist/commands/shop/service.d.ts.map +1 -0
- package/dist/commands/shop/service.js +131 -0
- package/dist/commands/shop/service.js.map +1 -0
- package/dist/commands/shop/set-metafield.d.ts +8 -0
- package/dist/commands/shop/set-metafield.d.ts.map +1 -0
- package/dist/commands/shop/set-metafield.js +174 -0
- package/dist/commands/shop/set-metafield.js.map +1 -0
- package/dist/commands/shop/types.d.ts +84 -0
- package/dist/commands/shop/types.d.ts.map +1 -0
- package/dist/commands/shop/types.js +6 -0
- package/dist/commands/shop/types.js.map +1 -0
- package/dist/lib/command-registry.d.ts +2 -0
- package/dist/lib/command-registry.d.ts.map +1 -1
- package/dist/lib/command-registry.js.map +1 -1
- package/dist/lib/help-generator.d.ts +28 -0
- package/dist/lib/help-generator.d.ts.map +1 -0
- package/dist/lib/help-generator.js +131 -0
- package/dist/lib/help-generator.js.map +1 -0
- package/dist/lib/help-utils.d.ts +17 -0
- package/dist/lib/help-utils.d.ts.map +1 -0
- package/dist/lib/help-utils.js +24 -0
- package/dist/lib/help-utils.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -53,22 +53,6 @@ ecomcoder products list --limit=50
|
|
|
53
53
|
**Options:**
|
|
54
54
|
- `--limit` - Maximum number of products to retrieve (default: 50)
|
|
55
55
|
|
|
56
|
-
#### Set Product Rating
|
|
57
|
-
|
|
58
|
-
Add rating metafields to a product (useful for testing review systems).
|
|
59
|
-
|
|
60
|
-
```bash
|
|
61
|
-
ecomcoder products set-rating \
|
|
62
|
-
--product-id="gid://shopify/Product/123456789" \
|
|
63
|
-
--rating=4.5 \
|
|
64
|
-
--count=127
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
**Options:**
|
|
68
|
-
- `--product-id` - Shopify product GID
|
|
69
|
-
- `--rating` - Rating value (e.g., 4.5)
|
|
70
|
-
- `--count` - Number of reviews/ratings
|
|
71
|
-
|
|
72
56
|
### Metafields
|
|
73
57
|
|
|
74
58
|
#### Create Metafield Definition
|
|
@@ -173,7 +157,6 @@ ecomcoder-cli/
|
|
|
173
157
|
│ ├── commands/ # Command implementations
|
|
174
158
|
│ │ ├── create-dummy-products.ts
|
|
175
159
|
│ │ ├── list-products.ts
|
|
176
|
-
│ │ ├── set-product-rating.ts
|
|
177
160
|
│ │ ├── create-metafield.ts
|
|
178
161
|
│ │ ├── get-metafield.ts
|
|
179
162
|
│ │ └── docs-search.ts
|
|
@@ -253,12 +236,6 @@ ecomcoder products create --count=25
|
|
|
253
236
|
# List all products (up to 100)
|
|
254
237
|
ecomcoder products list --limit=100
|
|
255
238
|
|
|
256
|
-
# Add a 4.8 star rating with 243 reviews
|
|
257
|
-
ecomcoder products set-rating \
|
|
258
|
-
--product-id="gid://shopify/Product/8234567890" \
|
|
259
|
-
--rating=4.8 \
|
|
260
|
-
--count=243
|
|
261
|
-
|
|
262
239
|
# Create a shop-level recommended products metafield
|
|
263
240
|
ecomcoder metafield create \
|
|
264
241
|
--name="Recommended Products" \
|
package/dist/cli.js
CHANGED
|
@@ -12,103 +12,23 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import { getPositionalArgs } from './lib/args-parser.js';
|
|
14
14
|
import { registry } from './lib/command-registry.js';
|
|
15
|
+
import { HelpGenerator } from './lib/help-generator.js';
|
|
15
16
|
// Register all command groups
|
|
16
17
|
import { registerProductCommands } from './commands/product/index.js';
|
|
18
|
+
import { registerShopCommands } from './commands/shop/index.js';
|
|
17
19
|
import { registerMetafieldCommands } from './commands/metafield/index.js';
|
|
18
20
|
import { registerProductsCommands } from './commands/products/index.js';
|
|
19
21
|
import { registerDocsCommands } from './commands/docs/index.js';
|
|
20
22
|
import { registerDiscountCommands } from './commands/discount/index.js';
|
|
21
23
|
// Initialize registry
|
|
22
24
|
registerProductCommands();
|
|
25
|
+
registerShopCommands();
|
|
23
26
|
registerMetafieldCommands();
|
|
24
27
|
registerProductsCommands();
|
|
25
28
|
registerDocsCommands();
|
|
26
29
|
registerDiscountCommands();
|
|
27
30
|
function showMainHelp() {
|
|
28
|
-
console.log(
|
|
29
|
-
EcomCoder CLI - Shopify Development Utilities
|
|
30
|
-
|
|
31
|
-
USAGE:
|
|
32
|
-
ecomcoder <command> <subcommand> [options]
|
|
33
|
-
|
|
34
|
-
COMMANDS:
|
|
35
|
-
products create Create dummy Shopify products for testing
|
|
36
|
-
products list List products in your Shopify store
|
|
37
|
-
products set-rating Set rating metafields on a product
|
|
38
|
-
product get Get detailed product data
|
|
39
|
-
product update-title Update product title
|
|
40
|
-
product update-description Update product description
|
|
41
|
-
product update-price Update product price and compare-at price
|
|
42
|
-
product update-template Change product template assignment
|
|
43
|
-
product create-variants Create product variants (bulk operation)
|
|
44
|
-
product delete-variants Delete product variants (bulk operation)
|
|
45
|
-
discount create-basic Create basic discount (percentage or fixed amount)
|
|
46
|
-
discount create-bxgy Create BXGY (Buy X Get Y) discount
|
|
47
|
-
discount create-shipping Create free shipping discount
|
|
48
|
-
discount list List all discounts with filtering
|
|
49
|
-
discount delete Delete a discount by ID
|
|
50
|
-
metafield create Create metafield definition
|
|
51
|
-
metafield get Get metafield definition(s)
|
|
52
|
-
docs search Search Shopify theme documentation
|
|
53
|
-
|
|
54
|
-
GLOBAL OPTIONS:
|
|
55
|
-
--session-id Session ID for authentication (auto-provided when used with Claude)
|
|
56
|
-
--help, -h Show help information
|
|
57
|
-
|
|
58
|
-
ENVIRONMENT VARIABLES:
|
|
59
|
-
SESSION_ID Session ID (auto-injected by Claude Agent SDK)
|
|
60
|
-
BACKEND_URL Orchestrator backend URL (auto-injected by agent)
|
|
61
|
-
SUPABASE_JWT Authentication token (auto-injected by agent)
|
|
62
|
-
SUPABASE_URL Supabase project URL (auto-injected by agent)
|
|
63
|
-
SUPABASE_ANON_KEY Supabase anonymous key (auto-injected by agent)
|
|
64
|
-
|
|
65
|
-
EXAMPLES:
|
|
66
|
-
# Create 10 dummy products
|
|
67
|
-
ecomcoder products create --count=10
|
|
68
|
-
|
|
69
|
-
# List 50 products
|
|
70
|
-
ecomcoder products list --limit=50
|
|
71
|
-
|
|
72
|
-
# Set product rating
|
|
73
|
-
ecomcoder products set-rating --product-id="gid://shopify/Product/123" --rating=4.5 --count=127
|
|
74
|
-
|
|
75
|
-
# Get product details
|
|
76
|
-
ecomcoder product get --id=123456789
|
|
77
|
-
ecomcoder product get --title="Blue T-Shirt"
|
|
78
|
-
|
|
79
|
-
# Update product title
|
|
80
|
-
ecomcoder product update-title --id=123 --title="Premium Hair Serum"
|
|
81
|
-
|
|
82
|
-
# Update product description
|
|
83
|
-
ecomcoder product update-description --id=123 --description="Premium cotton t-shirt"
|
|
84
|
-
|
|
85
|
-
# Update product price (all variants)
|
|
86
|
-
ecomcoder product update-price --id=123 --price=34.99 --compare-at-price=49.99 --all-variants
|
|
87
|
-
|
|
88
|
-
# Change product template
|
|
89
|
-
ecomcoder product update-template --id=123 --template=premium
|
|
90
|
-
|
|
91
|
-
# Create product variants
|
|
92
|
-
ecomcoder product create-variants --product-id=123 --variants='[{"price":"29.99","inventoryItem":{"sku":"TEST-001"}}]'
|
|
93
|
-
|
|
94
|
-
# Delete product variants
|
|
95
|
-
ecomcoder product delete-variants --product-id=123 --variant-ids="456,789"
|
|
96
|
-
|
|
97
|
-
# Create product-level metafield
|
|
98
|
-
ecomcoder metafield create --name="Rating" --key=rating --type=number_decimal --owner-type=PRODUCT
|
|
99
|
-
|
|
100
|
-
# Create shop-level metafield (global)
|
|
101
|
-
ecomcoder metafield create --name="Cart Upsell" --key=cart_upsell --type=product_reference --owner-type=SHOP
|
|
102
|
-
|
|
103
|
-
# Get metafield definition
|
|
104
|
-
ecomcoder metafield get --namespace=ecomcoder --key=upsell --owner-type=PRODUCT
|
|
105
|
-
|
|
106
|
-
# Search Shopify theme docs
|
|
107
|
-
ecomcoder docs search --query="How do sections work?"
|
|
108
|
-
|
|
109
|
-
For more help on specific commands, run:
|
|
110
|
-
ecomcoder <command> <subcommand> --help
|
|
111
|
-
`);
|
|
31
|
+
console.log(HelpGenerator.generateMainHelp());
|
|
112
32
|
}
|
|
113
33
|
async function main() {
|
|
114
34
|
const args = process.argv.slice(2);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/discount/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/discount/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAoD/C"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Following Open/Closed Principle - commands register themselves
|
|
5
5
|
*/
|
|
6
6
|
import { registry } from '../../lib/command-registry.js';
|
|
7
|
+
import { HelpGenerator } from '../../lib/help-generator.js';
|
|
7
8
|
/**
|
|
8
9
|
* Register all discount commands
|
|
9
10
|
*/
|
|
@@ -11,56 +12,9 @@ export function registerDiscountCommands() {
|
|
|
11
12
|
// Register command group
|
|
12
13
|
registry.registerGroup({
|
|
13
14
|
command: 'discount',
|
|
14
|
-
description: 'Create and manage
|
|
15
|
+
description: 'Create and manage discounts',
|
|
15
16
|
showHelp: () => {
|
|
16
|
-
console.log(
|
|
17
|
-
Discount Commands - Create and manage Shopify discounts
|
|
18
|
-
|
|
19
|
-
USAGE:
|
|
20
|
-
ecomcoder discount <subcommand> [options]
|
|
21
|
-
|
|
22
|
-
SUBCOMMANDS:
|
|
23
|
-
create-basic Create basic discount (percentage or fixed amount off)
|
|
24
|
-
create-bxgy Create BXGY (Buy X Get Y) discount
|
|
25
|
-
create-shipping Create free shipping discount
|
|
26
|
-
list List all discounts with filtering
|
|
27
|
-
delete Delete a discount by ID
|
|
28
|
-
|
|
29
|
-
EXAMPLES:
|
|
30
|
-
# Create percentage discount with code
|
|
31
|
-
ecomcoder discount create-basic \\
|
|
32
|
-
--title="Summer Sale" \\
|
|
33
|
-
--code="SUMMER25" \\
|
|
34
|
-
--type=percentage \\
|
|
35
|
-
--value=0.25 \\
|
|
36
|
-
--starts-at="2026-06-01T00:00:00Z"
|
|
37
|
-
|
|
38
|
-
# Create fixed amount discount with minimum
|
|
39
|
-
ecomcoder discount create-basic \\
|
|
40
|
-
--title="$10 Off Orders Over $50" \\
|
|
41
|
-
--code="SAVE10" \\
|
|
42
|
-
--type=fixed_amount \\
|
|
43
|
-
--value=10.00 \\
|
|
44
|
-
--min-subtotal=50.00 \\
|
|
45
|
-
--starts-at="2026-06-01T00:00:00Z"
|
|
46
|
-
|
|
47
|
-
# Create automatic discount
|
|
48
|
-
ecomcoder discount create-basic \\
|
|
49
|
-
--title="VIP Discount" \\
|
|
50
|
-
--automatic \\
|
|
51
|
-
--type=percentage \\
|
|
52
|
-
--value=0.15 \\
|
|
53
|
-
--starts-at="2026-06-01T00:00:00Z"
|
|
54
|
-
|
|
55
|
-
# List active discounts
|
|
56
|
-
ecomcoder discount list --status=active
|
|
57
|
-
|
|
58
|
-
# Delete discount
|
|
59
|
-
ecomcoder discount delete --id="gid://shopify/DiscountCodeNode/123"
|
|
60
|
-
|
|
61
|
-
For detailed help on a specific subcommand:
|
|
62
|
-
ecomcoder discount <subcommand> --help
|
|
63
|
-
`);
|
|
17
|
+
console.log(HelpGenerator.generateGroupHelp('discount'));
|
|
64
18
|
}
|
|
65
19
|
});
|
|
66
20
|
// Register individual subcommands
|
|
@@ -68,30 +22,37 @@ For detailed help on a specific subcommand:
|
|
|
68
22
|
command: 'discount',
|
|
69
23
|
subcommand: 'create-basic',
|
|
70
24
|
description: 'Create basic discount (percentage or fixed amount off)',
|
|
25
|
+
category: 'Create',
|
|
26
|
+
quickExample: 'ecomcoder discount create-basic --title="Summer Sale" --code="SUMMER25" --type=percentage --value=0.25 --starts-at="2026-06-01T00:00:00Z"',
|
|
71
27
|
handler: async () => await import('./create-basic.js')
|
|
72
28
|
});
|
|
73
29
|
registry.register({
|
|
74
30
|
command: 'discount',
|
|
75
31
|
subcommand: 'create-bxgy',
|
|
76
32
|
description: 'Create BXGY (Buy X Get Y) discount',
|
|
33
|
+
category: 'Create',
|
|
77
34
|
handler: async () => await import('./create-bxgy.js')
|
|
78
35
|
});
|
|
79
36
|
registry.register({
|
|
80
37
|
command: 'discount',
|
|
81
38
|
subcommand: 'create-shipping',
|
|
82
39
|
description: 'Create free shipping discount',
|
|
40
|
+
category: 'Create',
|
|
83
41
|
handler: async () => await import('./create-shipping.js')
|
|
84
42
|
});
|
|
85
43
|
registry.register({
|
|
86
44
|
command: 'discount',
|
|
87
45
|
subcommand: 'list',
|
|
88
46
|
description: 'List all discounts with filtering',
|
|
47
|
+
category: 'Manage',
|
|
48
|
+
quickExample: 'ecomcoder discount list --status=active',
|
|
89
49
|
handler: async () => await import('./list.js')
|
|
90
50
|
});
|
|
91
51
|
registry.register({
|
|
92
52
|
command: 'discount',
|
|
93
53
|
subcommand: 'delete',
|
|
94
54
|
description: 'Delete a discount by ID',
|
|
55
|
+
category: 'Manage',
|
|
95
56
|
handler: async () => await import('./delete.js')
|
|
96
57
|
});
|
|
97
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/discount/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/discount/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D;;GAEG;AACH,MAAM,UAAU,wBAAwB;IACtC,yBAAyB;IACzB,QAAQ,CAAC,aAAa,CAAC;QACrB,OAAO,EAAE,UAAU;QACnB,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,GAAG,EAAE;YACb,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC;QAC3D,CAAC;KACF,CAAC,CAAC;IAEH,kCAAkC;IAClC,QAAQ,CAAC,QAAQ,CAAC;QAChB,OAAO,EAAE,UAAU;QACnB,UAAU,EAAE,cAAc;QAC1B,WAAW,EAAE,wDAAwD;QACrE,QAAQ,EAAE,QAAQ;QAClB,YAAY,EAAE,2IAA2I;QACzJ,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC;KACvD,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,CAAC;QAChB,OAAO,EAAE,UAAU;QACnB,UAAU,EAAE,aAAa;QACzB,WAAW,EAAE,oCAAoC;QACjD,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,MAAM,CAAC,kBAAkB,CAAC;KACtD,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,CAAC;QAChB,OAAO,EAAE,UAAU;QACnB,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,+BAA+B;QAC5C,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,MAAM,CAAC,sBAAsB,CAAC;KAC1D,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,CAAC;QAChB,OAAO,EAAE,UAAU;QACnB,UAAU,EAAE,MAAM;QAClB,WAAW,EAAE,mCAAmC;QAChD,QAAQ,EAAE,QAAQ;QAClB,YAAY,EAAE,yCAAyC;QACvD,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC;KAC/C,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,CAAC;QAChB,OAAO,EAAE,UAAU;QACnB,UAAU,EAAE,QAAQ;QACpB,WAAW,EAAE,yBAAyB;QACtC,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC;KACjD,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/docs/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/docs/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAkB3C"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Following Open/Closed Principle - commands register themselves
|
|
5
5
|
*/
|
|
6
6
|
import { registry } from '../../lib/command-registry.js';
|
|
7
|
+
import { HelpGenerator } from '../../lib/help-generator.js';
|
|
7
8
|
/**
|
|
8
9
|
* Register all docs commands
|
|
9
10
|
*/
|
|
@@ -11,25 +12,9 @@ export function registerDocsCommands() {
|
|
|
11
12
|
// Register command group
|
|
12
13
|
registry.registerGroup({
|
|
13
14
|
command: 'docs',
|
|
14
|
-
description: 'Search
|
|
15
|
+
description: 'Search theme documentation',
|
|
15
16
|
showHelp: () => {
|
|
16
|
-
console.log(
|
|
17
|
-
Docs Commands - Search Shopify theme documentation
|
|
18
|
-
|
|
19
|
-
USAGE:
|
|
20
|
-
ecomcoder docs <subcommand> [options]
|
|
21
|
-
|
|
22
|
-
SUBCOMMANDS:
|
|
23
|
-
search Search Shopify theme docs using RAG
|
|
24
|
-
|
|
25
|
-
EXAMPLES:
|
|
26
|
-
# Search Shopify theme docs
|
|
27
|
-
ecomcoder docs search --query="How do sections work?"
|
|
28
|
-
ecomcoder docs search --query="Liquid filters for dates"
|
|
29
|
-
|
|
30
|
-
For detailed help on a specific subcommand:
|
|
31
|
-
ecomcoder docs <subcommand> --help
|
|
32
|
-
`);
|
|
17
|
+
console.log(HelpGenerator.generateGroupHelp('docs'));
|
|
33
18
|
}
|
|
34
19
|
});
|
|
35
20
|
// Register individual subcommands
|
|
@@ -37,6 +22,7 @@ For detailed help on a specific subcommand:
|
|
|
37
22
|
command: 'docs',
|
|
38
23
|
subcommand: 'search',
|
|
39
24
|
description: 'Search Shopify theme documentation',
|
|
25
|
+
quickExample: 'ecomcoder docs search --query="How do sections work?"',
|
|
40
26
|
handler: async () => await import('../docs-search.js')
|
|
41
27
|
});
|
|
42
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/docs/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/docs/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,yBAAyB;IACzB,QAAQ,CAAC,aAAa,CAAC;QACrB,OAAO,EAAE,MAAM;QACf,WAAW,EAAE,4BAA4B;QACzC,QAAQ,EAAE,GAAG,EAAE;YACb,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;QACvD,CAAC;KACF,CAAC,CAAC;IAEH,kCAAkC;IAClC,QAAQ,CAAC,QAAQ,CAAC;QAChB,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,QAAQ;QACpB,WAAW,EAAE,oCAAoC;QACjD,YAAY,EAAE,uDAAuD;QACrE,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC;KACvD,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/metafield/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/metafield/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CA2BhD"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Following Open/Closed Principle - commands register themselves
|
|
5
5
|
*/
|
|
6
6
|
import { registry } from '../../lib/command-registry.js';
|
|
7
|
+
import { HelpGenerator } from '../../lib/help-generator.js';
|
|
7
8
|
/**
|
|
8
9
|
* Register all metafield commands
|
|
9
10
|
*/
|
|
@@ -11,31 +12,9 @@ export function registerMetafieldCommands() {
|
|
|
11
12
|
// Register command group
|
|
12
13
|
registry.registerGroup({
|
|
13
14
|
command: 'metafield',
|
|
14
|
-
description: '
|
|
15
|
+
description: 'Metafield definitions',
|
|
15
16
|
showHelp: () => {
|
|
16
|
-
console.log(
|
|
17
|
-
Metafield Commands - Manage Shopify metafield definitions
|
|
18
|
-
|
|
19
|
-
USAGE:
|
|
20
|
-
ecomcoder metafield <subcommand> [options]
|
|
21
|
-
|
|
22
|
-
SUBCOMMANDS:
|
|
23
|
-
create Create metafield definition
|
|
24
|
-
get Get metafield definition(s)
|
|
25
|
-
|
|
26
|
-
EXAMPLES:
|
|
27
|
-
# Create product-level metafield
|
|
28
|
-
ecomcoder metafield create --name="Rating" --key=rating --type=number_decimal --owner-type=PRODUCT
|
|
29
|
-
|
|
30
|
-
# Create shop-level metafield (global)
|
|
31
|
-
ecomcoder metafield create --name="Cart Upsell" --key=cart_upsell --type=product_reference --owner-type=SHOP
|
|
32
|
-
|
|
33
|
-
# Get metafield definition
|
|
34
|
-
ecomcoder metafield get --namespace=ecomcoder --key=upsell --owner-type=PRODUCT
|
|
35
|
-
|
|
36
|
-
For detailed help on a specific subcommand:
|
|
37
|
-
ecomcoder metafield <subcommand> --help
|
|
38
|
-
`);
|
|
17
|
+
console.log(HelpGenerator.generateGroupHelp('metafield'));
|
|
39
18
|
}
|
|
40
19
|
});
|
|
41
20
|
// Register individual subcommands
|
|
@@ -43,12 +22,15 @@ For detailed help on a specific subcommand:
|
|
|
43
22
|
command: 'metafield',
|
|
44
23
|
subcommand: 'create',
|
|
45
24
|
description: 'Create metafield definition',
|
|
25
|
+
category: 'Definitions',
|
|
26
|
+
quickExample: 'ecomcoder metafield create --name="Rating" --key=rating --type=number_decimal --owner-type=PRODUCT',
|
|
46
27
|
handler: async () => await import('../create-metafield.js')
|
|
47
28
|
});
|
|
48
29
|
registry.register({
|
|
49
30
|
command: 'metafield',
|
|
50
31
|
subcommand: 'get',
|
|
51
32
|
description: 'Get metafield definition(s)',
|
|
33
|
+
category: 'Definitions',
|
|
52
34
|
handler: async () => await import('../get-metafield.js')
|
|
53
35
|
});
|
|
54
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/metafield/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/metafield/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D;;GAEG;AACH,MAAM,UAAU,yBAAyB;IACvC,yBAAyB;IACzB,QAAQ,CAAC,aAAa,CAAC;QACrB,OAAO,EAAE,WAAW;QACpB,WAAW,EAAE,uBAAuB;QACpC,QAAQ,EAAE,GAAG,EAAE;YACb,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;QAC5D,CAAC;KACF,CAAC,CAAC;IAEH,kCAAkC;IAClC,QAAQ,CAAC,QAAQ,CAAC;QAChB,OAAO,EAAE,WAAW;QACpB,UAAU,EAAE,QAAQ;QACpB,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,aAAa;QACvB,YAAY,EAAE,oGAAoG;QAClH,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,MAAM,CAAC,wBAAwB,CAAC;KAC5D,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,CAAC;QAChB,OAAO,EAAE,WAAW;QACpB,UAAU,EAAE,KAAK;QACjB,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,aAAa;QACvB,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,MAAM,CAAC,qBAAqB,CAAC;KACzD,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/product/create.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqEH,wBAAsB,GAAG,CAAC,IAAI,GAAE,MAAM,EAA0B,iBAiH/D"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create Product Command
|
|
3
|
+
*
|
|
4
|
+
* Following Command Pattern - thin orchestration layer
|
|
5
|
+
* Delegates business logic to ProductService
|
|
6
|
+
*/
|
|
7
|
+
import { getCredentials, getSessionId } from '../../lib/api-client.js';
|
|
8
|
+
import { parseArgs, hasHelpFlag } from '../../lib/args-parser.js';
|
|
9
|
+
import { ProductService } from './service.js';
|
|
10
|
+
function showHelp() {
|
|
11
|
+
console.log(`
|
|
12
|
+
Create Product
|
|
13
|
+
|
|
14
|
+
USAGE:
|
|
15
|
+
ecomcoder product create [OPTIONS]
|
|
16
|
+
|
|
17
|
+
REQUIRED OPTIONS:
|
|
18
|
+
--title <text> Product title (required)
|
|
19
|
+
|
|
20
|
+
OPTIONAL:
|
|
21
|
+
--description <text> Product description (HTML supported)
|
|
22
|
+
--price <amount> Initial variant price
|
|
23
|
+
--compare-at-price <amount> Sale/original price
|
|
24
|
+
--sku <sku> SKU for initial variant
|
|
25
|
+
--product-type <type> Product type/category
|
|
26
|
+
--vendor <name> Product vendor/brand
|
|
27
|
+
--status <status> Product status: ACTIVE, DRAFT, or ARCHIVED (default: DRAFT)
|
|
28
|
+
--handle <handle> URL slug (auto-generated from title if not provided)
|
|
29
|
+
--tags <tags> Comma-separated tags
|
|
30
|
+
--session-id Session ID (auto-provided via SESSION_ID env var)
|
|
31
|
+
--help, -h Show this help message
|
|
32
|
+
|
|
33
|
+
EXAMPLES:
|
|
34
|
+
# Minimal product (title only)
|
|
35
|
+
ecomcoder product create --title="Premium Hair Serum"
|
|
36
|
+
|
|
37
|
+
# Product with pricing
|
|
38
|
+
ecomcoder product create \\
|
|
39
|
+
--title="Premium Hair Serum" \\
|
|
40
|
+
--price=29.99 \\
|
|
41
|
+
--compare-at-price=44.95 \\
|
|
42
|
+
--sku="HAIR-001"
|
|
43
|
+
|
|
44
|
+
# Complete product
|
|
45
|
+
ecomcoder product create \\
|
|
46
|
+
--title="Therapy Hair Serum - Natural Formula" \\
|
|
47
|
+
--description="<h2>Premium Formula</h2><p>Natural ingredients for healthy hair</p>" \\
|
|
48
|
+
--price=34.99 \\
|
|
49
|
+
--sku="HAIR-SERUM-001" \\
|
|
50
|
+
--product-type="Hair Care" \\
|
|
51
|
+
--vendor="Beauty Co" \\
|
|
52
|
+
--status=ACTIVE \\
|
|
53
|
+
--tags="natural,organic,hair-care"
|
|
54
|
+
|
|
55
|
+
# Draft product (for review before publishing)
|
|
56
|
+
ecomcoder product create \\
|
|
57
|
+
--title="New Product Launch" \\
|
|
58
|
+
--status=DRAFT
|
|
59
|
+
|
|
60
|
+
IMPORTANT NOTES:
|
|
61
|
+
⚠️ Inventory Setup Required: Created products start with 0 inventory.
|
|
62
|
+
You must set inventory quantities in Shopify Admin:
|
|
63
|
+
Products → [Product Name] → Variants → Edit inventory
|
|
64
|
+
|
|
65
|
+
⚠️ Single Variant: Creates only 1 initial variant.
|
|
66
|
+
Use 'product create-variants' to add more variants.
|
|
67
|
+
|
|
68
|
+
⚠️ No Images: Product images must be added separately.
|
|
69
|
+
`);
|
|
70
|
+
process.exit(0);
|
|
71
|
+
}
|
|
72
|
+
export async function run(argv = process.argv.slice(2)) {
|
|
73
|
+
if (hasHelpFlag(argv)) {
|
|
74
|
+
showHelp();
|
|
75
|
+
}
|
|
76
|
+
const args = parseArgs(argv);
|
|
77
|
+
// Validate required argument
|
|
78
|
+
if (!args.title) {
|
|
79
|
+
console.error(JSON.stringify({
|
|
80
|
+
success: false,
|
|
81
|
+
error: 'Missing required argument: --title'
|
|
82
|
+
}));
|
|
83
|
+
process.exit(1);
|
|
84
|
+
}
|
|
85
|
+
// Validate title is not empty
|
|
86
|
+
if (typeof args.title === 'string' && args.title.trim() === '') {
|
|
87
|
+
console.error(JSON.stringify({
|
|
88
|
+
success: false,
|
|
89
|
+
error: 'Title cannot be empty'
|
|
90
|
+
}));
|
|
91
|
+
process.exit(1);
|
|
92
|
+
}
|
|
93
|
+
// Validate status if provided
|
|
94
|
+
const validStatuses = ['ACTIVE', 'DRAFT', 'ARCHIVED'];
|
|
95
|
+
if (args.status && !validStatuses.includes(args.status.toUpperCase())) {
|
|
96
|
+
console.error(JSON.stringify({
|
|
97
|
+
success: false,
|
|
98
|
+
error: `Invalid status. Must be one of: ${validStatuses.join(', ')}`
|
|
99
|
+
}));
|
|
100
|
+
process.exit(1);
|
|
101
|
+
}
|
|
102
|
+
try {
|
|
103
|
+
// Get credentials
|
|
104
|
+
const sessionId = getSessionId(args.sessionId);
|
|
105
|
+
const credentials = await getCredentials(sessionId, args.backendUrl, args.jwt);
|
|
106
|
+
// Build input object
|
|
107
|
+
const input = {
|
|
108
|
+
title: args.title.trim()
|
|
109
|
+
};
|
|
110
|
+
// Add optional fields
|
|
111
|
+
if (args.description) {
|
|
112
|
+
input.descriptionHtml = args.description;
|
|
113
|
+
}
|
|
114
|
+
if (args.productType) {
|
|
115
|
+
input.productType = args.productType;
|
|
116
|
+
}
|
|
117
|
+
if (args.vendor) {
|
|
118
|
+
input.vendor = args.vendor;
|
|
119
|
+
}
|
|
120
|
+
if (args.status) {
|
|
121
|
+
input.status = args.status.toUpperCase();
|
|
122
|
+
}
|
|
123
|
+
if (args.handle) {
|
|
124
|
+
input.handle = args.handle;
|
|
125
|
+
}
|
|
126
|
+
if (args.tags) {
|
|
127
|
+
input.tags = args.tags.split(',').map((tag) => tag.trim());
|
|
128
|
+
}
|
|
129
|
+
// Build initial variant if price or SKU provided
|
|
130
|
+
// Service layer will update the variant after product creation
|
|
131
|
+
if (args.price || args.sku || args.compareAtPrice) {
|
|
132
|
+
const variant = {};
|
|
133
|
+
if (args.price) {
|
|
134
|
+
variant.price = args.price;
|
|
135
|
+
}
|
|
136
|
+
if (args.compareAtPrice) {
|
|
137
|
+
variant.compareAtPrice = args.compareAtPrice;
|
|
138
|
+
}
|
|
139
|
+
if (args.sku) {
|
|
140
|
+
variant.inventoryItem = {
|
|
141
|
+
sku: args.sku
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
input.variants = [variant];
|
|
145
|
+
}
|
|
146
|
+
// Execute create via service
|
|
147
|
+
const result = await ProductService.createProduct(credentials, input);
|
|
148
|
+
// Output result
|
|
149
|
+
console.log(JSON.stringify(result, null, 2));
|
|
150
|
+
// Show inventory warning if successful
|
|
151
|
+
if (result.success) {
|
|
152
|
+
console.error('\n⚠️ IMPORTANT: Product created with 0 inventory. Set inventory quantities in Shopify Admin.\n');
|
|
153
|
+
}
|
|
154
|
+
if (!result.success) {
|
|
155
|
+
process.exit(1);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
console.error(JSON.stringify({
|
|
160
|
+
success: false,
|
|
161
|
+
error: error.message || 'Unknown error occurred'
|
|
162
|
+
}));
|
|
163
|
+
process.exit(1);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/product/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-metafield.d.ts","sourceRoot":"","sources":["../../../src/commands/product/get-metafield.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmFH,wBAAsB,GAAG,CAAC,IAAI,GAAE,MAAM,EAA0B,iBAkD/D"}
|