as

Settings
Sign out
Notifications
Alexa
Amazon Appstore
AWS
Documentation
Support
Contact Us
My Cases
Docs
Resources
Ecommerce Plug-ins
Publish
Connect

Catalog Upload Testing

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

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

  1. Rate Limiting Test: Use a script to send rapid consecutive requests
  2. Field Validation: Test each field individually with invalid lengths
  3. Store ID Validation: Coordinate with Amazon team to get valid/invalid store IDs for testing
  4. Threshold Testing: Generate large catalog files programmatically
  5. 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.