@forjio/storlaunch-cli 0.12.0 → 0.13.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/dist/commands/feeds.d.ts +8 -0
- package/dist/commands/feeds.d.ts.map +1 -0
- package/dist/commands/feeds.js +153 -0
- package/dist/commands/feeds.js.map +1 -0
- package/dist/commands/sell.d.ts.map +1 -1
- package/dist/commands/sell.js +2 -0
- package/dist/commands/sell.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
/**
|
|
3
|
+
* `sell feeds` — product-feed config + inspection.
|
|
4
|
+
* Public commands (urls, inspect) hit the storefront origin; config
|
|
5
|
+
* commands hit the authed account API.
|
|
6
|
+
*/
|
|
7
|
+
export declare const feeds: Command;
|
|
8
|
+
//# sourceMappingURL=feeds.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feeds.d.ts","sourceRoot":"","sources":["../../src/commands/feeds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC;;;;GAIG;AAEH,eAAO,MAAM,KAAK,SAEjB,CAAC"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
import { apiRequest } from "../lib/api.js";
|
|
4
|
+
import { output } from "../lib/output.js";
|
|
5
|
+
/**
|
|
6
|
+
* `sell feeds` — product-feed config + inspection.
|
|
7
|
+
* Public commands (urls, inspect) hit the storefront origin; config
|
|
8
|
+
* commands hit the authed account API.
|
|
9
|
+
*/
|
|
10
|
+
export const feeds = new Command("feeds").description("Configure + inspect product-catalog feeds (Google Shopping / Meta / TikTok)");
|
|
11
|
+
function defaultBase() {
|
|
12
|
+
return process.env.STORLAUNCH_PUBLIC_URL ?? "https://storlaunch.forjio.com";
|
|
13
|
+
}
|
|
14
|
+
function handleError(err, json) {
|
|
15
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
16
|
+
if (json)
|
|
17
|
+
output({ error: { message: msg } }, { json: true });
|
|
18
|
+
else
|
|
19
|
+
console.error(chalk.red(`Error: ${msg}`));
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
feeds
|
|
23
|
+
.command("urls")
|
|
24
|
+
.description("Print the three feed URLs for a merchant — paste into Google/Meta/TikTok dashboards")
|
|
25
|
+
.requiredOption("--merchant <slug>", "Merchant slug")
|
|
26
|
+
.option("--base-url <url>", "Override the storefront base URL")
|
|
27
|
+
.action(async (opts, cmd) => {
|
|
28
|
+
const g = cmd.optsWithGlobals();
|
|
29
|
+
const base = (opts.baseUrl ?? defaultBase()).replace(/\/$/, "");
|
|
30
|
+
const slug = encodeURIComponent(opts.merchant);
|
|
31
|
+
const urls = {
|
|
32
|
+
google: `${base}/api/v1/storefront/public/${slug}/feeds/google.xml`,
|
|
33
|
+
meta: `${base}/api/v1/storefront/public/${slug}/feeds/meta.xml`,
|
|
34
|
+
tiktok: `${base}/api/v1/storefront/public/${slug}/feeds/tiktok.xml`,
|
|
35
|
+
};
|
|
36
|
+
if (g.json)
|
|
37
|
+
output(urls, { json: true });
|
|
38
|
+
else {
|
|
39
|
+
console.log(chalk.bold("Google Shopping:") + " " + urls.google);
|
|
40
|
+
console.log(chalk.bold("Meta Catalog: ") + " " + urls.meta);
|
|
41
|
+
console.log(chalk.bold("TikTok Catalog: ") + " " + urls.tiktok);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
feeds
|
|
45
|
+
.command("inspect")
|
|
46
|
+
.description("Fetch a merchant's feed and report item count + missing-field warnings")
|
|
47
|
+
.requiredOption("--merchant <slug>", "Merchant slug")
|
|
48
|
+
.option("--format <format>", "google | meta | tiktok", "google")
|
|
49
|
+
.option("--base-url <url>", "Override the storefront base URL")
|
|
50
|
+
.action(async (opts, cmd) => {
|
|
51
|
+
const g = cmd.optsWithGlobals();
|
|
52
|
+
const base = (opts.baseUrl ?? defaultBase()).replace(/\/$/, "");
|
|
53
|
+
const url = `${base}/api/v1/storefront/public/${encodeURIComponent(opts.merchant)}/feeds/${opts.format}.xml`;
|
|
54
|
+
try {
|
|
55
|
+
const res = await fetch(url);
|
|
56
|
+
if (!res.ok) {
|
|
57
|
+
console.error(chalk.red(`Failed: ${res.status} ${res.statusText} ← ${url}`));
|
|
58
|
+
process.exit(1);
|
|
59
|
+
}
|
|
60
|
+
const xml = await res.text();
|
|
61
|
+
const items = [...xml.matchAll(/<item>/g)].length;
|
|
62
|
+
const missingGtin = items - [...xml.matchAll(/<g:gtin>/g)].length;
|
|
63
|
+
const missingImage = items - [...xml.matchAll(/<g:image_link>/g)].length;
|
|
64
|
+
const zeroPrice = [...xml.matchAll(/<g:price>0(?:\.0+)? /g)].length;
|
|
65
|
+
const summary = { url, format: opts.format, items, missingGtin, missingImage, zeroPrice };
|
|
66
|
+
if (g.json)
|
|
67
|
+
output(summary, { json: true });
|
|
68
|
+
else {
|
|
69
|
+
console.log(chalk.dim(url));
|
|
70
|
+
console.log(`${chalk.bold(items)} items`);
|
|
71
|
+
if (missingGtin > 0)
|
|
72
|
+
console.log(chalk.yellow(`⚠ ${missingGtin} items without g:gtin (Google identifier_exists=no will be set)`));
|
|
73
|
+
if (missingImage > 0)
|
|
74
|
+
console.log(chalk.red(`✗ ${missingImage} items without g:image_link (will be rejected by Google Shopping)`));
|
|
75
|
+
if (zeroPrice > 0)
|
|
76
|
+
console.log(chalk.red(`✗ ${zeroPrice} items with zero price`));
|
|
77
|
+
if (missingGtin === 0 && missingImage === 0 && zeroPrice === 0)
|
|
78
|
+
console.log(chalk.green("All checks passed"));
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
handleError(err, g.json);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
const config = new Command("config").description("Get / update merchant feed config");
|
|
86
|
+
config
|
|
87
|
+
.command("get")
|
|
88
|
+
.description("Show the merchant's feed config + computed URLs")
|
|
89
|
+
.action(async (_opts, cmd) => {
|
|
90
|
+
const g = cmd.optsWithGlobals();
|
|
91
|
+
try {
|
|
92
|
+
const result = await apiRequest("/account/feeds", { sandbox: g.sandbox });
|
|
93
|
+
const data = result.data ?? result;
|
|
94
|
+
if (g.json)
|
|
95
|
+
output(result, { json: true });
|
|
96
|
+
else {
|
|
97
|
+
console.log(`Enabled: ${data.enabled ? chalk.green("yes") : chalk.red("no")}`);
|
|
98
|
+
console.log(`Default category: ${data.defaultGoogleProductCategory ?? chalk.dim("(none)")}`);
|
|
99
|
+
console.log(`Include drafts: ${data.includeUnpublished ? chalk.yellow("yes") : "no"}`);
|
|
100
|
+
console.log("");
|
|
101
|
+
console.log(chalk.bold("Feed URLs (submit these to ad-network dashboards):"));
|
|
102
|
+
console.log(` Google: ${data.urls.google}`);
|
|
103
|
+
console.log(` Meta: ${data.urls.meta}`);
|
|
104
|
+
console.log(` TikTok: ${data.urls.tiktok}`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
catch (err) {
|
|
108
|
+
handleError(err, g.json);
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
config
|
|
112
|
+
.command("set")
|
|
113
|
+
.description("Update fields (only flags you pass are changed)")
|
|
114
|
+
.option("--enable", "Enable feeds")
|
|
115
|
+
.option("--disable", "Disable feeds (returns 404 from public endpoints)")
|
|
116
|
+
.option("--default-category <text>", "Default Google product category (path or taxonomy ID)")
|
|
117
|
+
.option("--include-unpublished", "Include draft products")
|
|
118
|
+
.option("--no-include-unpublished", "Exclude draft products")
|
|
119
|
+
.action(async (opts, cmd) => {
|
|
120
|
+
const g = cmd.optsWithGlobals();
|
|
121
|
+
try {
|
|
122
|
+
const body = {};
|
|
123
|
+
if (opts.enable)
|
|
124
|
+
body.enabled = true;
|
|
125
|
+
if (opts.disable)
|
|
126
|
+
body.enabled = false;
|
|
127
|
+
if (opts.defaultCategory !== undefined)
|
|
128
|
+
body.defaultGoogleProductCategory = opts.defaultCategory;
|
|
129
|
+
// Commander turns --include-unpublished into true and --no-include-unpublished into false.
|
|
130
|
+
if (opts.includeUnpublished === true)
|
|
131
|
+
body.includeUnpublished = true;
|
|
132
|
+
else if (opts.includeUnpublished === false)
|
|
133
|
+
body.includeUnpublished = false;
|
|
134
|
+
if (Object.keys(body).length === 0) {
|
|
135
|
+
console.error(chalk.yellow("No changes supplied."));
|
|
136
|
+
process.exit(1);
|
|
137
|
+
}
|
|
138
|
+
const result = await apiRequest("/account/feeds", {
|
|
139
|
+
method: "PATCH",
|
|
140
|
+
body,
|
|
141
|
+
sandbox: g.sandbox,
|
|
142
|
+
});
|
|
143
|
+
if (g.json)
|
|
144
|
+
output(result, { json: true });
|
|
145
|
+
else
|
|
146
|
+
console.log(chalk.green("Config saved."));
|
|
147
|
+
}
|
|
148
|
+
catch (err) {
|
|
149
|
+
handleError(err, g.json);
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
feeds.addCommand(config);
|
|
153
|
+
//# sourceMappingURL=feeds.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feeds.js","sourceRoot":"","sources":["../../src/commands/feeds.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sell.d.ts","sourceRoot":"","sources":["../../src/commands/sell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"sell.d.ts","sourceRoot":"","sources":["../../src/commands/sell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBpC;;;;GAIG;AACH,eAAO,MAAM,IAAI,SAAoF,CAAC"}
|
package/dist/commands/sell.js
CHANGED
|
@@ -13,6 +13,7 @@ import { discountCodes } from "./discount-codes.js";
|
|
|
13
13
|
import { seo } from "./seo.js";
|
|
14
14
|
import { pixels } from "./pixels.js";
|
|
15
15
|
import { abandonedCart } from "./abandoned-cart.js";
|
|
16
|
+
import { feeds } from "./feeds.js";
|
|
16
17
|
/**
|
|
17
18
|
* `sell` — seller-side commands. Wraps existing command modules as
|
|
18
19
|
* subcommands. 0.3.0 adds inventory (variants/warehouses/stock) and
|
|
@@ -31,6 +32,7 @@ sell.addCommand(discountCodes);
|
|
|
31
32
|
sell.addCommand(seo);
|
|
32
33
|
sell.addCommand(pixels);
|
|
33
34
|
sell.addCommand(abandonedCart);
|
|
35
|
+
sell.addCommand(feeds);
|
|
34
36
|
sell.addCommand(webhook);
|
|
35
37
|
sell.addCommand(config);
|
|
36
38
|
//# sourceMappingURL=sell.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sell.js","sourceRoot":"","sources":["../../src/commands/sell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"sell.js","sourceRoot":"","sources":["../../src/commands/sell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC;;;;GAIG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,gDAAgD,CAAC,CAAC;AAEtG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACtB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACzB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC5B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAC3B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC1B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACxB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACzB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACzB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAC/B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACrB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACxB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAC/B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACvB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACzB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forjio/storlaunch-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"description": "Storlaunch CLI — seller tools (storefronts, inventory, shipping, ledger, reports, payouts, discount-codes, payments, webhooks) and buyer tools (shop, cart, orders, subs, invoices) in one CLI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|