Added

v1.1.0

🚀 New Endpoints

To support high-volume inventory synchronization and consistent data retrieval, the following endpoints were added:

  • Products for Inventory Sync (POST /v1/integrations/products/search): A new endpoint designed for product synchronization, mainly based on the time of last inventory on hand update. It allows searching with filters and returns a cursor that fixes the result set ensure reliability during synchronization.
  • Fetch results from Products for Inventory Sync (GET /v1/integrations/products/search/paginate): A companion endpoint used to iterate through the results of the initial search using the provided cursor.

💡 Usage Example

Here's an example of how to use the new product search endpoints for inventory synchronization:

Step 1: Create a search with filters

POST /v1/integrations/products/search
{
  "filters": {
    "inventory_on_hand_last_updated_at": {
      "is_after_or_equal": "2025-01-01T00:00:00Z",
      "is_before_or_equal": "2025-01-31T23:59:59Z"
    },
    "search": "chair",
  },
  "sort": {
    "sort_by": "inventory_on_hand_last_updated_at",
    "order_by": "DESC"
  }
}

Response:
{
  "cursor": "eyJmaWx0ZXJzIjp7fSwic29ydCI6e319...",
  "total": 150
}

Step 2: Paginate through results

GET /v1/integrations/products/search/paginate?cursor=eyJmaWx0ZXJzIjp7fSwic29ydCI6e319...&pageSize=50

Response:
{
  "data": [
    { "id": 123, "name": "Office Chair", ... },
    { "id": 124, "name": "Gaming Chair", ... },
    ...
  ],
  "total": 150,
  "next_cursor": "eyJmaWx0ZXJzIjp7fSwic29ydCI6e320..." // Use for next page, or null if no more results
}

Step 3: Continue pagination

GET /v1/integrations/products/search/paginate?cursor=eyJmaWx0ZXJzIjp7fSwic29ydCI6e320...&pageSize=50

// Repeat until next_cursor is null

🛠 Schema & Property Updates

Product Data Models

  • inventory_on_hand_last_updated_at: Added this field to ProductListOutput. It tracks the latest update to physical inventory (e.g., from receiving or packing) and is used as a filter in the new search functionality.

📖 Documentation & Constraints Changes

  • GET /v1/products (Retrieve List of Products): Added a disclaimer that this endpoint does not guarantee a consistent result set between paginated calls. Users are encouraged to use the new /integrations/products/search for reliable syncs.
  • Search Filters: Documentation for product searching now specifies that searching for SKUs and names allows for substring matches, while barcodes require an exact match.