Aktualizacja produktów
🛡
To API jest zabezpieczone — w requestach w nagłówku
Authorization należy przekazać token dostępowy.Aktualizacja produktów przez API
Przykładowy request aktualizacji produktów:
POST https://feeder.backend.adshero.io/v1/public/product HTTP/2
Content-Type: application/json
{
"entries": [
{
"batchId": "1",
"method": "UPSERT",
"product": {
"id": "549795f4abe49940801b381b",
"title": "Pillow",
"link": "http://shop-url/link-to-pillow",
"price": 12.23,
"isAvailable": true,
"brand": "Brand Name",
"feedId": "17f4ca82-f4a4-4f3a-8372-64fb250e564v",
"imageLink": "https://image-source/pillow.jpg",
"salePrice": 54.12,
"gtin": "3332221112332",
"googleProductCategory": "6565",
"mpn": "7656",
"productType": "Pillow",
"shipping": [
{
"country": "PL",
"region": "Interan region",
"price": "10.99 PLN",
"minHandlingTime": "5 days",
"maxHandlingTime": "12 days",
"minTransitTime": "5 days",
"maxTransitTime": "15 days",
}
],
"unitPricingMeasure": "2.5 kg",
"adult": true,
"energyEfficiencyClass": "A+++",
"ageGroup": "",
"color": "black",
"gender": "male",
"material": "Leather",
"pattern": "striped",
"size": "XS",
"productDetails": [
{
"sectionName": "Pillow additional attributes",
"attributeName": "size",
"attributeValue" "12x43"
}
],
"externalSellerId": "341",
"externalSellerName": "Seller name",
"deepLink": "http://produkt-link.png"
}
}
]
}curl -X 'POST' \
'https://feeder.backend.adshero.io/v1/public/product' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"entries": [
{
"batchId": "1",
"method": "UPSERT",
"product": {
"id": "549795f4abe49940801b381b",
"title": "Pillow",
"link": "http://shop-url/link-to-pillow",
"price": 12.23,
"isAvailable": true,
"brand": "Brand Name",
"feedId": "17f4ca82-f4a4-4f3a-8372-64fb250e564v",
"imageLink": "https://image-source/pillow.jpg",
"salePrice": 54.12,
"gtin": "3332221112332",
"googleProductCategory": "6565",
"mpn": "7656",
"productType": "Pillow",
"shipping": [
{
"country": "PL",
"region": "Interan region",
"price": "10.99 PLN",
"minHandlingTime": "5 days",
"maxHandlingTime": "12 days",
"minTransitTime": "5 days",
"maxTransitTime": "15 days",
}
],
"unitPricingMeasure": "2.5 kg",
"adult": true,
"energyEfficiencyClass": "A+++",
"ageGroup": "12+",
"color": "black",
"gender": "male",
"material": "Leather",
"pattern": "striped",
"size": "XS",
"productDetails": [
{
"sectionName": "Pillow additional attributes",
"attributeName": "size",
"attributeValue" "12x43"
}
],
"externalSellerId": "341",
"externalSellerName": "Seller name",
"deepLink": "http://produkt-link.png"
}
}
]
}'W odpowiedzi dostaniemy:
HTTP/2 202 ACCEPTEDZnaczenie pól:
entries: Lista produktów do aktualizacji (maksymalna, dopuszczalna ilość produktów to 10000 w jednym requeście)batchId: Unikalne id w ramach requestu (techniczny identyfikator grupy produktów)method: Sposób aktualizacji produktów. Dopszuczalne wartości to: UPSERT (tworzy lub aktualizuje produkt jeśli istnieje) oraz DELETEproduct: Produkt do aktualizacji
Pola produktu (Atrybuty wymagane i opcjonalne dla produktów):
id: Unikalny identyfikator produktu (g:id)productId: Identyfikator produktu w bazie sklepu do użytku, gdy wiele produktów w feedzie (ofert) odpowiada jednemu produktowi w sklepie (ah:productId)title: Nazwa produktu (g:title)description: Opis produktu (g:description)link: Link do produktu w sklepie (g:link)price: Cena produktu (g:price)isAvailable: Dostępność produktu (g:availability)brand: Nazwa marki Twojego produktu (g:brand)feedId: Unikalny identyfikator feeda (wewnętrzny identyfikator feeda w bazie Adshero)imageLink: URL do głównego obrazka produktu (g:image_link)salePrice: Cena promocyjna produktu (g:sale_price)gtin: Globalny Numer Jednostki Handlowej (GTIN) Twojego produktu (g:gtin)googleProductCategory: Zdefiniowana przez Google kategoria Twojego produktu (g:google_product_category)mpn: Unikalny numer identyfikujący produkt (g:MPN)productType: Kategoria produktu, którą definiujesz dla swojego produktu (g:product_type)shipping: Koszt i czas dostawy produktów oraz kraje, do których wysyłasz produkty (g:shipping)country: Krajregion: Regionprice: CenaminHandlingTime: Minimalny czas obsługi zamówieniamaxHandlingTime: Maksymalny czas obsługi zamówieniaminTransitTime: Minimalny czas przewozumaxTransitTime: Maksymalny czas przewozu
unitPricingMeasure: Miara ceny jednostkowej (g:unit_pricing_measure)adult: Atrybut określa, czy produkt jest przeznaczony dla osób dorosłych (g:adult)energyEfficiencyClass: Klasa efektywności energetycznej (g:energy_efficiency_class)ageGroup: Grupa wiekowa określająca grupę demograficzną, dla której jest produkt (g:age_group)color: Kolor Twojego produktu (g:color)gender: Płeć, dla której jest przeznaczony produkt (g:gender)material: Materiał z jakiego jest wykonany produkt (g:material)pattern: Wzór lub nadruk graficzny produktu (g:pattern)size: Rozmiar produktu (g:size)productDetails: Dane techniczne lub dodatkowe szczegóły produktu (g:product_detail)sectionName: Nazwa sekcji dodatkowych atrybutów produktuattributeName: Nazwa atrybutu produktuattributeValue: Wartość atrybutu produktu
externalSellerId: Zewnętrzne ID sprzedawcy (g:external_seller_id)externalSellerName: Zewnętrzna nazwa sprzedawcy (ah:external_seller_name)deepLink: Link do produktu w aplikacji mobilnej (g:deep_link)certification: Certyfikaty produktu, zgodność z przepisami lub standardy branżowe (g:certification)certificationAuthority: Nazwa organu wydającego certyfikatcertificationName: Nazwa certyfikatucertificationCode: Unikalny kod lub identyfikator certyfikatucertificationValue: Wartość lub poziom certyfikatu
itemGroupId: Identyfikator grupy używany do łączenia wariantów tego samego produktu (g:item_group_id)labels: Niestandardowe etykiety, które można wykorzystać do własnego grupowania produktów lub zarządzania kampaniami (ah:labels)condition: Atrybut służący do poinformowania potencjalnych klientów o stanie sprzedawanego produktu (g:condition)
Walidacja produktów
Maksymalna ilość produktów możliwa do aktualizacji w jednym zapytaniu to 10000.
Przy podanej metodzie UPSERT wymagane pola to:
feedIdidtitlepriceisAvailablelinkimageLink
Dla metody (DELETE) wymagane pola to:
feedIdid
Deduplikacja produktów w trakcie emisji
Mechanizm deduplikacji zapewnia unikalność produktów w trakcie emisji reklam (w ramach jednego zapytania o reklamy). Produkty feeda mają 4 pola, które są lub mogą być wykorzystywane do deduplikacji:
itemGroupIdproductIdgtinid
Pola sprawdzane są w kolejności jak wyżej tzn. jeżeli itemGroupId nie jest puste - to to pole będzie kluczem deduplikacji.
Jeżeli jest puste - to sprawdzane jest kolejne pole, czyli productId itd.