Distributor demo storefront, built on the PIMento API Sign in

Parts

Showing 1–4 of 4
API reads behind this page 4 over the wire, 4 from cache · 55 ms total
Method Path Source Status Time
GET /v2/slugs/Parts network 200 16 ms
GET /v2/categories/105 network 200 8 ms
GET /categories/100 cache 5m — —
GET /products?$filter=requireLogin eq true&$select=productId cache 1m — —
GET /v2/categories/105/subcategories network 204 8 ms
GET /v2/categories/105/products?$top=24&$skip=0 network 200 23 ms
GET /categories cache 15m — —

204 and 404 both mean “no rows” on this API — which of the two an endpoint uses is per-endpoint, and the client maps both to an empty result rather than an error. Collections come wrapped in an OData envelope and are capped at 100 rows per page.

Rows marked cache were answered from memory, and the time beside each is how long that kind of read is held; one marked asked twice is something this page had already read while rendering, so it cost nothing either way. Catalog reads are cached by rate of change rather than on one site-wide timer:

Pricing and stock are read live on every view — there is no setting that caches them. That is why a warm product page still makes exactly one request: everything else on it came from memory.

The catalog can also drop all of it at once rather than waiting for a tier to lapse, by calling POST /hooks/cache when it publishes.