Skip to main content

Update warehouse availabilities

note

brandCode, warehouseCode and the sku values are placeholders — use a real brand from brands, one of your warehouse codes, and real SKUs.

Use warehouseAvailabilitiesBulkUpdate to set the on-hand quantities of the products of one brand in one warehouse: productAvailabilities lists the sku / onHandQuantity pairs to update. The mutation accepts a WarehouseAvailabilitiesBulkUpdateInput object — its reference lists all the available fields. It returns only the availability records that changed; unchanged rows are omitted from the response.

caution

The mutation is an upsert: a sku that does not exist yet for the brand is created (product and availability record) and returned like any other row, so that a single call keeps the catalog and the stock in sync. Double-check the SKUs you send: a typo silently creates a new product instead of failing.

Request
mutation warehouseAvailabilitiesBulkUpdate {
  warehouseAvailabilitiesBulkUpdate(
    input: {
      brandCode: "BRAND_CODE"
      warehouseCode: "MIL"
      productAvailabilities: [
        {
          sku: "SKU-1"
          onHandQuantity: 12
        }
        {
          sku: "SKU-2"
          onHandQuantity: 5
        }
      ]
    }
  ) {
    id
    availableQuantity
    onHandQuantity
    onHandQuantityUpdatedAt
    reservedQuantity
    product {
      id
      sku
      brand {
        id
        code
      }
    }
    warehouse {
      id
      codes
    }
  }
}
Response
{
  "data": {
    "warehouseAvailabilitiesBulkUpdate": [
      {
        "id": "8001",
        "availableQuantity": 11,
        "onHandQuantity": 12,
        "onHandQuantityUpdatedAt": "2026-07-22T09:30:00Z",
        "reservedQuantity": 1,
        "product": {
          "id": "501",
          "sku": "SKU-1",
          "brand": {
            "id": "31",
            "code": "BRAND_CODE"
          }
        },
        "warehouse": {
          "id": "12",
          "codes": ["MIL"]
        }
      }
    ]
  },
  "extensions": {
    "queryComplexity": 15,
    "bucketBalance": 9985,
    "bucketRestoreRate": 100
  }
}

An unknown brandCode or warehouseCode is rejected with the error code NOT_FOUND (see Errors); an unknown sku is not an error, see the caution above.

Relevant permissions

The operations in this page require the following permissions on the API credentials — they are configured for you by Calicantus.

  • warehouse:mutation:warehouse_availabilities_bulk_update
  • warehouse:read
  • product:read
  • brand:read