mcpField
W
woocommerce-store-api

woocommerce-store-api

github.com/woocommerceDevelopment10.6k232 installsUpdated today
Repository

About woocommerce-store-api

woocommerce-store-api is a skill for developers working on WooCommerce's public Store API at `/wc/store/v1/*`. It covers route design, authentication, schemas, variation handling, and performance considerations distinct from the admin REST API.

Key features

  1. 01Store API route conventions
  2. 02Authentication and nonce guidance
  3. 03Public response schema design
  4. 04Variation reconciliation
  5. 05Response cache priming guidance

Use cases

  1. 01Adding a Store API route
  2. 02Changing a route's response or arguments
  3. 03Designing frontend-facing resource schemas
  4. 04Connecting a block to a Store API endpoint

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/woocommerce/woocommerce --skill woocommerce-store-api

After installing, type/woocommerce-store-apiin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

authentication.md
performance.md
rest-conventions.md
schema-design.md
variation-handling.md

Details

From the project README

WooCommerce Store API

The Store API is the public REST surface used by Woo blocks (Cart, Checkout, Mini-Cart) and external integrations. It lives under /wc/store/v1/* and has its own conventions distinct from the older /wc/v3/* admin REST API.

When to use this skill

  • Adding a new route under /wc/store/v1/.
  • Modifying an existing route's response shape, status codes, or argument schema.
  • Designing the schema for a new resource the frontend will consume.
  • Wiring a block (or iAPI store) to a Store API endpoint.

This skill complements woocommerce-backend-dev (general PHP conventions) and woocommerce-performance (cache priming patterns). Read those first for general conventions; this skill covers Store-API-specific decisions.

Topics

  • authentication.md — permission_callback styles, nonce enforcement via AbstractCartRoute, when to extend which abstract.
  • rest-conventions.md — Path/body/query separation, collection vs item vs action routes, status codes, idempotency.
  • schema-design.md — Schema as public contract, field discipline, response-shape alignment.
  • variation-handling.md — Server-authoritative variation reconciliation.
  • performance.md — Where to apply cache priming in Store API responses. Cross-links to woocommerce-performance for the underlying patterns.

Key principles

  • Schemas are the public contract. What the schema declares must be what the route returns. Don't bolt fields onto a response after the schema produced it.
  • Pick the right abstract. Routes that mutate per-user state via cookies must extend AbstractCartRoute (which enforces nonces) or implement equivalent CSRF protection. AbstractRoute alone is for read-only or own-auth routes.
  • GET is safe. No side effects, no body. Auto-create-on-read is allowed only as in-memory materialisation; persist on the first explicit write.
  • Server is authoritative on identity. Don't trust client-supplied attribute payloads for variations; derive them from the variation product.
  • Don't ship dead fields. Schema properties that have only one possible value forever, or that mirror data already exposed elsewhere, are public-API surface that's easier to add later than to retract.

Reference files

  • Authentication.php — global Store API auth filter; deliberately bypasses WP's cookie-nonce check.
  • AbstractCartRoute.php — nonce enforcement, cart-session loading, Nonce/Cart-Token response headers.
  • AbstractRoute.php — base class for routes that don't need cart-session/nonce machinery.
  • AbstractSchema.php — prepare_html_response(), prepare_money_response(), response-formatting helpers.
  • CartItems.php — canonical example of collection-style POST/DELETE routes.
  • CartController.php — variation reconciliation reference (parse_variation_data()).

Comments

Markdown supported