Stockpool documentation1.x
Developers

REST API and CSV export

Read and change pools from an ERP, POS or stock system, export them as CSV, and be told when stock changes.

REST API

Namespace stockpool/v1. Requests need a user with the manage_woocommerce capability (shop managers and administrators). WooCommerce REST API keys work too: create one under WooCommerce → Settings → Advanced → REST API and use it like for WooCommerce's own endpoints.

Request Does
GET /wp-json/stockpool/v1/pools lists pools; search, sku, per_page (up to 500), page; totals in X-WP-Total and X-WP-TotalPages
POST /pools creates a pool: name (required), sku, stock, unit, low_stock, backorders (no, notify, yes), enabled
GET /pools/{id} one pool, plus products: every product using it, with qty_per_unit and stock_status
PUT /pools/{id} changes the same fields; stock sets an exact count, logged as REST API
DELETE /pools/{id} deletes the pool and its history
POST /pools/{id}/adjust change (e.g. -2.5) adds or removes, or stock sets an exact count; optional note
GET /pools/{id}/history the stock history, newest first: change, stock_after, reason, order_id, note, user_id, date_gmt

Each pool comes back with id, name, sku, unit, stock, low_stock, backorders, enabled and state (ok, low or out).

# A delivery of 25 m, from a stock system.
curl -X POST https://example.com/wp-json/stockpool/v1/pools/12/adjust \
  -u ck_xxxxxxxx:cs_xxxxxxxx \
  -d change=25 -d note="Delivery 4471"

Webhooks

The stockpool_stock_changed action fires after every stock change. It works as a WooCommerce webhook: under WooCommerce → Settings → Advanced → Webhooks, add one with the topic Action and the action stockpool_stock_changed. It sends the pool ID, the new and old stock, the reason and the order ID.

CSV export

Export CSV on Products → Shared stock downloads every pool with the columns id, name, sku, stock, unit, low_stock, backorders, enabled. The file opens in Excel, Numbers or Google Sheets; it starts with a byte order mark so accents survive, and names that a spreadsheet would treat as a formula (starting with =, +, - or @) start with an apostrophe.