Přejít na hlavní obsah
GET
/
catalog
/
changes
const lasso = new LassoClient({ apiKey: 'lasso_...' });

// Počáteční synchronizace
let result = await lasso.catalog.changes({ since: '2026-05-01T00:00:00Z' });
let allProducts = result.products;

// Projít všechny změny
while (result.has_more) {
  result = await lasso.catalog.changes({
    since: '2026-05-01T00:00:00Z',
    cursor: result.next_cursor,
  });
  allProducts.push(...result.products);
}

// Uložit sync_timestamp pro další cyklus
const nextSince = result.sync_timestamp;
{
  "products": [
    {
      "id": "a1b2c3d4-...",
      "schema_id": "e5f6a7b8-...",
      "source": "manual",
      "status": "active",
      "attributes": {
        "title": "Premium Widget",
        "sku": "WDG-001",
        "description": "A beautifully crafted premium widget...",
        "price": 29.99
      },
      "created_at": "2026-05-01T12:00:00Z",
      "updated_at": "2026-05-27T09:15:00Z"
    }
  ],
  "next_cursor": "eyJ1cGRhdGVkX2F0IjoiMjAyNi0wNS0yN1QwOToxNTowMFoiLCJpZCI6ImExYjJjM2Q0LSJ9",
  "has_more": true,
  "sync_timestamp": "2026-05-27T12:00:00Z"
}
Vrací produkty seřazené podle updated_at vzestupně, filtrované pouze na produkty aktualizované po zadaném časovém razítku. Navrženo pro inkrementální synchronizaci — volejte periodicky s sync_timestamp z předchozí odpovědi pro získání pouze nových změn.
since
string
povinné
Časové razítko ISO 8601. Vráceny budou pouze produkty aktualizované po tomto čase.
page_size
integer
výchozí:"100"
Počet produktů na stránku (1-200).
cursor
string
Kurzor pro stránkování. Použijte next_cursor z předchozí odpovědi.
schema_id
string
Volitelné filtrování podle konkrétního schématu katalogu.
status
string
Volitelné filtrování podle stavu produktu (draft, active, archived).
products
array
Pole produktů aktualizovaných po časovém razítku since, seřazených od nejstaršího.
next_cursor
string
Kurzor pro další stránku. null pokud nejsou další výsledky.
has_more
boolean
Zda existují další stránky k načtení.
sync_timestamp
string
Časové razítko serveru při zahájení dotazu. Uložte jej a předejte jako since při dalším synchronizačním cyklu, aby nedošlo k vynechání žádných změn.
Vždy ukládejte sync_timestamp z první stránky synchronizačního cyklu a použijte jej pro další cyklus. Nepoužívejte časová razítka z následujících stránek, protože mezi stránkami mohou nastat nové změny.
const lasso = new LassoClient({ apiKey: 'lasso_...' });

// Počáteční synchronizace
let result = await lasso.catalog.changes({ since: '2026-05-01T00:00:00Z' });
let allProducts = result.products;

// Projít všechny změny
while (result.has_more) {
  result = await lasso.catalog.changes({
    since: '2026-05-01T00:00:00Z',
    cursor: result.next_cursor,
  });
  allProducts.push(...result.products);
}

// Uložit sync_timestamp pro další cyklus
const nextSince = result.sync_timestamp;
{
  "products": [
    {
      "id": "a1b2c3d4-...",
      "schema_id": "e5f6a7b8-...",
      "source": "manual",
      "status": "active",
      "attributes": {
        "title": "Premium Widget",
        "sku": "WDG-001",
        "description": "A beautifully crafted premium widget...",
        "price": 29.99
      },
      "created_at": "2026-05-01T12:00:00Z",
      "updated_at": "2026-05-27T09:15:00Z"
    }
  ],
  "next_cursor": "eyJ1cGRhdGVkX2F0IjoiMjAyNi0wNS0yN1QwOToxNTowMFoiLCJpZCI6ImExYjJjM2Q0LSJ9",
  "has_more": true,
  "sync_timestamp": "2026-05-27T12:00:00Z"
}