Requires
write_product
access scope. More access scope
The Batch Create Procurement Items API allows the bulk addition of procurement items to a procurement record. This API is useful for adding multiple products and their variants in a single request to streamline the procurement process.This API is especially useful for:
- Adding multiple items to a procurement record in a single operation.
- Managing procurement workflows with large datasets.
- Reducing manual input for procurement item creation.
Note: The operation is scoped to a specific shop, identified by its unique domain prefix (shopdomain
), ensuring all updates are applied to the correct store.
Public Request Parameters
Parameter Name | Type | Required | Parameter Location | Parameter Value | Description |
---|---|---|---|---|---|
Access-Token | String | Yes | Header | Bx-_5aV eXNwl-4AB98s5xLV yg0fNzGf MuTpqtlBA | Used to authenticate API requests. Obtain an access token from the Access Token Guide. Pass it in the Authorization header for every request. |
Content-Type | String | Yes | Header | application /json | Indicates the media type of the request body. It tells the server how to parse the request and the client how to interpret the response. For more details, visit Content-Type. |
Public Response Parameters
Parameter Name | Type | Mandatory | Parameter Location | Example Value | Description |
---|---|---|---|---|---|
error | String | No | Response Body | { "error": "store is not active" } | Indicates an error encountered during the process. This field typically appears when the Access Token is missing or invalid. Example: { "error": "store is not active" } . |
errors | Array | No | Response Body | { "errors"["inventory not found"] } | A list of errors that occurred during the request processing. Example: { "errors": [ "No Context" ] } . |
Request-Id | String | Yes | Header | Bx-_5aV eXNwl-4AB98s5xLV yg0fNzGf MuTpqtlBA | A unique identifier for each request. It helps in identifying and debugging specific requests. |
Error and Errors Clarification:
Added explanation that the error and errors fields are currently dependent on the API implementation, with plans for future unification.
Request Parameters
Path Parameters
Parameter | Type | Required | Example | Description |
---|---|---|---|---|
id | string | Yes | "382451985837728044" | The unique identifier of the procurement record. |
Body Parameters
Parameter | Type | Required | Example | Description |
---|---|---|---|---|
items | array | Yes | See below | The array of items to be added to the procurement record. |
items.product_id | string | Yes | "382453603865993516" | The unique identifier of the product. |
items.variant_id | string | No | "5723299f-238a-4491-8b42-a187462e748a" | The unique identifier of the product variant. |
items.transfer_quantity | integer | Yes | 100 | The quantity of the item to be transferred. |
Response Explanation
Parameter | Type | Example | Description |
---|---|---|---|
fail_items | array | An array of items that failed to be added, with details of each failure. | |
fail_items.product_id | string | "382453603865993516" | The unique identifier of the product that failed. |
fail_items.variant_id | string | "5723299f-238a-4491-8b42-a187462e748a" | The unique identifier of the variant that failed. |
fail_items.error_message | string | "Invalid product ID" | A description of why the item failed to be added. |
Error Response
Error responses in the API can be represented using two different fields: errors
and error
. Both fields provide details about issues encountered during request processing. Below is an explanation of the fields with their respective examples and descriptions.
Field | Type | Example | Description |
---|---|---|---|
errors | Array | ["inventory not found"] | A list of errors encountered during the request processing. |
Field | Type | Example | Description |
---|---|---|---|
error | Array | "error": "store is not active" | Indicates an error encountered during the process. |
Request Examples
curl -X PATCH https://{shopdomain}.myshoplaza.com/openapi/2022-01/procurement/{id}/receive \
-H "Authorization: Bearer <ACCESS_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"items": [
{
"procurement_item_id": "382453603865993516",
"received_quantity": 5,
"rejected_quantity": 2,
"rejected_reason": "Damaged during shipping"
}
]
}'
Success Response Example
{
"fail_items": []
}
Error Response Example
{
"errors": [
"inventory not found"
]
}
}
{
"error": "Supplier not found"}
}
Error Details
Status Code | Message | Possible Reason | Example Response |
---|---|---|---|
400 | Bad Request | Invalid input format or request structure (e.g., missing required fields or incorrect data types). | Bad Request |
Unauthorized | The request is missing valid authentication credentials or the credentials provided are invalid. | Unauthorized | |
422 | Invalid or empty procurement_id | missing required procurement_id or procurement_id with incorrect UUID types | { "errors": [ "The procurement cannot be operated"]} |
Duplicated variant | API request contains multiple entries with the same procurement item | { "errors": [ "Duplicated variant"]} | |
404 | Inventory is not found | Providedvariant_id is not found | { "errors": [ "inventory not found"]} |
500 | Invalid or empty variant_id | missing required variant_id or variant_id with incorrect UUID types | { "errors": [ "sql: converting argument $2 type: invalid UUID length: 35" ] } |