Skip to content

feat: add gmc ordertracking (order tracking signals) - #109

Merged
yasserstudio merged 1 commit into
mainfrom
feat/ordertracking
Jul 1, 2026
Merged

feat: add gmc ordertracking (order tracking signals)#109
yasserstudio merged 1 commit into
mainfrom
feat/ordertracking

Conversation

@yasserstudio

Copy link
Copy Markdown
Owner

Summary

Adds gmc ordertracking — the Order Tracking sub-API (ordertracking/v1, accounts.orderTrackingSignals). This was the last remaining GA (v1) Merchant API sub-API, so the stable v1 surface is now fully covered (12 sub-APIs).

Order tracking signals report completed shipments so Google can show accurate delivery estimates. The sub-API is write-only — there is no get/list/update/delete, and a signal is immutable once created.

gmc ordertracking create --file signal.json
cat signal.json | gmc ordertracking create        # or via stdin
gmc ordertracking create --file signal.json --merchant-id 555

Changes

  • apiOrderTrackingService + typed OrderTrackingSignal / ShippingInfo / LineItemDetails / ShipmentLineItemMapping shapes; registers the ordertracking sub-API (union + rate-limit bucket).
  • cliordertracking create: reads the signal from --file/stdin, validates the required fields (orderId, non-empty shippingInfo, non-empty lineItems) offline by shape (an object-instead-of-array or a blank id fails fast, not as an opaque 400), strips the output-only orderTrackingSignalId, and supports --merchant-id.
  • auth — maps ordertracking to the content scope (mirrors every sibling sub-API).
  • docs — new reference page; roadmap/index updated to "12 GA sub-APIs — v1 surface complete". reviews / productstudio / youtube remain pre-GA and are deferred until they graduate to v1.

Contract accuracy

The wire shape was verified against the google/shopping/merchant/ordertracking/v1 proto: POST /ordertracking/v1/{parent=accounts/*}/orderTrackingSignals with the signal as the request body — no dataSource (unlike products/promotions). The API test asserts the exact URL and verbatim body to guard against field drift.

Testing

  • Full suite green: api 155, cli 304 (+9 new), auth 31, migrate 60.
  • Typecheck / lint / prettier clean.
  • Live smoke test of the built binary: offline validation → exit 2; a valid body reaches the API.

Release

Changeset included: @gmc-cli/cli1.0.16, @gmc-cli/api0.9.21, @gmc-cli/auth0.7.3 (all patch, per the post-1.0 patch-per-deliverable cadence).

Add the Order Tracking sub-API (ordertracking/v1, accounts.orderTrackingSignals) —
the last remaining GA Merchant API sub-API, completing the stable v1 surface.

The sub-API is write-only: `gmc ordertracking create --file <signal.json>` (or
stdin) posts an OrderTrackingSignal so Google can show accurate delivery estimates.
There is no get/list/update/delete — a signal is immutable once created.

- api: OrderTrackingService + typed OrderTrackingSignal / ShippingInfo /
  LineItemDetails / ShipmentLineItemMapping shapes; new "ordertracking" sub-API
  and rate-limit bucket.
- cli: `ordertracking create` — reads the signal from --file/stdin, validates the
  required fields (orderId, shippingInfo, lineItems) offline by shape, strips the
  output-only orderTrackingSignalId, and supports --merchant-id.
- auth: map the sub-API to the content scope.
- docs: new reference page; roadmap/index updated to 12 GA sub-APIs.

cli 1.0.16, api 0.9.21, auth 0.7.3.
@yasserstudio
yasserstudio merged commit 39cb4ef into main Jul 1, 2026
8 checks passed
@yasserstudio
yasserstudio deleted the feat/ordertracking branch July 1, 2026 11:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant