Data Feeds
Introduktion #
Denne vejledning forklarer, hvordan du sætter dine JSON-feeds op til at synkronisere dine data med Clerk.io.
> Hvis du bruger en af vores understøttet platform, behøver du ikke at opsætte et JSON-feed.
Vores ældre JSON-feed understøttes stadig, men vi anbefaler at bruge det nye JSON-feed til nye integrationer.
Det nye JSON-feed gør det nemmere og mere effektivt for dig at synkronisere dine data med Clerk.io.
Det sker ved, at du kan synkronisere dine data i separate filer/slutpunkter.
Og ved at understøtte paginering og trinvise opdateringer for store datasæt.
Opsætning #
For at komme i gang skal du gå til my.clerk.io og klikke på “Data” i menuen til venstre.
Rul ned til “Data Sync Settings”, og vælg “Clerk.io JSON Feed V2” fra rullemenuen Sync Method i øverste højre hjørne.
Indsæt URL’erne til dine JSON-feeds for dine produkter, kategorier, ordrer, kunder og sider i Data Sync Settings.. Se her for at se, hvordan du organiserer JSON-feeds for hver enhed.
Vi understøtter content-type
: application/x-ndjson
eller application/json
.
Sikkerhed #
> ⚠️ Din skal holdes sikker, så de slutpunkter, du implementerer, skal kræve godkendelse, før de implementeres! > > Af denne grund er HTTPS påtvunget på alle URL’er.
Vi anbefaler, at JSON-feedet kun accepterer en SSL-krypteret forbindelse og bruger HTTP-godkendelse, hvis det er muligt.
Når du forespørger dit slutpunkt, sender Clerk platformen en autorisationsheader på hver HTTP-anmodning, som du skal bekræfte:
X-Clerk-Authorization : Bearer THE_TOKEN
Du kan verificere tokenet med en POST-anmodning til token/verify-slutpunktet https://api.clerk.io/v2/token/verify
:
{ "token": "THE_TOKEN", "key": "your_store_public_key"}
Se vores api-dokumentation for flere detaljer
Trinvise opdateringer #
> Produkter, kategorier, kunder og sider slettes, hvis de ikke er til stede i JSON-feedet. Brug forespørgselsparameteren modified_after
til at aktivere trinvise opdateringer og beholde eksisterende data, der ikke er blevet ændret.
Se nedenfor
> Ordrer bevares altid.
Som standard vil Clerk.io slette produkter, kategorier, kunder og sider, der ikke er til stede i JSON-feedet.
Når man har store datasæt, kan det være et problem, da det kan tage lang tid at synkronisere alle data.
I dette tilfælde kan du kun sende de data, der er blevet ændret efter en given dato, hvilket kan gøres ved at bruge forespørgselsparameteren modified_after
.
Se nedenfor
Ordrer bevares altid. De kan slettes ved at sende en DELETE-forespørgsel til ordrer endpoint.
Forespørgselsparametre #
For at understøtte paginering og trinvise opdateringer af store datasæt understøtter vi følgende forespørgselsparametre:
limit={{limit}}
offset={{offset}}
modified_after={{modified_after}}
Sidernes størrelse med {{limit}}
og {{offset}}
#
Forespørgselsparameteren limit
kan bruges til at begrænse antallet af enheder, der returneres i hver anmodning.
Standardværdien er 25, og den maksimale værdi er 1000.
Når du bruger limit
-forespørgselsparameteren, skal du også bruge offset
-forespørgselsparameteren.
Når vi øger offset
med limit
, indtil der ikke returneres flere data, enten ved at returnere et tomt array eller ved et tomt svar.
Brug af modified_after
-forespørgselsparameteren
#
> Retaining fungerer kun, hvis {{modified_after}} er til stede i URL’en og en værdi i Incremental Time
.
For at bevare eksisterende data kan du bruge forespørgselsparameteren modified_after
.
{{modified_after}}
skal være til stede i URL’en samt en værdi i Incremental Time
i Datasynkroniseringsindstillinger for at dette kan træde i kraft.
Dette påvirker kun hver enkelt URL, så hvis du har flere URL’er, skal du tilføje {{modified_after}}
til hver URL.
Hvis du vil slette produkter, kategorier, kunder og sider, der ikke findes i JSON-feedet, kan du sende en DELETE-anmodning til produkter slutpunkt, Kategorier endpoint, kunder endpoint og sider endpoint.
JSON-feedets struktur #
> Vi understøtter kun attributter af typerne: int
, float
, str
, array
og bool
.
Hvert JSON-feed skal være et array af objekter, hvor hvert objekt repræsenterer en enkelt enhed (produkt, kategori, ordre, kunde eller side). Objekter i produkt-URL’en skal repræsentere produkter, objekter i kategori-URL’en skal repræsentere kategorier osv.
Hvert objekt skal indeholde de obligatoriske felter for entitetstypen og kan eventuelt indeholde ekstra attributter.
Obligatoriske felter er markeret med * i tabellerne nedenfor.__ | int/str | Produkt-ID’et, som skal være unikt for hvert produkt
name
|** | str | Produktbeskrivelsen.
price
|__### Produkter*__ | str | Den fulde URL til produktbilledet. Når det bruges til thumbnails, anbefaler vi en maksimal billedstørrelse på 200x200px.
url
|** | array | Et array af kategori-id’er, som produktet tilhører.
created_at
|JSON-feedet for produkter skal være et array af objekter, hvor hvert objekt repræsenterer et enkelt produkt. | int/str | Kategori-id’et, det skal være unikt for hver kategori.
name
|** | str | Kategoriens URL.
subcategories
|Tabel over obligatoriske og nogle eksempler på valgfrie felter for et produktobjekt: | int/str | Ordre-ID’et, dette skal være unikt for hver ordre.
products
|** | unix timestamp | Tidspunktet, hvor ordren blev afgivet som et Unix-tidsstempel.
customer
| | int/str | Kundens ID.
email
| str | Kundens e-mail. Nødvendigt for at bruge vores produkter Auto-Email og Audience.
Eksempel på JSON-feed for ordrer #
[
{
"id": 123458,
"customer": 789,
"email": "vader@the-death-star.com",
"products": [{"id":456,"quantity":1,"price":200.00}, {"id":789,"quantity":2,"price":120.00}],
"time": 1389871120
},
{
"id": 123456,
"customer": 456,
"email": "obi.wan@kenobi.me",
"products": [{"id":456,"quantity":1,"price":200.00}, {"id":789,"quantity":2,"price":120.00},{"id":123,"quantity":2,"price":60.00}],
"time": 1389870977
},
{
"id": 123457,
"customer": "",
"products": [{"id":789,"quantity":2,"price":120.00}],
"time": 1389871090
}
]
Kunder #
JSON-feedet for Customers skal være et array af objekter, hvor hvert objekt repræsenterer en enkelt kunde.
Tabel over obligatoriske og nogle eksempler på valgfrie felter for et kundeobjekt:
Attribut | Required | Type | Description |
---|---|---|---|
id | Attribut | str | Kundens fulde navn. |
email | __*:—- | :—-: | :—-: |
zip | str | Kundens postnummer. | |
gender | str | Kundens køn | |
age | int | Kundens alder. | |
is_b2b | bool | Boolean, der angiver, om kunden er en erhvervskunde. |
Eksempel på JSON-feed for kunder #
[
{
"id": 135,
"name": "Luke Skywalker",
"email": "luke@rebels.org",
"subscribed": true,
"gender": "male",
"zip": "1134",
"is_b2b": "false"
},
{
"id": 165,
"name": "Darth Vader",
"email": "vader@empire.com",
"subscribed": false,
"gender": "male",
"age": 45,
"interests": ["lightsaber", "force"],
"is_b2b": true
}
]
Sider #
JSON-feedet for Pages skal være et array af objekter, hvor hvert objekt repræsenterer en enkelt side.
Tabel over obligatoriske og nogle eksempler på valgfrie felter for et sideobjekt:
Attribut | Required | Type | Description |
---|---|---|---|
id | __* | * | str |
url | * | str | Produktets navn.*__ |
text | * | str | Indholdets tekst. |
image | str | Den fulde URL til indholdsbilledet. |
Eksempel på JSON-feed til sider #
[
{
"id": 135,
"type": "cms",
"url": "https://galactic-empire-merch.com/imperial-goods/tatooine",
"title": "Open Hours",
"text": "The main text about our opening hours..."
},
{
"id": 1354,
"type": "blog",
"url": "https://galactic-empire-merch.com/imperial-goods/tatooine",
"title": "New Blog Post",
"text": "The main text about our opening hours...",
"keywords": ["blog", "post", "new"]
}
]
Feed på flere sprog #
>Bemærk venligst, at flersproget feed generelt ikke anbefales. Vi understøtter ikke alle funktioner, f.eks. import af sider. Vi fraråder generelt dette, fordi det er let at ødelægge indekseringen, hvis kravene ikke er opfyldt.
Eksempel på JSON-feed for produkter #
[
{
"id": 135,
"name": {"english":"Lightsaber","spanish":"Sable de luz", "italian":"Spada laser"},
"description": {"english":"Antique Rebel Lightsaber","spanish":"Sable de luz rebelde antiguo","italian":"Antica spada laser ribelle"},
"price": 99995.95,
"image": {"english":"https://galactic-empire-merch.com/images/a-r-lightsaber.jpg","spanish":"https://galactic-empire-merch.com/es/images/a-r-lightsaber.jpg","italian":"https://galactic-empire-merch.com/it/images/a-r-lightsaber.jpg"},
"url": {"english":"https://galactic-empire-merch.com/antique-rebel-lightsaber","spanish":"https://galactic-empire-merch.com/es/antique-rebel-lightsaber","italian":"https://galactic-empire-merch.com/it/antique-rebel-lightsaber"},
"brand": "Je'daii",
"categories": [987, 654],
"created_at": 1199145600,
"color_names": ["Green","Red"],
"color_codes": ["#7CFC00","#FF3131"],
"reviews_amount": 164,
"reviews_avg": 4.8
},
{
"id": 261,
"name": {"english":"Death Star Deluxe","spanish":"Estrella de la Muerte de lujo", "italian":"La Morte Nera Deluxe"},
"description": {"english":"Death Star - Guaranteed idiot proof","spanish":"Estrella de la Muerte: a prueba de idiotas garantizada","italian":"Morte Nera - A prova di idiota garantita"},
"price": 99999999999999.95,
"image": {"english":"https://galactic-empire-merch.com/images/death-star.jpg","spanish":"https://galactic-empire-merch.com/es/images/death-star.jpg","italian":"https://galactic-empire-merch.com/it/images/death-star.jpg"},
"url": {"english":"https://galactic-empire-merch.com/death-star","spanish":"https://galactic-empire-merch.com/es/death-star","italian":"https://galactic-empire-merch.com/it/death-star"},
"brand": "Imperial Inc.",
"categories": [345678],
"created_at": 1197565600
}
]
Denne side er oversat af en hjælpsom AI, og der kan derfor være sproglige fejl. Tak for forståelsen.