feat(inventory): add Inventory endpoint family - #208
Conversation
Implements the new agentic:inventory OAuth-scoped endpoints: stock adjustments, atomic multi-variant reservations (create/get/commit/release), stock levels (get/set), and beta product knowledge (get/set/delete). Responses stay untyped Hash and errors surface via CheckoutApiException, consistent with every other domain in this SDK.
🟡 Risk Classification: MINORApproval route: AI Review + Human Approval Classification reasons
Operational gates
Files analysed: 15 wall-e 2026.06.19-02 · policy |
🔬 Debug — why this classification?Each reason code emitted by the classifier, its source clause in the AI in SDLC Control Framework, and what it means.
Kinds:
See issue #3 for the proposal to formalise this map as Appendix A of the standards doc. wall-e 2026.06.19-02 · debug |
🔵 Advisory review: Sound, but needs your judgementThis PR needs a human approval. The code itself reads as correct; whether it should land depends on context I don't have. Purely additive new Inventory client wiring 10 endpoints; the code visible in the diff is structurally consistent with the existing SDK pattern, but the diff is truncated (several key pieces are missing) and a few design/verification questions warrant human review before approval. For you to decide
This is not an approval. wall-e cannot auto-approve this PR — it is an opinion to help whoever does. Advisory review · us.anthropic.claude-sonnet-4-6 · wall-e 2026.06.19-02 |
|



Summary
Implements the new Inventory product added to the API on 2026-09-10: stock adjustments,
atomic multi-variant reservations (create/get/commit/release), stock levels (get/set), and
beta product knowledge (get/set/delete). All 10 endpoints require the OAuth scope
agentic:inventory, no secret/public key support, reusing this SDK's existingAuthorizationType::OAUTHclient pattern (already used by GooglePay).Also verified the same swagger diff's
PaymentSessionCaptureFlag/PaymentSessionCaptureOnschema extraction:
capture/capture_onare unchanged (Boolean/Time). Note:PaymentInterfaces(pan_preference/provision_network_token) is not modeled in this SDK atall, a pre-existing gap unrelated to this ticket, left out of scope.
Changes
lib/checkout_sdk/inventory/inventory_client.rb— new client, all 10 methodslib/checkout_sdk/inventory/— InventoryAdjustmentRequest, InventoryReservationItem,InventoryReservationRequest, InventorySetLevelsRequest, InventorySetProductRequest,
InventoryMoney
lib/checkout_sdk/checkout_api.rb/checkout_sdk.rb— wired the new client inspec/checkout_sdk/inventory/— client and serialization specs, 694 examples passingResponses stay untyped Hash and errors surface via
CheckoutApiException, consistent withevery other domain in this SDK; this SDK has no per-domain typed error classes.
API Reference
POST /inventory/adjustmentsPOST /inventory/reservationsGET /inventory/reservations/{id}POST /inventory/reservations/{id}/commitPOST /inventory/reservations/{id}/releaseGET /inventory/{variant_id}PUT /inventory/{variant_id}GET /inventory/{variant_id}/product(Beta)PUT /inventory/{variant_id}/product(Beta)DELETE /inventory/{variant_id}/product(Beta)Breaking changes
None. Purely additive.
README
No README changes needed.