fbaInbound_generatePlacementOptions
Start generating placement options for a plan (async).
writeAmazon Seller (SP-API)sp.fulfillmentInbound_2024-03-20
Amazon SP-API · generatePlacementOptions · POST /inbound/fba/2024-03-20/inboundPlans/{inboundPlanId}/placementOptions Gate: approve — interactive: show the change (Amazon's preview first where one exists), wait for an explicit approve; autopilot: only when the seller's own words asked for this change; otherwise ask. Where this sits depends on the workflow (Amazon's guides agree on both): Box First (pack first) — call AFTER fbaInbound_setPackingInformation completes; Split First (pack later) — call straight after fbaInbound_createInboundPlan, BEFORE fbaInbound_setPackingInformation. In both, the placement option is confirmed BEFORE transportation options are confirmed. Poll until SUCCESS, then call fbaInbound_get_plan_status to list the placement options. India: plans destined to the IN marketplace REQUIRE custom_placement — Amazon refuses the call without it ("CustomPlacement details are required for inbound plans with destinations in IN"). IN also has no packing-options step (generatePackingOptions is not supported there); generate placement first, then fbaInbound_setPackingInformation.
Call it
In an AI client (MCP)
{
"name": "fbaInbound_generatePlacementOptions",
"arguments": {
"store": "myStore-US",
"plan_id": "<plan_id>"
}
}From code (Tool API)
curl -X POST https://api.sellersheetai.com/api/v1/tools/fbaInbound_generatePlacementOptions \
-H "Authorization: Bearer $SELLERSHEET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"store":"myStore-US","plan_id":"<plan_id>"}'Arguments
| Name | Type | Description |
|---|---|---|
storerequired | string | the store ref `<store>-<CC>` (name-country, e.g. 'myStore-US') — one of get_user_context's store_refs, verbatim. |
plan_idrequired | string | the inboundPlanId (from fbaInbound_createInboundPlan or fbaInbound_listInboundPlans). |
custom_placement | object[] | optional list of custom placements, REQUIRED for IN-destined plans. Each: {warehouseId (e.g. 'JPX1'), items: [{msku, quantity, labelOwner, prepOwner, expiration?, manufacturingLotCode?}]}. labelOwner/prepOwner Allowed: AMAZON | SELLER | NONE. |
Result
Every tool answers {notification, data, human_action}; data carries:
data.operationId— poll with fbaInbound_getInboundOperationStatus until SUCCESS.data.status— 'IN_PROGRESS'.
Body (Amazon schema): {customPlacement: [CustomPlacementInput]}, each item
items*: [{expiration, labelOwner*: AMAZON | SELLER | NONE, manufacturingLotCode (max 256 chars), msku* (max 255 chars), prepOwner*: AMAZON | SELLER | NONE, quantity* (1–500000)}] (1–2000)
warehouseId*: string (max 1024 chars)