@koda-sl/baker-cli 0.375.0-dev.8dac6def3 → 0.376.0-dev.2f68e83cd
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 +7 -1
- package/dist/cli.js +656 -237
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -3683,7 +3683,7 @@ No write surface against HubSpot itself — a form's fields, redirect, or consen
|
|
|
3683
3683
|
|
|
3684
3684
|
---
|
|
3685
3685
|
|
|
3686
|
-
### `baker shopify store | products | product | collections | stock | sales | buyers | buyer | countries | best-sellers | cohorts | segments`
|
|
3686
|
+
### `baker shopify store | products | product | collections | stock | sales | buyers | buyer | countries | best-sellers | cohorts | segments | promotions | stock-holds`
|
|
3687
3687
|
|
|
3688
3688
|
Read-only view of the company's **connected Shopify store**, from **Baker's own copy** of its catalog and the store's own orders — never a live call to Shopify. Baker keeps the copy current from the store (a change usually shows within about a minute) and checks the whole catalog daily; product photos are already in the image library.
|
|
3689
3689
|
|
|
@@ -3707,6 +3707,8 @@ baker shopify countries --country DE # where buyers are: by countr
|
|
|
3707
3707
|
baker shopify best-sellers --view repeat # what sells (--view products|variants|trend|together|repeat|momentum)
|
|
3708
3708
|
baker shopify segments # best, loyal, at risk, new, one-time, with this store's own rules
|
|
3709
3709
|
baker shopify cohorts --months 12 # buyers by first-order month: who came back, spend per buyer
|
|
3710
|
+
baker shopify promotions <id|handle|link> # what advertises a product: ads (via page, buy link, landing), landings, Shopping
|
|
3711
|
+
baker shopify stock-holds --product <id> # ads Baker paused because the product ran out, each with a resume verdict
|
|
3710
3712
|
```
|
|
3711
3713
|
|
|
3712
3714
|
**`meta.store`** is on every answer: `connection` (`connected` · `needs_reconnect` · `disconnected`), `catalog` (`starting` · `importing` · `ready` · `failed`, with `importProgress` while importing), `unreadable` (products Baker couldn't read; `unreadableCapped` past 100), `checksFailing` (Baker couldn't check the store for changes lately), `storefront` (`online_store`, or `own` for a store that sells through its own site) and `lastActivity` (when Baker last heard from the store — not a promise the copy is current). `hints[]` turn each of these into what to tell the user.
|
|
@@ -3730,6 +3732,10 @@ baker shopify cohorts --months 12 # buyers by first-order month
|
|
|
3730
3732
|
- **`cohorts`:** `--months <3-36>` (default 12); retention at months 1, 2, 3, 6, 12 and net per buyer by month 12 (`--full`: every month).
|
|
3731
3733
|
- **`segments`:** each segment's buyers, share, net, average orders, days since the last order, top countries and first products, and its rule in this store's numbers.
|
|
3732
3734
|
|
|
3735
|
+
**`promotions`:** positional `<ref>` like `product`. Reads the product, scans this workspace's `src/pages/*` (import graph, ≤ 300 pages, files ≤ 256 KB) for its buy link, `/products/<handle>` or an option id, then `POST /api/shopify/promotions` with the linked landings. `data.ads[]` (`platform`, `level` ad|asset_group, `name`, `campaign`, `status` active|paused, `via` product_page|buy_link|landing), `data.landings[]` (`published`, `via` links_to_product|visitors_went_on), `data.shopping[]`, `data.catalog_ads`, `data.checked` (`not_checked` names a platform it could not read), `data.remembered` (the read was kept for this Session — only then is a pause staged from it undone when the product is back). `--full` adds ids, accounts, campaign / ad group / ad set ids, the Google `resource` and the URL.
|
|
3736
|
+
|
|
3737
|
+
**`stock-holds`:** `--product <ref>`, `--all` (resolved holds too). `data.holds[]` — one per paused entity and product, with `verdict` (`resumable` · `still_out_of_stock` · `changed_since` · `already_active` · `still_promotes_out_of_stock` · `cannot_confirm`) read live from the ad platform; `data.pending_sessions[]` — out-of-stock work still waiting for review that would pause this product's ads.
|
|
3738
|
+
|
|
3733
3739
|
**Refusals:** `NO_SHOPIFY_CONNECTION` — no store is connected; `error.fix.action` is `request_connection` (`{ platform: "shopify" }`). `SHOPIFY_NOT_AVAILABLE` — Shopify can't be connected on this Baker yet; `error.fix.action` is `continue_without`. Both exit 1.
|
|
3734
3740
|
|
|
3735
3741
|
---
|