Wstęp
Integracja sklepu z branży elektronicznej z porównywarką cen Elecena możliwa jest na dwa sposoby:
- Bot eleceny CenoBot umożliwia regularne skanowanie oferty sklepu internetowego, na zasadach podobnych do działania robotów / pająków internetowych.
-
Możliwa jest także aktualizacja oferty poprzez specjalny plik udostępniany przez sklep na swoim serwerze. Nasze oprogramowanie będzie pobierało taki specjalny plik w godzinach nocnych i dokonywało stosownych zmian / uzupełnień w bazie produktów Eleceny.
Poniżej znajdują się szczegóły techniczne przydatne przy implementacji drugiej z wymienionych metod.
Ogólna struktura pliku
Formatem udostępniania oferty sklepu jest JSON (JavaScript Object Notation) wspierany przez większość obecnie stosowanych języków programowania.
Plik powinien być dostępny poprzez protokół HTTP oraz używać zestawu znaków UTF-8. Jego adres URL należy podać w momencie zgłaszania chęci dołączenia do Eleceny.
Dane mogą być generowane w momencie wysłania zapytania do serwera przez nasze oprogramowanie, bądź też generowane regularnie i zapisywane do statycznego pliku.
Plik składa się z dwóch części:
- nagłówka (koperty)
- listy produktów stanowiących ofertę sklepu
Format wartości
Udostępniany plik zawiera tablicę asocjacyjną zakodowaną w formacie JSON:
- wielkości liczbowe zapisane powinny być w formacie: (część całkowita).(część ułamkowa)
- wielkości odnoszące się do dat zapisane powinny być w formacie : yyyy-mm-dd hh:mm:ss
- znaki Unicode powinny zostać zapisane zgodnie z wytycznymi formatu JSON
Nagłówek
Przykładowy nagłówek prezentuje się następująco:
"envelope": {
"shop": "demo",
"products": 50,
"generated": "2009-01-06 20:09:49",
"generator": "elecena.pl demo script v1.0",
"trackback": "http:\/\/foo.bar.pl\/elecena?pingback=1"
}
Zawiera on następujące informacje:
- shop: nazwa sklepu
- products: liczba produktów znajdujących się w danym pliku
- generated: data wygenerowania pliku
- generator: nazwa oprogramowania, które wygenerowało plik
- trackback: adres, na który bot zgłosi wynik przeparsowania pliku - czytaj dalej (opcjonalny parametr)
Lista produktów
"products": [
{
"id": "0.5W 10V",
"name": "0.5W 10V",
"description": "Dioda Zenera 0.5W 10V SOD27",
"price": "0.12",
"multiply": "1",
"min_amount": "10",
"currency": "PLN",
"url": "http:\/\/www.tme.eu\/pl\/katalog\/#cleanParameters%3D1%26search%3D0.5W+10V%26bf_szukaj%3D+",
"img": "http:\/\/tme.pl\/katalog_pics\/e\/8\/2\/e821286f9acec3731b53b08719f1f501\/0.5w 10v.jpg",
"added": "2006-10-07 22:26:19",
"updated": "2008-11-15 08:27:04",
"extra": {
"rohs": 1
}
},
...
]
Przykładowy wpis na liście zawiera następujące informacje:
- id: unikalny w obrębie danego sklepu identyfikator produktu
- name: nazwa produktu
- description: opis produktu (może zawierać tagi HTML, maksymalny rozmiar to 4 kB)
- price: cena brutto produktu za multiply jednostek
- multiply: liczba jednostek produktu, których dotyczy cena
- min_amount: minimalna liczba jednostek produktu dostępna przy zakupie
- currency: waluta, w której wyrażona jest cena (dostępne wartości: PLN, USD, EUR)
- url: adres URL strony opisowej produktu w sklepie internetowym
- img: adres URL obrazka w oryginalnych wymiarach (opcjonalny parametr)
- added: data dodania produktu do oferty sklepu
- updated: data aktualizacji produktu: zmiany ceny, opisu, zdjęcia (opcjonalny parametr)
- extra: tablica asocjacyjna zawierająca dodatkowe klucze o wartości 1 (opcjonalny parametr):
- rohs: produkt jest zgodny z dyrektywą RoHS
- sample: produkt jest bezpłatną próbką udostępnianą przez producenta
- promo: produkt objęty jest promocją
- sale: produkt objęty jest wyprzedażą
- auction: produkt dostępny jest w serwisie aukcyjnym
Trackback
Opcjonalny parametr nagłówka trackback umożliwia wysłanie zapytania HTTP na podany adres URL z wynikiem parsowania pliku. W tym celu zostaje do zapytania dodany specjalny nagłówek X-Elecena-Parse-Result o wartości:
- ok: poprawne przeparsowanie pliku i zaktualizowanie oferty w bazie Eleceny
- err: błąd parsowania pliku (brak wymaganego pola lub zły format wartości)
Przykładowe pliki