List WFS Replenishment Suggestions
GET/api/walmart/:id/wfs/replenishment
Replenishment grid as a full-featured, server-side list view: one row per WFS SKU with its WFS position (available/inbound summed across ship nodes), demand velocity (units/day from matched-product sales over the velocity window), and the suggested quantity to send (velocity x coverage horizon - net WFS position, case-pack rounded). Supports search, advanced filter_groups, sorting, and pagination — all applied server-side over the computed columns. Returns a Laravel LengthAwarePaginator. Requires a Bearer token.
This endpoint currently requires session authentication; Personal Access Token scope support is in progress.
Velocity is measured the same way as the send planner's WFS column: WFS demand only (lines fulfilled from the WFS warehouse, or WFS-fulfilled Walmart orders when no WFS warehouse is linked), over the same window, adjusted for stock-outs from the same stock history, so the two never disagree. When a WFS warehouse is linked, wfs_available / wfs_inbound come from the planner's WFS snapshot.
Row fields:
- velocity_raw: units/day before the stock-out adjustment. velocity_per_day: the velocity used.
- velocity_status: applied | capped | insufficient_data | none — how the stock-out adjustment was applied.
- velocity_source: node_orders (orders fulfilled from the WFS warehouse) | channel_fallback (WFS-fulfilled Walmart orders) | network.
- velocity_window_days and velocity_window_source (which settings set the window, e.g. "WFS replenishment settings" or "Send planner settings").
- velocity_basis: a readable description of what was counted.
- in_stock_days / stockout_days: days in the window the SKU was in stock / out of stock at WFS (null when unknown).
- open_drafts: units already in open inbound drafts, subtracted from the suggestion.
- case_pack_qty: the case pack the suggestion rounds to.
- walmart_suggested_units: Walmart's own restock recommendation for the SKU (null when Walmart has none).
- suggested_quantity: velocity x (target days + lead time + buffer) - (available + inbound + open drafts), case-pack rounded.
Request
Responses
- 200
- 401
- 403
- 404
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Not found — no record with the given identifier (or the route does not exist). Verify the ID before retrying.
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.