noon_inbound_UpdateShipmentItems
Add items to, or change quantities on, a CREATED noon ASN — upsert by partner_sku (an existing SKU's qty is overwritten), at most 1000 per call; then SEAL it with noon_inbound_Upda
destructivenoonnoon
teShipmentStatus. Items cannot change after sealing. noon API · AsnService_UpdateShipmentItems · POST /fbn/inbound/v1/shipment/items/update Docs: https://noon-docs.noonpartners.dev/docs/api-reference/inbound/asn-service-update-shipment-items Gate: approve — interactive: show the change (noon'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.
Call it
In an AI client (MCP)
{
"name": "noon_inbound_UpdateShipmentItems",
"arguments": {
"store": "myStore-US",
"asn_nr": "<asn_nr>"
}
}From code (Tool API)
curl -X POST https://api.sellersheetai.com/api/v1/tools/noon_inbound_UpdateShipmentItems \
-H "Authorization: Bearer $SELLERSHEET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"store":"myStore-US","asn_nr":"<asn_nr>"}'Arguments
| Name | Type | Description |
|---|---|---|
storerequired | string | the noon account ref `<account>-<CC>` (name-country, e.g. 'myNoon-AE') — one of get_user_context's noon store_refs, verbatim. |
asn_nrrequired | string | the noon ASN number (from noon_inbound_ListShipments). Right after noon_inbound_CreateShipment it is data.shipment.asn_nr. |
items | object[] | the lines (required) — partner_sku, qty (units) and storage_type: the full value (e.g. STORAGE_TYPE_STANDARD), sent verbatim — copy it from noon_inbound_ListEligibleItems. |
Result
Every tool answers {notification, data, human_action}; data carries:
data.shipment— the refreshed ASN header (as noon_inbound_GetShipment) — expected_qty and total_sku_count reflect the upsert; noon returns no per-item status.
Body (noon schema)
asn_nr*: string
items*: [{partner_sku*, qty*, storage_type*}]
items.storage_type: STORAGE_TYPE_UNSPECIFIED | STORAGE_TYPE_STANDARD | STORAGE_TYPE_OVERSIZE | STORAGE_TYPE_BULKY