Releases: yasserstudio/gmc
v1.0.14 — lfp: Local Feeds Partnership (Merchant API lfp/v1) — 11/11 sub-APIs
What's Changed
- LFP: new
gmc lfp— the Local Feeds Partnership API (lfp/v1), completing all 11 Merchant API sub-APIs. Providers submit local stores (list/get/insert/delete), inventory and sales (insert), and read a merchant's onboarding state — on behalf of target merchants. Inserts take convenience flags (--target-account,--store-code,--offer-id,--price/--currency,--quantity, …) or a full--filebody.
Tests: 640. Commands: 19.
Full Changelog: v1.0.13...v1.0.14
v1.0.13 — conversions: conversion sources (Merchant API conversions/v1)
What's Changed
- Conversions: new
gmc conversions(list/get/create/update/delete/undelete) manages conversion sources — link a Merchant Center account to a Merchant Center destination or a Google Analytics property for conversion measurement.createtakes--ga-propertyor--merchant-center --currency(or--file);deletearchives a source andundeleterestores it. Covers theconversions/v1Merchant API — 10 of 11 sub-APIs now.
Tests: 617. Commands: 18.
Full Changelog: v1.0.12...v1.0.13
v1.0.12 — accounts: developer registration + doctor hint
What's Changed
- Accounts: new
gmc accounts developer-registration(register/get/unregister) registers the Cloud project that calls the API with your Merchant Center account — the one-time step that clears the "GCP project … is not registered" 401 (previously this needed a raw API call). - Doctor: a "not registered" 401 now points you at
developer-registration registerinstead of suggesting re-authentication — the token is valid, the project just isn't registered. - Docs: corrected the
gmc issuesexample-output severity to[ERROR](the value the live API actually returns).
Tests: 594. Commands: 17.
Full Changelog: v1.0.11...v1.0.12
v1.0.11 — fix: products work against Merchant API v1 (productAttributes)
What's Changed
A correctness fix for the Merchant API v1 product surface — found by the first end-to-end test against a live Merchant Center account.
productsnow works against live v1. The API renamed the product attributes fieldattributes→productAttributes(reads and writes).gmcstill usedattributes, soproducts list/getshowed blank titles andproducts insertfailed with400 Unknown name "attributes". The field is renamed across the typed client and every consumer —products,feeds,migrate products, andpreflight --remote.ItemLevelIssueupdated to the v1 shape (severity/reportingContext/applicableCountries), soproducts getshows issue details andproducts listreports accurateN disapproved / M issue(s)counts.gmc issuesseverity is documented correctly (ERROR, not the prior v1beta enum).- Added a recorded-shape v1 contract test so a future field rename fails CI instead of shipping silently.
Packages
@gmc-cli/cli 1.0.10 → 1.0.11 · @gmc-cli/api → 0.9.17 (internal)
Install
npm i -g @gmc-cli/cli · brew install yasserstudio/tap/gmc · or the standalone binaries below.
Tests: 585. Full changelog: v1.0.10...v1.0.11
v1.0.10 — issues: account & product issue resolution
What's Changed
A read-only window over issueresolution/v1 — the issues Merchant Center surfaces, with Google's own resolution content, in the terminal.
gmc issues account— render account-level issues (renderaccountissues): why the account is limited and how to fix it.gmc issues product <id>— render item-level issues for one product (renderproductissues); accepts a bare product id or the full resourcenamefromproducts list.
Each issue prints [SEVERITY] (DISAPPROVED / DEMOTED / NOT_IMPACTED), the impact message, and a region/destination breakdown; --language / --time-zone localize the rendered content. --json emits the raw RenderedIssues, including the prerendered HTML detail and actions. Completes the diagnostics trio alongside doctor (access) and preflight (pre-upload). The allowlist-gated triggeraction write flow is intentionally not exposed.
New read-only IssuesService (renderAccountIssues / renderProductIssues) + RenderedIssue types; product ids are canonicalized via productSegment so a hostile id can neither escape the configured account nor reach :triggeraction. Adds issueresolution as the 9th Merchant API rate-limit bucket. Ran the multi-agent review (security · code-quality · API-design — 0 critical/high; applied the suggested empty-id guard, a helper extraction, and edge-case tests).
Packages
@gmc-cli/cli 1.0.9 → 1.0.10 · @gmc-cli/api → 0.9.16 (internal)
Install
npm i -g @gmc-cli/cli · brew install yasserstudio/tap/gmc · or the standalone binaries below.
Tests: api 132 (+7) · cli 260 (+8). Full changelog: v1.0.9...v1.0.10
v1.0.9 — quota: API call quota usage
What's Changed
A small, read-only ops command over quota/v1 accounts.quotas.
gmc quota list— show your daily Merchant API call quota and usage per method group, plus the per-minute limit, so you can see your rate-limit headroom in CI/ops. The daily counters reset at 12:00 UTC;--jsonemits the rawQuotaGroups (includingmethodDetails).
New read-only QuotaService (listQuotas) + QuotaGroup / MethodDetail types (int64 counts typed as strings). The quota sub-API bucket + scope were already wired, so this is the service + command only. Ran the multi-agent review (security · code-quality · correctness — 0 actionable findings).
Packages
@gmc-cli/cli 1.0.8 → 1.0.9 · @gmc-cli/api → 0.9.15 (internal)
Install
npm i -g @gmc-cli/cli · brew install yasserstudio/tap/gmc · or the standalone binaries below.
Tests: api 125 · cli 252 (+5). Full changelog: v1.0.8...v1.0.9
v1.0.8 — notifications: webhook subscriptions
What's Changed
The first event-driven capability — subscribe to Merchant Center change events delivered to a webhook, over a new notifications/v1 sub-API. When a registered event fires (currently product-status changes), the Merchant API sends an HTTP POST to your callBackUri.
gmc notifications create --callback-uri <https-url> (--all-managed-accounts | --target-account <id>)— the id is auto-generated; the callback must be HTTPS; exactly one target is required.gmc notifications list / get / update / delete—updatepatches only the fields you pass (derivedupdateMask) and clears the other union side when you switch the target.
Adds notifications as the 8th sub-API (its own rate-limit bucket + OAuth-scope entry). Surface web-verified against the live accounts.notificationsubscriptions docs; ran the multi-agent review (security · code-quality · correctness — 0 critical/high; applied the union-switch mask fix).
Packages
@gmc-cli/cli 1.0.7 → 1.0.8 · @gmc-cli/api → 0.9.14 · @gmc-cli/auth → 0.7.2 (internal)
Install
npm i -g @gmc-cli/cli · brew install yasserstudio/tap/gmc · or the standalone binaries below.
Tests: api 123 · cli 249 (+19). Full changelog: v1.0.7...v1.0.8
v1.0.7 — datasources: update + fetch
What's Changed
Completes the datasources group — fills the two commands that were previously "not yet implemented".
gmc datasources update <id>— patch a data source (--name, or a full body via--file/stdin, with--update-mask). Output-only fields (name/dataSourceId/input) in a--filebody are stripped, so a body saved fromdatasources getre-applies cleanly;--nameoverrides a--filedisplayName.gmc datasources fetch <id>— trigger an immediate fetch of a scheduled file feed, outside its schedule (file-input sources only).
API surface web-verified against the live datasources/v1 docs; ran the multi-agent review (security · code-quality · correctness — 0 critical/high, 3 polish fixes applied). Also excludes the changesets-generated packages/*/CHANGELOG.md from the prettier gate.
Packages
@gmc-cli/cli 1.0.6 → 1.0.7 · @gmc-cli/api → 0.9.13 (internal)
Install
npm i -g @gmc-cli/cli · brew install yasserstudio/tap/gmc · or the standalone binaries below.
Tests: api 117 · cli 236 (+7). Full changelog: v1.0.6...v1.0.7
v1.0.6 — accounts: business-identity, autofeed, shipping & return-policies
What's Changed
Fills the remaining accounts/v1 sub-resources, in one patch.
gmc accounts business-identity get|update— diversity/identity attributes (--promotions-consent given|denied,--black-owned/--women-owned/--veteran-owned/--latino-owned/--small-business <yes|no>).gmc accounts autofeed get|update—--enable-products <true|false>.gmc accounts shipping get|set— read or replace the shipping-settings singleton.setis a full replace; the--filebody must carry theetagfromget(the API rejects a stale one).gmc accounts return-policies list|get|create|delete— manage online return policies. The id is auto-generated oncreate; bodies via--file/stdin (no patch in v1 — recreate to change).
API surface web-verified against the live accounts/v1 docs; ran the multi-agent review (security · code-quality · correctness — 0 critical/high, 3 consistency fixes applied).
Packages
@gmc-cli/cli 1.0.5 → 1.0.6 · @gmc-cli/api → 0.9.12 (internal)
Install
npm i -g @gmc-cli/cli · brew install yasserstudio/tap/gmc · or the standalone binaries below.
Tests: api 114 · cli 232 (+17). Full changelog: v1.0.5...v1.0.6
v1.0.5 — accounts: lifecycle (create + delete)
What's Changed
Account lifecycle — create and (irreversibly) delete accounts on Merchant API accounts/v1. Completes the account-management surface (profile writes in 1.0.3, access in 1.0.4, lifecycle here).
gmc accounts create—accounts:createAndConfigure, typically a sub-account under an aggregator. Build it from--name/--time-zone/--language/--adult-content+--aggregator <id>, or pass a full body via--file(kept whole, souser[]/setAlias[]round-trip).gmc accounts delete <accountId> --yes [--force]— irreversible: the id is required (no profile fallback) and--yesmust confirm;--forcemaps to the API's force (delete an account with sub-accounts or processed offers).
API surface web-verified against the live accounts.createAndConfigure / delete docs; ran the multi-agent review (security · code-quality · correctness — 0 actionable findings).
Packages
@gmc-cli/cli 1.0.4 → 1.0.5 · @gmc-cli/api → 0.9.11 (internal)
Install
npm i -g @gmc-cli/cli · brew install yasserstudio/tap/gmc · or the standalone binaries below.
Tests: api 107 · cli 222 (+11). Full changelog: v1.0.4...v1.0.5