Catalog Upload Testing
- Catalog Upload API Test Cases
- 1. Invalid Store ID (400 Error)
- 2. Mixed Retailer Store IDs (400 Error)
- 3. Mixed Valid/Invalid Store IDs (400 Error)
- 4. Invalid Request Body (400 Error)
- 5. Missing Required Fields (400 Error)
- 6. Exceed Item Threshold (400 Error)
- 7.Field Length Validation (400 Error)
- 8. Rate Limiting (429 Error)
- 9. Server Error - Retry Recommended (500 Error)
- 10.Server Error - No Retry (500 Error)
- Test Execution Notes
- Expected Results
Catalog Upload API Test Cases
1. Invalid Store ID (400 Error)
Objective: Trigger "One or more StoreID's present in the request is incorrect"
{
"catalogItems": [
{
"item_sku": "TEST-001",
"external_product_id": "123456789012",
"external_product_id_type": "UPC",
"item_name": "Test Product",
"store_id": "INVALID_STORE_ID",
"standard_price": "9.99"
}
]
}
2. Mixed Retailer Store IDs (400 Error)
Objective: Trigger "List of store ID's present in the request are either incorrect/not associated with same retailer"
{
"catalogItems": [
{
"item_sku": "TEST-001",
"store_id": "RETAILER_A_STORE",
"item_name": "Product A",
"external_product_id": "123456789012"
},
{
"item_sku": "TEST-002",
"store_id": "RETAILER_B_STORE",
"item_name": "Product B",
"external_product_id": "123456789013"
}
]
}
3. Mixed Valid/Invalid Store IDs (400 Error)
Objective: Trigger "List of store ID's present in the request are either incorrect/not associated with same retailer"
{
"catalogItems": [
{
"item_sku": "TEST-001",
"store_id": "VALID_STORE_ID",
"item_name": "Valid Product",
"external_product_id": "123456789012"
},
{
"item_sku": "TEST-002",
"store_id": "INVALID_STORE_ID",
"item_name": "Invalid Product",
"external_product_id": "123456789013"
}
]
}
4. Invalid Request Body (400 Error)
Objective: Trigger "Invalid request body"
{
"invalidField": "invalid_data"
}
5. Missing Required Fields (400 Error)
Objective: Trigger "Invalid request body"
{
"catalogItems": [
{
"item_sku": "TEST-001"
// Missing required fields: item_name, store_id, external_product_id
}
]
}
6. Exceed Item Threshold (400 Error)
Objective: Trigger "Invalid request body" for exceeding catalog list length
{
"catalogItems": [
// Include more than 10,000 items to exceed threshold
// Generate programmatically for actual testing
]
}
7.Field Length Validation (400 Error)
Objective: Trigger validation errors for field length limits
{
"catalogItems": [
{
"item_sku": "A".repeat(256), // Exceeds 255 character limit
"external_product_id": "B".repeat(256), // Exceeds 255 character limit
"item_name": "C".repeat(256), // Exceeds 255 character limit
"store_id": "VALID_STORE_ID",
"standard_price": "12345678901" // Exceeds 10 character limit
}
]
}
8. Rate Limiting (429 Error)
Objective: Trigger "Too Many Requests"
Test Method: Send more than 10 requests per second to the API endpoint
9. Server Error - Retry Recommended (500 Error)
Objective: Trigger "Exception encountered while processing the request, please retry again."
Test Method: This is typically triggered by temporary server issues. Can be simulated by:
- Sending requests during maintenance windows
- Using malformed but syntactically valid JSON that causes processing errors
10.Server Error - No Retry (500 Error)
Objective: Trigger "Exception encountered while processing the request"
Test Method: This is triggered by permanent server-side issues. Difficult to simulate in testing environment.
Test Execution Notes
- Rate Limiting Test: Use a script to send rapid consecutive requests
- Field Validation: Test each field individually with invalid lengths
- Store ID Validation: Coordinate with Amazon team to get valid/invalid store IDs for testing
- Threshold Testing: Generate large catalog files programmatically
- Server Errors: May require coordination with Amazon team to simulate server conditions
Expected Results
Each test case should return the corresponding HTTP status code and error message as documented in the upload_catalog.md specification.

