CupSell API 1.0.6 PHP-SDK

Pobierz: CupSellAPI.zip. Archiwum zawiera klasę PHP umożliwającą łatwe korzystanie z API oraz plik z przykładem użycia klasy.

Rozpoczęcie pracy z API

$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.

Test połączenia z API api-test

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.

Nowy sklep shop

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.

Liczba sklepów shops-list

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] => )

Liczba produktów shop-items-count

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.

Lista produktów shop-items

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.

Produktitem

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.

Przesyłka shipping-data

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 ... )

InPost miasta inpost-towns

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 ... )

InPost paczkomaty inpost-machines-by-town

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.

InPost proponowane paczkomaty inpost-proposed-machines

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.

Generator - tworzenie obrazka generator

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.

Paterny - produkty pod obrazki patterns

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 )

Szczegóły paternu - szczegóły, rozmiary, kolory pattern-generator

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 ) )

Wartość koszyka cart-price

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.

Nowa transakcja transaction

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
email tekst email
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.

Status transakcji transaction-status

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.

Stan konta balance

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] => )

Log stanu kontabalance_log

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

Statystyki sprzedaży sold-items-stats

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] => )

Nowy użytkownik user

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
email 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.

Kody błędów error_codes

HTTP Response statuses used in API

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.

API Response codes used to describe 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