Pobierz: CupSellAPI.zip. Archiwum zawiera klasę PHP umożliwającą łatwe korzystanie z API oraz plik z przykładem użycia klasy.
$config = array (
'api_key' => 'YOUR_API_KEY',
'private_key' => 'YOUR_PRIVATE_KEY'
);
include "CupSellAPI.php";
$api = new CupSellAPI($config);
Przypisz do kluczy api_key
i private_key
swoje własne klucze uzyskane w sklepie CupSell.
Jeżli otrzymasz komunikat o błędzie sprawdź czy tym samym folderze znajduje się plik z klasą CupSellAPI.php.
Za pomocą parametru api-test
sprawdzisz czy komunikacja z API przebiega prawidłowo.
$result = $api->request("api-test");
$result['details']['data']
zawiera następującą tabelę wartości:
klucz | typ | opis warrtości |
---|---|---|
current_timestamp | liczba | unix timestamp |
current_date_and_time | data | bieżąca data |
Poniżej przykładowe wykonanie kodu print_r($result)
:
[status] => 200
[statusText] => success
[details] => Array
(
[time] => 1400232784
[data] => Array
(
[current_timestamp] => 1400232784
[current_date_and_time] => Fri, 16 May 2014 11:33:04 +0200
)
[success] => Array
(
[message] => DATA: api_test
)
[error] =>
)
Poniżej przykładowe wykonanie kodu print_r($result)
w przypadku niepoprawnie wpisanych kluczy:
[status] => 400
[statusText] => error
[details] => Array
(
[time] => 1400234172
[data] =>
[success] =>
[error] => Array
(
[code] => 400
[cupsell_code] => 402
[type] => REQUEST ERROR
[message] => Request invalid: additional params errors
)
)
Jeżli otrzymasz komunikat o błędzie sprawdź jeszcze raz czy dobrze przepisałeś klucze.
Za pomocą parametru shop
oraz zmiennej tablicowej $params
założysz nowy sklep.
$result = $api->request("shop", array('post' => $params));
Zmienna $params
przyjmuje następującą tabelę wartości:
klucz | typ | opis wartości | |
---|---|---|---|
user_id | liczba | ID użytkownika, któremu zostanie założony sklep | Obowiązkowy |
name | tekst | nazwa sklepu | Obowiązkowy |
subdomain_name | tekst | subdomena przydzielona do sklepu | Obowiązkowy |
$params = array (
'user_id' => 'USER_ID',
'name' => 'NAME',
'subdomain_name' => 'SUBDOMAIN_NAME'
);
$result['details']['data']
jest tablicą, której kolejne klucze zawierają następującą tabelę wartości:
klucz | typ | opis warrtości |
---|---|---|
shop_id | liczba | ID sklepu |
shop_name | tekst | nazwa sklepu |
subdomain | tekst | subdomena przydzielona do sklepu |
Poniżej przykładowe wykonanie kodu print_r($result)
dla poprawnego wywołania:
[status] => 200
[statusText] => success
[details] => Array
(
[time] => 1438173804
[data] => Array
(
[shop_id] => 64671
[shop_name] => mojsklep
[subdomain] => mojsklepik
)
[success] => Array
(
[message] => DATA: shop: Poprawnie dodano sklep
)
[error] =>
Poniżej przykładowe wykonanie kodu print_r($result)
w przypadku niepoprawnego ID użytkownika:
[status] => 400
[statusText] => error
[details] => Array
(
[time] => 1438174472
[data] =>
[success] =>
[error] => Array
(
[code] => 400
[cupsell_code] => 102
[type] => DATA VALIDATION ERROR
[message] => Invalid param type: user_id
)
)
Jeżli otrzymasz komunikat o błędzie sprawdź jeszcze raz czy dobrze wpisałeś wszystkie parametry: ID użytkownika, nazwę sklepu oraz subdomenę. Ponadto komunikat o błędzie pojawi się także w sytuacji, gdy podana subdomena jest już zajęta oraz użytkownik wykorzystał limit zakładania sklepów.
Za pomocą parametru shops-list
uzyskasz informacje o sklepach, którymi zarządzasz.
$result = $api->request("shops-list");
$result['details']['data']
jest tablicą, której kolejne klucze zawierają następującą tabelę wartości:
klucz | typ | opis warrtości |
---|---|---|
id | liczba | ID sklepu |
name | tekst | nazwa sklepu |
subdomain | tekst | subdomena przydzielona do sklepu |
Poniżej przykładowe wykonanie kodu print_r($result)
:
[status] => 200
[statusText] => success
[details] => Array
(
[time] => 1400843344
[data] => Array
(
[0] => Array (...)
[1] => Array (...)
[2] => Array (...)
)
[success] => Array
(
[message] => DATA: shops_list
)
[error] =>
)
Za pomocą parametru shop-items-count
uzyskasz informacje o liczbie produktów znajdujących się w sklepie. W miejsce SHOP_ID
wpisz numer ID twojego sklepu.
$result = $api->request("shop-items-count", SHOP_ID);
$result['details']['data']
zawiera następującą tabelę wartości:
klucz | typ | opis warrtości |
---|---|---|
shop_id | liczba | ID sklepu |
shop_items_count | liczba | liczba produktów w sklepie |
Poniżej przykładowe wykonanie kodu print_r($result)
:
[status] => 200
[statusText] => success
[details] => Array
(
[time] => 1400485234
[data] => Array
(
[shop_id] => 12345
[shop_items_count] => 32
)
[success] => Array
(
[message] => DATA: shop_items_count
)
[error] =>
)
Poniżej przykładowe wykonanie kodu print_r($result)
w przypadku niepoprawnie wpisanego ID sklepu:
[status] => 400
[statusText] => error
[details] => Array
(
[time] => 1400486009
[data] =>
[success] =>
[error] => Array
(
[code] => 400
[cupsell_code] => 102
[type] => DATA VALIDATION ERROR
[message] => Invalid param type: id
)
)
Jeżli otrzymasz komunikat o błędzie sprawdź jeszcze raz czy dobrze wpisałeś ID sklepu.
Za pomocą parametru shop-items
uzyskasz szczegółowe informacje na temat produktów znajdujących się w sklepie. W miejsce SHOP_ID
wpisz numer ID twojego sklepu.
$result = $api->request("shop-items", SHOP_ID);
Powyższe zapytanie zwróci jednorazowo maksymalnie 10 produktów. Aby pobrać kolejną stronę produktów użyj poniższego kodu. W miejsce SHOP_ID
wpisz numer ID twojego sklepu a do kluczy page
oraz page_count
przypisz numer aktualnej strony oraz liczbę produktów na stronę.
$params = array(
'id' => SHOP_ID, # ID twojego sklepu
'page' => 1, # strona
'pages_count' => 30 # liczba produktów na stronę
);
$result = $api->request("shop-items", array('get' => $params));
$result['details']['data']
zawiera następującą tabelę wartości:
klucz | typ | opis warrtości |
---|---|---|
count | liczba | liczba wszystkich produktów w sklepie |
shop_items | tablica | tablica zawierąca szczegółową listę produktów |
Poniżej przykładowe wykonanie kodu print_r($result)
:
[status] => 200
[statusText] => success
[details] => Array
(
[time] => 1400236439
[data] => Array
(
[count] => 10
[shop_items] => Array (...)
)
[success] => Array
(
[message] => DATA: shop_items
)
[error] =>
)
Poniżej przykładowe wykonanie kodu print_r($result)
w przypadku niepoprawnie wpisanego ID sklepu:
[status] => 400
[statusText] => error
[details] => Array
(
[time] => 1400237636
[data] =>
[success] =>
[error] => Array
(
[code] => 400
[cupsell_code] => 102
[type] => DATA VALIDATION ERROR
[message] => Invalid param type: id
)
)
Jeżli otrzymasz komunikat o błędzie sprawdź jeszcze raz czy dobrze wpisałeś ID sklepu.
Za pomocą parametru item
uzyskasz szczegółowe informacje na temat produktu znajdującego się w sklepie. W miejsce PRODUCT_ID
wpisz numer ID produktu. Numery ID produktów uzyskasz za pomocą metody shop-items
$result = $api->request("item", PRODUCT_ID);
$result['details']['data']
zawiera następującą tabelę wartości:
klucz | typ | opis warrtości |
---|---|---|
product | tablica | tablica zawierająca szczegóły produktu |
extra_photos | tablica | tablica zawierąca sciezki do dodaktowych zdjęć |
sizes | tablica | tablica zawierąca dostępne rozmiary produktu |
sizeTable | tablica | tablica zawierąca aktualnie dostępne rozmiary produktu |
sizeHtmlTable | html | kod html wyświetlający gotową tabele rozmiarów wraz z wymiarami |
$result['details']['data']['product']
zawiera następującą tabelę wartości:
klucz | typ | opis warrtości |
---|---|---|
id | liczba | id produktu |
shop_id | liczba | id sklepu |
name | tekst | nazwa produktu |
position | tekst | pozycja nowe |
custom_category_name | tekst | kategoria użytkownika nowe |
price | liczba | cena produktu |
profit | liczba | profit sprzedawcy |
description | tekst | opis produktu |
added | data | data dodania |
pattern_description | tekst (html) | opis wzoru |
color | kolor | kolor produktu #RRGGBB |
pattern_category | tekst | kategoria produktu |
children | tablica | tablica identycznych produktów z innym kolorem |
fotos | tablica | tablica zjdec produktu |
Poniżej przykładowe wykonanie kodu print_r($result)
:
[status] => 200
[statusText] => success
[details] => Array
(
[time] => 1400248516
[data] => Array
(
[product] => Array (...)
[extra_photos] => Array (...)
[pattern_photos] => Array (...)
[sizes] => Array (...)
[sizeTable] => Array (...)
[sizeHtmlTable] => "HTML code"
> )
[success] => Array
(
[message] => DATA: item
)
[error] =>
)
Poniżej przykładowe wykonanie kodu print_r($result['product'])
:
[id] => 665851
[shop_id] => 46365
[name] => PAC MAN 3D
[position] => 7
[custom_category_name] => Zacne
[price] => 39.00
[profit] => 5
[description] =>
[added] => 2014-05-13 10:59:56
[pattern_description] => (...)
[color] => #FFFFFF
[pattern_category] => Koszulki
[children] => Array (...)
[fotos] => Array (...)
Poniżej przykładowe wykonanie kodu print_r($result)
w przypadku niepoprawnie wpisanego ID produktu:
[status] => 404
[statusText] => error
[details] => Array
(
[time] => 1400248425
[data] =>
[success] =>
[error] => Array
(
[code] => 404
[cupsell_code] => 301
[type] => DATA NOT FOUND ERROR
[message] => Requested data not found: shop item
)
)
Jeżli otrzymasz komunikat o błędzie sprawdź jeszcze raz czy dobrze wpisałeś ID produktu.
Za pomocą parametru shipping-data
uzyskasz informacje o opcjach wysyłki dostępnych w sklepie.
$result = $api->request("shipping-data");
$result['details']['data']
zawiera następującą tabelę wartości:
klucz | typ | opis warrtości |
---|---|---|
countries | tablica | lista państw do których realizowana jest wysyłka |
shippings | tablica | lista operatorów pocztowych do wyboru |
payments | tablica | lista dostepnych sposobów płatności |
prices | tablica | tabela cen w zależności od wybranej opcji dostawy i płatności; klucz ceny jest kombinacją opcji dostawy i płatności, np: PayPal [p] jako opcja płatności oraz kurier DPD [d] jako opcja dostawy, oznacze będą kluczem [pd] ; nie wszystkie opcje są dostępne - cena pod kluczem [oc] znajduje się cena dostawy za pomocą Poczty Polskiej do krajów innych niż Polska. Prosimy nie używać symbolu [y] jako kuriera który niebawem wygaśnie. Zamiast tego proszę używać [d] czyli - Kurier DPD |
Poniżej przykładowe wykonanie kodu print_r($result)
:
[countries] => Array
(
[1] => Polska
[2] => Austria
[3] => Belgia
...
)
[shippings] => Array
(
[x] => Poczta Polska
[y] => Kurier
[v] => Paczkomaty InPost
[d] => Kurier DPD
)
[payments] => Array
(
[p] => PayPal
[x] => Płatności internetowe
[y] => Płatność przy odbiorze
)
[prices] => Array
(
[xx] => 15.9
[yd] => 17.9
[py] => 14.9
[oc] => 21.9
...
)
Za pomocą parametru inpost-towns
uzyskasz informacje o miastach obsługiwanych przez InPost
$result = $api->request("inpost-towns");
$result['details']['data']
zawiera następującą tabelę wartości:
klucz | typ | opis warrtości |
---|---|---|
inpost_towns | tablica | lista miast obsługiwanych przez InPost |
Poniżej przykładowe wykonanie kodu print_r($result)
:
[inpost_towns] => Array
(
[0] => Aleksandrów Łódzki
[1] => Andrychów
[2] => Augustów
[3] => Bartoszyce
[4] => Bełchatów
...
)
Za pomocą parametru inpost-machines-by-town
uzyskasz informacje o paczkomatach InPost w danym mieście. W miejsce TOWN_ID
wpisz numer ID miasta uzyskanego za pomocą metody inpost-towns
$result = $api->request("inpost-machines-by-town", "TOWN_ID");
$result['details']['data']
zawiera następującą tabelę wartości:
klucz | typ | opis warrtości |
---|---|---|
machines | tablica | lista paczkomatów InPost w danym mieście wraz z ich szczegółowym opisem; klucze tablicy odpowiadają unikalnym ID paczkomatów |
$result['details']['data']['machines'][ID]
zawiera następującą tabelę wartości:
klucz | typ | opis warrtości |
---|---|---|
name | tekst | id paczkomatu |
street | tekst | ulica |
buildingnumber | tekst | numer domu |
postcode | tekst | kod pocztowy |
town | tekst | miasto |
latitude | liczba | wspórzędna geograficzna |
longitude | liczba | wspórzędna geograficzna |
paymentavailable | liczba | obsługa płatności |
operatinghours | tekst | godziny otwarcia |
locationdescription | tekst | opis lokalizacji |
paymentpointdescr | tablica | opis płatności |
partnerid | liczba | id partnera |
paymenttype | liczba | obsługiwane płatności |
Poniżej przykładowe wykonanie kodu print_r($result)
:
[status] => 200
[statusText] => success
[details] => Array
(
[time] => 1400498407
[data] => Array
(
[machines] => Array
(
[WAW015] => Array (...)
[WAW016] => Array (...)
[WAW019] => Array (...)
)
)
[success] => Array
(
[message] => DATA: inpost_machines_by_town
)
[error] =>
)
Poniżej przykładowe wykonanie kodu print_r($result['details']['data']['machines']['WAW015'])
:
[WAW015] => Array
(
[name] => WAW015
[street] => Łopuszańska
[buildingnumber] => 29
[postcode] => 02-220
[town] => Warszawa
[latitude] => 52.19153
[longitude] => 20.95009
[paymentavailable] => 1
[operatinghours] => Paczkomat: 24/7
[locationdescription] => Stacja paliw LOTOS w pobliżu hotelu Orbis obok komisu USA Cars
[paymentpointdescr] => Płatność kartą wyłącznie w paczkomacie. Dostępność: 24/7
[partnerid] => 1
[paymenttype] => 2
)
Poniżej przykładowe wykonanie kodu print_r($result)
w przypadku niepoprawnie podanego ID miasta:
[status] => 404
[statusText] => error
[details] => Array
(
[time] => 1400499589
[data] =>
[success] =>
[error] => Array
(
[code] => 404
[cupsell_code] => 302
[type] => DATA NOT FOUND ERROR
[message] => Referred data not found: town
)
)
Jeżli otrzymasz komunikat o błędzie sprawdź jeszcze raz czy dobrze wpisałes ID miasta.
Za pomocą parametru inpost-proposed-machines
uzyskasz informacje o proponowanych paczkomatach InPost w najbliższej okolicy. W miejsce ZIP_CODE
wpisz kod pocztowy w formacie ##-###
$result = $api->request("inpost-proposed-machines", "ZIP_CODE");
$result['details']['data']
zawiera następującą tabelę wartości:
klucz | typ | opis warrtości |
---|---|---|
machines | tablica | lista najbliższych paczkomatów InPost wraz z ich szczegółowym opisem; klucze tablicy odpowiadają unikalnym ID paczkomatów |
$result['details']['data']['machines'][ID]
zawiera następującą tabelę wartości:
klucz | typ | opis warrtości |
---|---|---|
name | tekst | id paczkomatu |
street | tekst | ulica |
buildingnumber | tekst | numer domu |
postcode | tekst | kod pocztowy |
town | tekst | miasto |
latitude | liczba | wspórzędna geograficzna |
longitude | liczba | wspórzędna geograficzna |
paymentavailable | liczba | obsługa płatności |
operatinghours | tekst | godziny otwarcia |
locationdescription | tekst | opis lokalizacji |
paymentpointdescr | tablica | opis płatności |
partnerid | liczba | id partnera |
paymenttype | liczba | obsługiwane płatności |
Poniżej przykładowe wykonanie kodu print_r($result)
:
[status] => 200
[statusText] => success
[details] => Array
(
[time] => 1400498407
[data] => Array
(
[machines] => Array
(
[WAW015] => Array (...)
[WAW016] => Array (...)
[WAW019] => Array (...)
)
)
[success] => Array
(
[message] => DATA: inpost_machines_by_town
)
[error] =>
)
Poniżej przykładowe wykonanie kodu print_r($result['details']['data']['machines']['WAW015'])
:
[WAW015] => Array
(
[name] => WAW015
[street] => Łopuszańska
[buildingnumber] => 29
[postcode] => 02-220
[town] => Warszawa
[latitude] => 52.19153
[longitude] => 20.95009
[paymentavailable] => 1
[operatinghours] => Paczkomat: 24/7
[locationdescription] => Stacja paliw LOTOS w pobliżu hotelu Orbis obok komisu USA Cars
[paymentpointdescr] => Płatność kartą wyłącznie w paczkomacie. Dostępność: 24/7
[partnerid] => 1
[paymenttype] => 2
)
Poniżej przykładowe wykonanie kodu print_r($result)
w przypadku niepoprawnie podanego kodu pocztowego:
[status] => 400
[statusText] => error
[details] => Array
(
[time] => 1400500202
[data] =>
[success] =>
[error] => Array
(
[code] => 400
[cupsell_code] => 102
[type] => DATA VALIDATION ERROR
[message] => Invalid param type: id
)
)
Jeżli otrzymasz komunikat o błędzie sprawdź jeszcze raz czy dobrze wpisałes kod pocztowy.
Za pomocą parametru generator
oraz zmiennej tablicowej $params
wygenerujesz nowy produkt z obrazkiem. Zmienna $params
zawiera następującą tabelę wartości:
klucz | typ | opis warrtości | |
---|---|---|---|
productid | tablica | ID produktu na którym ma zostać osadzony obrazek | |
img | tekst | adres pod którym znajduje sie obrazek | |
print_data | tablica | (opcjonalnie) tablica okreslająca parametry obrazka i jego rozmieszczenie |
$params = array (
'productid' => 'PRODUCT_ID',
'img' => 'IMAGE_HTTP_ADRESS',
'print_data' => array(
"view_1" => array(
"offset" => array(
"top" => 'TOP',
"left" => 'LEFT'
),
"v1b0" => array(
"id" => "v1b0",
"rect" => array(
"left" => 'IMAGE_LEFT',
"top" => 'IMAGE_TOP',
"width" => 'IMAGE_WIDTH',
"height" => 'IMAGE_HEIGHT'
),
"xscale" => 1,
"yscale" => 1,
"rotation" => 0,
))));
);
);
$result = $api->request("generator", array('post' => $params));
$result['details']['data']['id'][0]
zwraca nastepującą wartość:
klucz | typ | opis warrtości |
---|---|---|
id | tekst | ID wygenerowanego designu 'generator_design_id' |
itemUrl | tekst | Pełny adres https wygenerowanej grafiki |
printUrl | tekst | Pełny adres https podglądu nadruku w rozmiarze 190px x 280px |
Poniżej przykładowe wykonanie kodu print_r($result)
:
[status] => 200
[statusText] => success
[details] => Array
(
[time] => 1400502570
[data] => Array
(
[result] => ok
[id] => Array
(
[0] => "12312312"
)
[itemUrl] => 'https://cupsell.pl/upload/12312312_item_1.jpg'
[printUrl] => 'https://cupsell.pl/upload/190x280/12312312_print_1.png'
[message] => Design został zapisany
)
[success] => Array
(
[message] => DATA: generator
)
[error] =>
)
Poniżej przykładowe wykonanie kodu print_r($result)
w przypadku niepoprawnie podanego parametru:
[status] => 400
[statusText] => error
[details] => Array
(
[time] => 1400503809
[data] =>
[success] =>
[error] => Array
(
[code] => 400
[cupsell_code] => 103
[type] => DATA VALIDATION ERROR
[message] => Invalid param: generator
)
)
Jeżli otrzymasz komunikat o błędzie sprawdź czy poprawnie wpisałeś wszystkie parametry.
Za pomocą parametru patterns
uzyskasz informacje o dostepnych paternach pod obrazek. Pobieramy stąd interesujący nas wzór i jego id przekazujemy do generatora.
$result = $api->request("patterns");
$result['details']
zwraca nastepującą wartość:
klucz | typ | opis warrtości |
---|---|---|
data | tablica | Lista dostępnych wzorcow produktów np. koszulka, kubek itd |
Poniżej przykładowe wykonanie kodu print_r($result)
:
[status] => 200
[statusText] => success
[details] => Array
(
[time] => 1400502570
[data] => Array
(
[0] => object(stdClass)#1729 (31) {
[id] => string(4) "1003"
["size_group_id"] => "1"
["pattern_category_id"] => "20"
["front_file_id"] => "642270"
["back_file_id"] => "642271"
["third_file_id"] => NULL
["fourth_file_id"] => NULL
["name"] => "baseball"
["content"] => "1003"
["price"] => "34"
["is_restricted"] => "0"
["color"] => "#ff0008"
["bgcolor"] => "#ffffff"
["generator_data"] => "{"print_1":{"available_area":{"cm_size":{"6":{"width":"32","height":"60"},"7":{"width":"","height":""},"8":{"width":"","height":""},"9":{"width":"","height":""},"10":{"width":"","height":""}},"px_size":{"width":"210","height":"","center_x":"220","center_y":"405"}},"print_area":{"width":"30","height":"40"},"font_color":"#000000","background_color":"#ffffff"},"print_2":{"available_area":{"cm_size":{"6":{"width":"32","height":"62"},"7":{"width":"","height":""},"8":{"width":"","height":""},"9":{"width":"","height":""},"10":{"width":"","height":""}},"px_size":{"width":"210","height":"","center_x":"218","center_y":"410"}},"print_area":{"width":"30","height":"40"},"font_color":"#000000","background_color":"#ffffff"},"print_3":{"available_area":{"cm_size":{"6":{"width":"","height":""},"7":{"width":"","height":""},"8":{"width":"","height":""},"9":{"width":"","height":""},"10":{"width":"","height":""}},"px_size":{"width":"","height":"","center_x":"","center_y":""}},"print_area":{"width":"","height":""},"font_color":"","background_color":""},"print_4":{"available_area":{"cm_size":{"6":{"width":"","height":""},"7":{"width":"","height":""},"8":{"width":"","height":""},"9":{"width":"","height":""},"10":{"width":"","height":""}},"px_size":{"width":"","height":"","center_x":"","center_y":""}},"print_area":{"width":"","height":""},"font_color":"","background_color":""}}"
["generator_data_old"] => "{"print_1":{"available_area":{"cm_size":{"6":{"width":"35","height":"67"},"7":{"width":"","height":""},"8":{"width":"","height":""},"9":{"width":"","height":""},"10":{"width":"","height":""}},"px_size":{"width":"228","height":"","center_x":"254","center_y":"268"}},"print_area":{"width":"33","height":"43"},"price":"5","font_color":"#000000","background_color":"#ffffff"},"print_2":{"available_area":{"cm_size":{"6":{"width":"35","height":"68"},"7":{"width":"","height":""},"8":{"width":"","height":""},"9":{"width":"","height":""},"10":{"width":"","height":""}},"px_size":{"width":"228","height":"","center_x":"248","center_y":"257"}},"print_area":{"width":"33","height":"43"},"price":"5","font_color":"#000000","background_color":"#ffffff"},"print_3":{"available_area":{"cm_size":{"6":{"width":"","height":""},"7":{"width":"","height":""},"8":{"width":"","height":""},"9":{"width":"","height":""},"10":{"width":"","height":""}},"px_size":{"width":"","height":"","center_x":"","center_y":""}},"print_area":{"width":"","height":""},"price":"","font_color":"","background_color":""},"print_4":{"available_area":{"cm_size":{"6":{"width":"","height":""},"7":{"width":"","height":""},"8":{"width":"","height":""},"9":{"width":"","height":""},"10":{"width":"","height":""}},"px_size":{"width":"","height":"","center_x":"","center_y":""}},"print_area":{"width":"","height":""},"price":"","font_color":"","background_color":""}}"
["tag"] => "baseball"
["sorting"] => "16"
["is_default"] => "1"
["old_generator"] => "0"
["print1_price"] => "10"
["print2_price"] => "10"
["print3_price"] => NULL
["print4_price"] => NULL
["can_block_sale"] => "1"
["is_deleted"] => "0"
["is_hidden"] => "0"
["is_disabled"] => "0"
["dimension_table_tolerance"] => "Tolerancja +/- 2 cm"
["front_filepath"] => "/img/default/pattern/509d27f9ddcfa-IMG_4196.JPG"
["front_server"] => NULL
["description"] => "CZERWONY Model ma na sobie koszulkÄ™ w rozmiarze M."
}
)
[success] => Array
(
[message] => DATA: patterns
)
[error] => NULL
)
Za pomocą parametru pattern-generator
uzyskasz informacje o dostepnych ustawieniach, powiązanych kolorach, rozmiarach, tabele rozmiarów. W miejsce PATTERN_ID
wpisz numer patternu.
$result = $api->request("pattern-generator", "PATTERN_ID");
$result['details']
zwraca nastepującą wartość:
klucz | typ | opis warrtości |
---|---|---|
data | tablica | Szczegółowe informacje o danym paternie |
Poniżej przykładowe wykonanie kodu print_r($result)
:
[details] => Array
(
[time] => 1457447052
[data] => Array
(
[id] => 1000
[color] => #FFFFFF
[price] => 24
[tag] => koszulka
[generator_data] => {"print_1":{"available_area":{"cm_size":{"133":{"width":"35","height":"68"},"134":{"width":"","height":""},"135":{"width":"","height":""},"136":{"width":"","height":""},"137":{"width":"","height":""}},"px_size":{"width":"210","height":"","center_x":"222","center_y":"420"}},"print_area":{"width":"30","height":"40"},"font_color":"","background_color":""},"print_2":{"available_area":{"cm_size":{"133":{"width":"35","height":"72"},"134":{"width":"","height":""},"135":{"width":"","height":""},"136":{"width":"","height":""},"137":{"width":"","height":""}},"px_size":{"width":"210","height":"","center_x":"220","center_y":"410"}},"print_area":{"width":"30","height":"40"},"font_color":"","background_color":""},"print_3":{"available_area":{"cm_size":{"133":{"width":"","height":""},"134":{"width":"","height":""},"135":{"width":"","height":""},"136":{"width":"","height":""},"137":{"width":"","height":""}},"px_size":{"width":"","height":"","center_x":"","center_y":""}},"print_area":{"width":"","height":""},"font_color":"","background_color":""},"print_4":{"available_area":{"cm_size":{"133":{"width":"","height":""},"134":{"width":"","height":""},"135":{"width":"","height":""},"136":{"width":"","height":""},"137":{"width":"","height":""}},"px_size":{"width":"","height":"","center_x":"","center_y":""}},"print_area":{"width":"","height":""},"font_color":"","background_color":""}}
[name] => Biały T-shirt
[description] => Model ma na sobie koszulkę w rozmiarze M. Maksymalne wymiary nadruku to 30cm (szerokość)
na 40cm (wysokość)
Model: Heavy
Producent: JHK (opcjonalnie Keya, Sol's, Gildan)
Kolor: biały
Gramatura: 180 G/m2
Zamówienia są wykonywane na koszulkach bardzo dobrej jakości, materiale grubym i trwałym.
- skład 85% bawełna, 15% wiskoza
- ściągacz z domieszką lycry, nie występuje efekt rozciągniętego kołnierzyka
- podwójne szwy wykończeniowe
- brak szwów bocznych
- koszulki nie kurczą się w praniu nie rozciągają i nie zmieniają swojego koloru.
Nadruki wykonane w technologii DTG. Aby dłużej cieszyć się nadrukiem należy prać ręcznie i prasować na lewej stronie. Nie wybielać, nie gotować, nie podpalać, nie kopać, nie wrzucać do beczki z kwasem... nosić z dumą.
[print1_price] => 10
[print2_price] => 10
[printSizes] => Array
(
[print_1] => Array
(
[available_area] => Array
(
[cm_size] => Array
(
[133] => Array
(
[width] => 35
[height] => 68
)
[134] => Array
(
[width] =>
[height] =>
)
[135] => Array
(
[width] =>
[height] =>
)
[136] => Array
(
[width] =>
[height] =>
)
[137] => Array
(
[width] =>
[height] =>
)
)
[px_size] => Array
(
[width] => 210
[height] =>
[center_x] => 222
[center_y] => 420
)
)
[print_area] => Array
(
[width] => 30
[height] => 40
)
[font_color] =>
[background_color] =>
)
[print_2] => Array
(
[available_area] => Array
(
[cm_size] => Array
(
[133] => Array
(
[width] => 35
[height] => 72
)
[134] => Array
(
[width] =>
[height] =>
)
[135] => Array
(
[width] =>
[height] =>
)
[136] => Array
(
[width] =>
[height] =>
)
[137] => Array
(
[width] =>
[height] =>
)
)
[px_size] => Array
(
[width] => 210
[height] =>
[center_x] => 220
[center_y] => 410
)
)
[print_area] => Array
(
[width] => 30
[height] => 40
)
[font_color] =>
[background_color] =>
)
)
[images] => Array
(
[sizesPhoto] => https://data2.cupsell.pl/upload/pattern/51d54f8f96669-koszulka_męska_1i.jpg
[realPhoto] => https://data2.cupsell.pl/upload/pattern/real-1000-79553220.jpg
[views] => Array
(
[1] => Array
(
[image] => https://data2.cupsell.pl/upload/pattern/509d0d98f2078-IMG_4182.jpg?cacheref
[thumbnail] => https://data2.cupsell.pl/upload/pattern/58x86/509d0d98f2078-IMG_4182.jpg?resize=center&key=392a457a1350c4049be129d6d7367865
[mask] =>
[maskThumbnail] =>
)
[2] => Array
(
[image] => https://data2.cupsell.pl/upload/pattern/509d0d9957c97-IMG_4187.jpg?cacheref
[thumbnail] => https://data2.cupsell.pl/upload/pattern/58x86/509d0d9957c97-IMG_4187.jpg?resize=center&key=392a457a1350c4049be129d6d7367865
[mask] =>
[maskThumbnail] =>
)
)
)
[sizes] => Array
(
[133] => S
[134] => M
[135] => L
[136] => XL
[137] => XXL
)
[colorVersions] => Array
(
[0] => Array
(
[id] => 1000
[color] => #FFFFFF
)
[1] => Array
(
[id] => 1002
[color] => #000000
)
[2] => Array
(
[id] => 1029
[color] => #003cbd
)
[3] => Array
(
[id] => 1030
[color] => #baa07b
)
[4] => Array
(
[id] => 1031
[color] => #ff0008
)
[5] => Array
(
[id] => 1032
[color] => #f96b06
)
[6] => Array
(
[id] => 1034
[color] => #158418
)
[7] => Array
(
[id] => 1035
[color] => #ffea2f
)
[8] => Array
(
[id] => 1051
[color] => #90affe
)
[9] => Array
(
[id] => 1052
[color] => #c9c9c9
)
[10] => Array
(
[id] => 1054
[color] => #d1f57f
)
[11] => Array
(
[id] => 1360
[color] => #5fda07
)
)
[sizeHtmlTable] =>
S M L XL XXL
A
53 cm
54 cm
55 cm
58 cm
64 cm
B
68 cm
72 cm
74 cm
75 cm
76 cm
Na wzrost :
164 cm
170 cm
176 cm
181 cm
186 cm
Tolerancja +/- 2 cm
)
)
Za pomocą parametru cart-price
oraz zmiennej tablicowej $params
uzyskasz informacje o wartości koszyka produktów. Zmienna $params
zawiera następującą tabelę wartości:
klucz | typ | opis wartości |
---|---|---|
products | tablica | tablica produktów z których każdy zawiera klucze product_id , size_id . quantity ; tabela w formacie JSON;
parametry produktów ustalisz za pomocą metody shop-items
|
paymentMethod | liczba | ID metody płatności; ID metody płatności ustalisz za pomocą metody
shipping-data |
shippingMethod | liczba | ID sposobu wysyłki; ID sposobu wysyłki ustalisz za pomocą metody
shipping-data |
deliveryCountry | liczba | ID kraju; ID kraju ustalisz za pomocą metody
shipping-data |
discount | tekst | kod rabatowy (opcjonalnie) |
$params = array (
'products' => json_encode(array(
0 => array(
'product_id' => 'PRODUCT_ID',
'size_id' => 'SIZE_ID',
'quantity' => QUANTITY
)
)),
'paymentMethod' => 'PAYMENT_METHOD_ID',
'shippingMethod' => 'SHIPPING_METHOD_ID',
'deliveryCountry' => 'DELIVERY_COUNTRY_ID',
# 'discount' => 'DISCOUNT_CODE', #opcjonalnie
);
$result = $api->request("cart-price", array('post' => $params));
$result['details']['data']
zawiera następującą tabelę wartości:
klucz | typ | opis warrtości |
---|---|---|
shipping_costs | liczba | cena wysyłki |
products_price | liczba | cena produktów |
products_price_after_discount | liczba | cena po zniżce |
included_discount | liczba | uwzględniona zniżka |
to_pay | liczba | do zapłaty |
Poniżej przykładowe wykonanie kodu print_r($result)
:
[status] => 200
[statusText] => success
[details] => Array
(
[time] => 1400502570
[data] => Array
(
[shipping_costs] => 15.9
[products_price] => 234
[products_price_after_discount] => 234
[included_discount] => 0
[to_pay] => 249.9
)
[success] => Array
(
[message] => DATA: cart_price
)
[error] =>
)
Poniżej przykładowe wykonanie kodu print_r($result)
w przypadku niepoprawnie podanego parametru:
[status] => 400
[statusText] => error
[details] => Array
(
[time] => 1400503809
[data] =>
[success] =>
[error] => Array
(
[code] => 400
[cupsell_code] => 103
[type] => DATA VALIDATION ERROR
[message] => Invalid param: shippingMethod
)
)
Jeżli otrzymasz komunikat o błędzie sprawdź czy poprawnie wpisałeś wszystkie parametry.
Za pomocą parametru transaction
oraz zmiennej tablicowej $params
wykonasz nową transakcję w sklepie. Zmienna $params
zawiera następującą tabelę wartości:
klucz | typ | opis warrtości | |
---|---|---|---|
products | tablica | tablica produktów z których każdy zawiera klucze product_id lub generator_design_id , size_id . quantity ; tabela w formacie JSON;
parametry produktów ustalisz za pomocą metody shop-items
|
generator_design_id - zamowienie z produktem z generatora |
paymentMethod | liczba | ID metody płatności; ID metody płatności ustalisz za pomocą metody
shipping-data |
|
shippingMethod | liczba | ID sposobu wysyłki; ID sposobu wysyłki ustalisz za pomocą metody
shipping-data |
|
deliveryCountry | liczba | ID kraju; ID kraju ustalisz za pomocą metody
shipping-data |
|
inpostMachine | tekst | ID paczkomatu InPost w przypadku wybrania InPost w opcjach wysyłki | tylko gdy shippingMethod wskazuje na InPost |
as_company | liczba | jeżeli firma as_company = 1 , w przeciwnym razie as_company = 0 |
|
company_name | tekst | nazwa firmy | tylko gdy as_company = 1 |
NIP | tekst | NIP firmy | |
first_name | tekst | imię zamawiającego | tylko gdy as_company = 0 |
last_name | tekst | nazwisko zamawiającego | |
tekst | |||
phone | tekst | numer telefonu | |
street | tekst | ulica | |
house | tekst | numer domu | |
flat | tekst | numer mieszkania | opcjonalnie |
zip | tekst | kod pocztowy | |
city | tekst | miasto | |
other_delivery | logiczny | jeżeli adres dostawy inny jak zamawiającego
other_delivery = true , w przeciwnym razie pomiń paramter |
tylko gdy other_delivery = true |
first_name_other | tekst | imię zamawiającego | |
last_name_other | tekst | nazwisko zamawiającego | |
phone_other | tekst | numer telefonu | |
street_other | tekst | ulica | |
house_other | tekst | numer domu | |
flat_other | tekst | numer mieszkania (opcjonalnie) | |
zip_other | tekst | kod pocztowy | |
city_other | tekst | miasto | |
noEmail | logiczny | gdy noEmail = true system nie będzie wysyłał użytkownikowi e-maili dotyczących transakcji |
opcjonalnie |
newsletter | logiczny | chęc otrzymywania newslettera | opcjonalnie |
discount | tekst | kod ze zniżką | opcjonalnie |
user_note | tekst | dodatkowa informacja od użytkownika, user_note = "" jest dozwolony |
obowiązkowy |
user_note_delivery | tekst | dodatkowa informacja od użytkownika dla kuriera, user_note_delivery = "" jest dozwolony |
obowiązkowy |
$params = array (
'products' => json_encode(array(
0 => array(
'product_id' => 'PRODUCT_ID',
'size_id' => 'SIZE_ID',
'quantity' => 'QUANTITY',
)
)),
'paymentMethod' => 'PAYMENT_METHOD_ID',
'shippingMethod' => 'SHIPPING_METHOD_ID',
'deliveryCountry' => 'DELIVERY_COUNTRY_ID',
# 'inpostMachine' => "INPOST_MACHINE_ID", #OPTIONAL
'as_company' => 0,
# 'company_name' => "COMPANY_NAME", #OPTIONAL
# 'NIP' => "NIP", #OPTIONAL
'first_name' => 'FIRST_NAME',
'last_name' => 'LAST_NAME',
'email' => 'EMAIL',
'phone' => 'TEL',
'street' => 'STREET',
'house' => 'HOUSE',
'flat' => 'FLAT_NUMBER', #OPTIONAL
'zip' => 'ZIP_CODE',
'city' => 'CITY',
# 'other_delivery' => true, #OPTIONAL
# 'first_name_other' => 'FIRST_NAME', #OPTIONAL
# 'last_name_other' => 'LAST_NAME',
# 'phone_other' => 'TEL',
# 'street_other' => 'STREET',
# 'house_other' => 'HOUSE',
# 'flat_other' => 'FLAT_NUMBER',
# 'zip_other' => 'ZIP_CODE',
# 'city_other' => 'CITY',
# 'noEmail' => false, #OPTIONAL
# 'newsletter' => false, #OPTIONAL
# 'discount' => "DISCOUNT_CODE", #OPTIONAL
'user_note' => 'USER_NOTE',
'user_note_delivery' => 'DELIVERY_NOTE',
);
$result = $api->request("transaction", array('post' => $params));
$result['details']['data']
zawiera następującą tabelę wartości:
klucz | typ | opis warrtości |
---|---|---|
transaction_id | liczba | numer transakcji |
shipping_costs | kwota | koszt przesyłki |
products_price | kwota | cena produktów |
products_price_after_discount | kwota | cena porduktów po uwzględnieniu zniżki |
included_discount | kwota | uwzględniona zniżka |
to_pay | kwota | do zapłaty |
cancel_url | tekst | link do anulowania transakcji |
confirm_url | tekst | link do potwierdzenia transakcji |
payment_url | tekst | link do płatności |
buyer_email_sent | liczba | potwierdzenie wysłania e-maila do kupującego; 1 oznacza wysłano; 0 nie wysłano |
Poniżej przykładowe wykonanie kodu print_r($result)
:
[status] => 200
[statusText] => success
[details] => Array
(
[time] => 1400574526
[data] => Array
(
[transaction_id] => 12345
[shipping_costs] => 15.9
[products_price] => 117
[products_price_after_discount] => 117
[included_discount] => 0
[to_pay] => 132.9
[cancel_url] => https://cupsell.pl/konto/anuluj_zamowienie/12345?secret=1bf739a6015a6ca819d05ca420d317ad
[confirm_url] => https://cupsell.pl/konto/potwierdz_zamowienie/12345?secret=1bf739a6015a6ca819d05ca420d317ad
[payment_url] => https://cupsell.pl/konto/zamowienie/oplac/12345?secret=1bf739a6015a6ca819d05ca420d317ad
[buyer_email_sent] => 1
)
[success] => Array
(
[message] => DATA: transaction
)
[error] =>
)
Poniżej przykładowe wykonanie kodu print_r($result)
w przypadku niepoprawnie podanego parametru:
[status] => 400
[statusText] => error
[details] => Array
(
[time] => 1400574909
[data] =>
[success] =>
[error] => Array
(
[code] => 400
[cupsell_code] => 103
[type] => DATA VALIDATION ERROR
[message] => Invalid param: paymentMethod
)
)
Jeżli otrzymasz komunikat o błędzie sprawdź czy poprawnie wpisałeś wszystkie parametry.
Za pomocą parametru transaction-status
sprawdzisz status transakcji. W miejsce TRANSACTION_ID
wpisz numer transakcji.
$result = $api->request("transaction-status", "TRANSACTION_ID");
$result['details']['data']
zawiera następującą tabelę wartości:
klucz | typ | opis warrtości |
---|---|---|
transaction_id | liczba | ID transakcji |
status_id | liczba | ID statusu |
status_name | tekst | nazwa statusu |
status_added | data | data ostatniej zmiany statusu |
Poniżej przykładowe wykonanie kodu print_r($result)
:
[status] => 200
[statusText] => success
[details] => Array
(
[time] => 1400575645
[data] => Array
(
[transaction_id] => 12345
[status_id] => 11
[status_name] => Anulowane
[status_added] => 2014-05-20 10:42:51
)
[success] => Array
(
[message] => DATA: transaction _status
)
[error] =>
)
Poniżej przykładowe wykonanie kodu print_r($result)
w przypadku niepoprawnie wpisanego ID transakcji:
[status] => 403
[statusText] => error
[details] => Array
(
[time] => 1400575809
[data] =>
[success] =>
[error] => Array
(
[code] => 403
[cupsell_code] => 202
[type] => PERMISSIONS ERROR
[message] => No permissions for: transaction
)
)
Jeżli otrzymasz komunikat o błędzie sprawdź jeszcze raz czy dobrze wpisałeś ID sklepu.
Za pomocą parametru balance
sprawdzisz aktualny stan konta.
$result = $api->request("balance");
$result['details']['data']
zawiera następującą tabelę wartości:
klucz | typ | opis warrtości |
---|---|---|
account_balance | kwota | stan konta |
Poniżej przykładowe wykonanie kodu print_r($result)
:
[status] => 200
[statusText] => success
[details] => Array
(
[time] => 1400576769
[data] => Array
(
[account_balance] => 0
)
[success] => Array
(
[message] => DATA: balance
)
[error] =>
)
Za pomocą parametru balance_log
sprawdzisz aktualny stan konta.
$result = $api->request("balance_log");
$result['details']['data']
zawiera następującą tabelę wartości:
klucz | typ | opis warrtości |
---|---|---|
id | liczba | ID rekordu |
user_id | liczba | ID użytkownika |
balance_before | kwota | stan konta przed operacją |
balance_change | kwota | stan konta po operacji |
date_time | data | data operacji |
name | tekst | opis operacji |
Za pomocą parametru sold-items-stats
sprawdzisz aktualny stan konta.
$result = $api->request("sold-items-stats");
$result['details']['data']
zawiera jest tablica, której kolejne klucze wskazują na ID sklepu i ID produktu a tablica wartości dla ID produktu prezentuje się następująco:
klucz | typ | opis warrtości |
---|---|---|
item_name | data | nazwa produktu |
item_count | liczba | liczba zamówionych |
price | kwota | cena produktu |
profit | kwota | wartość profitu |
Poniżej przykładowe wykonanie kodu print_r($result)
:
[status] => 200
[statusText] => success
[details] => Array
(
[time] => 1400577801
[data] => Array
(
[12345] => Array
(
[123456] => Array
(
[item_name] => T-Shirt
[item_count] => 12
[price] => 39
[profit] => 5
)
)
)
[success] => Array
(
[message] => DATA: sold_items_stats
)
[error] =>
)
Metoda tylko dla uprawnionych użytkowników.
Za pomocą parametru user
oraz zmiennej tablicowej $params
założysz założysz nowe konto użytkownika.
$result = $api->request("user", array('post' => $params));
Zmienna $params
przyjmuje następującą tabelę wartości:
klucz | typ | opis wartości | |
---|---|---|---|
name | tekst | nazwa/login użytkownika | obowiązkowy |
password | tekst | hasło | obowiązkowy |
tekst | adres email | obowiązkowy | |
referrer_login | tekst | nazwa polecającego | opcjonalnie |
newsletter | logiczny | zgoda na zapisane do newslettera | opcjonalnie |
send_confirm_email | logiczny | przesłanie powiadomienia o założeniu konta do użytkownika | opcjonalnie |
$params = array (
'name' => 'NAME',
'password' => 'PASSWORD',
'email' => 'EMAIL'
'referrer_login' => 'REFERRER_LOGIN',
'newsletter' => 'NEWSLETTER',
'send_confirm_email' => 'SEND_CONFIRM_EMAIL'
);
$result['details']['data']
jest tablicą, której kolejne klucze zawierają następującą tabelę wartości:
klucz | typ | opis warrtości |
---|---|---|
user_id | liczba | ID użytkownika |
api_key | tekst | klucz dostępu do api |
private_key | tekst | klucz dostępu do api |
Poniżej przykładowe wykonanie kodu print_r($result)
dla poprawnego wywołania:
[status] => 201
[statusText] => success
[details] => Array
(
[time] => 1438176391
[data] => Array
(
[user_id] => 115775
[api_key] => 3ff593105be9dd21c2a916066861ed79
[private_key] => fad5320dee1271df34dcb6d4489cb3f0b2dcec99a9245c6d6eafbed410325f73
)
[success] => Array
(
[message] => DATA: user: Poprawnie dodano użykownika
)
[error] =>
)
Poniżej przykładowe wykonanie kodu print_r($result)
w przypadku istnienia użytkownika o podanym loginie:
[status] => 400
[statusText] => error
[details] => Array
(
[time] => 1438176515
[data] =>
[success] =>
[error] => Array
(
[code] => 400
[cupsell_code] => 102
[type] => DATA VALIDATION ERROR
[message] => Invalid param type: name
)
)
Jeżli otrzymasz komunikat o błędzie sprawdź jeszcze raz czy dobrze wpisałeś wszystkie parametry: login użytkownika, email użytkownika oraz hasło. W przypadku oznaczenia parametrów opcjonalnych: referrer_name przypisze polecająceo do utworzonego użytkownika send_confirm_email - użytkownik otrzyma potwierdzenie na podany adres email Komunikaty o błędach pojawią się w sytuacji, gdy podany login oraz email jest zajęty, email nie będzie poprawnie wpisany (z @), hasło nie bedzie liczyło od 5 do 128 znaków.
status | opis warrtości |
---|---|
200 | Successful action on methods. |
201 | Successful action on POST methods that create any new resources. |
400 | Unsuccessful action, in most situation request validation issue. |
401 | Unsuccessful action, authentication failed. |
403 | Unsuccessful action, in most situation no permissions to requested or referred resource. |
404 | Unsuccessful action, in most situation requested or referred resource does not exist. |
405 | Unsuccessful action, method does not exist or is not active. |
500 | Unsuccessful action, internal errors. |
status | opis warrtości |
---|---|
101 | Some of required parameters were not found |
102 | Param type is not valid for this request (e.g.only digits allowed) |
103 | Param is not valid (e.g. is not part of allowed values collection) |
104 | Params combination is not allowed (e.g. shipping method is not available within chosen payment method) |
105 | Limit exceeded, to much values included or some limitations crossed (e.g. limit of single transaction value) |
201 | User is not authorized to access API |
202 | User has no permissions for the data he is requesting or referring (e.g. is not an owner of shop_item) |
301 | The data that user requested has not been found (e.g. no transaction within given ID) |
302 | The data that user referred has not been found (e.g.system haven’t found in the database discount code passed in transaction) |
401 | User is trying to call nonexisting method or a method that is temporary unavailable) |
501 | Undescribed error occurred, causing temporary service unavailability |