Jak stworzyć interfejs API usługi internetowej Prestashop Module?

Ten blog dotyczy tworzenia i korzystania z interfejsu API usług internetowych Prestashop. Prestashop ma dostępne domyślne narzędzie Web Services, które umożliwia dostęp do sklepu ze zdalnych aplikacji.

Wymagania wstępne

  1. Twój sklep Prestashop powinien mieć włączoną opcję „przepisywania modułu” dla Apache.
  2. Zaleca się używanie protokołu SSL (https:) do wywołań usług internetowych, ponieważ pozwala to uniknąć problemów związanych z bezpieczeństwem typu „człowiek w środku”.
  3. Sprawdź, czy pięć metod GET, POST, PUT, DELETE i HEAD jest obsługiwanych na serwerze.

Jak skonfigurować Web Services w Prestashop?

1. Zaloguj się do zaplecza Prestashop. 2. Przejdź do opcji Parametry zaawansowane -> Opcje menu Usługi sieci Web, aby otworzyć stronę Usługi sieci Web.

parametry-zaawansowane

 

3. Przekieruje do strony usług sieci Web zawierającej listę dostępnych usług sieci Web oraz formularz konfiguracyjny umożliwiający skonfigurowanie usługi. 4. Formularz konfiguracyjny zawiera następujące pola:

konfiguracja

a) Włącz usługę internetową Prestashop: Włącz ustawienie korzystania z usługi internetowej w sklepie Prestashop.

b) Włącz tryb CGI dla PHP: Włącz ustawienie, aby używać PHP jako skryptu CGI zamiast modułu Apache. 5. Kliknij przycisk Zapisz, aby zapisać konfigurację. Teraz możesz korzystać z usług internetowych w swoim sklepie Prestashop.

Jak dodać/zaktualizować usługi sieciowe w Prestashop?

1. Zaloguj się do zaplecza Prestashop 2. Przejdź do opcji Zaawansowane parametry -> Opcje menu usług internetowych, aby otworzyć stronę usług internetowych. 3. Przekieruje do strony usług sieci Web zawierającej listę dostępnych usług sieci Web.

strona-serwisu internetowego

4. Kliknij przycisk „Dodaj nowy klucz usługi internetowej”, aby dodać nowy klucz usługi internetowej, aby uzyskać dostęp tylko do określonych zasobów sklepu Prestashop.

 

add-webservice-key

klucz: To unikalny klucz. Możesz wprowadzić go ręcznie lub kliknąć przycisk Generuj, aby wygenerować losowy klucz dla usługi sieciowej.

b) Opis klucza: Możesz podać opis klucza w celu lepszego zrozumienia.

c) Status: Włącz klucz, aby zapewnić dostęp do danych za pomocą klucza.

d) Zezwolenie: Udziel pozwolenia na dostęp do danych za pomocą określonego klucza. Możesz sprawdzić konkretne uprawnienia, aby udzielić dostępu do danych, takich jak Dodaj, Edytuj, usuń lub przeglądaj. Tutaj sprawdziliśmy uprawnienia do krajów i walut. 5. Kliknij przycisk Zapisz, aby dodać klucz do usług sieciowych.

Jak uzyskać dostęp do Serwisu?

Po utworzeniu klucza do usługi sieciowej i prawidłowym skonfigurowaniu należy nacisnąć następujący adres URL w przeglądarce: https://{ścieżka główna sklepu}/api/ Zostanie wyświetlony monit o nazwę użytkownika i hasło, aby uzyskać dostęp do zasobu.

zapisz się

a) Nazwa użytkownika: Wprowadź klucz usługi internetowej, który został wygenerowany w powyższym kroku. Na przykład MWMHJVB9PBYBNYBSFTQ8ZXRCM43FQ2MW

b) Hasło: Powinno być puste, ponieważ hasło nie jest wymagane. Po zalogowaniu uzyskasz dostęp do listy zasobów i wszystkich dozwolonych opcji CRUD, które zostały skonfigurowane w Twoim sklepie Prestashop.

plik xml

Jesteś teraz pomyślnie połączony z usługą internetową Prestashop.

a) Aby uzyskać listę podmiotów dla danego zasobu:

https://shop_root_url/api/resouce

Przykład: https://www.knowband.com/api/customers aby otrzymać listę wszystkich klientów.

b) Aby POZYSKAĆ ​​konkretnego klienta na podstawie ID:

https://shop_root_url/api/customers/1

Na przykład: aby uzyskać szczegółowe informacje o kliencie posiadającym identyfikator 10

https://www.knowband.com/api/customers/10

Jak stworzyć Prestashop Module Webservice API dla Prestashop 1.7?

Pokażemy Ci, jak stworzyć moduł do pozyskiwania klientów. W tym celu zarejestrujemy hook addWebserviceResources z ServiceRequest dla zasobów zamiast zastępować funkcję getResources() klasy ServiceRequest w Prestashop 1.7. 1. Zarejestruj zaczep addWebserviceResources w module.

funkcja publiczna install() { parent::install(); $this->registerHook('addWebserviceResources'); zwróć prawdę; }

2. Dodaj odbiornik przechwytujący, aby zdefiniować klasę i opis. Ustaw specific_management na true , jeśli chcesz użyć WebserviceSpecificManagement zamiast pliku ObjectModel.

public function hookAddWebserviceResources() { return array( 'kbcustomer' => array( 'description' => 'Knowband Custom Customer', 'specific_management' => true, ), 'kbaddress' => array( 'description' => 'Knowband Adres niestandardowy', 'class' => 'kbaddress' ) ); }

3. Utwórz plik klasy WebserviceSpecificManagement jako WebserviceSpecificManagementCLASSNAME, który implementuje interfejs WebserviceSpecificManagementInterface Na przykład – WebserviceSpecificManagementKbCustomer, który jest podobny do /classes/webservice/WebserviceSpecificManagementImages.php. Musisz uwzględnić funkcje, które są zdefiniowane w klasie WebserviceSpecificManagementImages.php. To są:

  • setObjectOutput
  • setWsObject
  • getWsObject
  • pobierzObjectOutput
  • setUrlSegment
  • getUrlSegment
  • Pobierz zawartość
  • zarządzać (gdzie dane są przetwarzane)

1. Teraz dodaj klucz mający zasób kbcustomer w usłudze sieciowej na zapleczu. 2. Teraz odwiedź https://{youstore.com}/api/kbcustomer aby zobaczyć odpowiedź w formacie XML. W poniższym przykładzie wyświetlamy listę wszystkich klientów dostępnych w sklepie. Dodaj include_once(_PS_MODULE_DIR_.’NAZWATWOJEGOMODUŁU/classes/WebserviceSpecificManagementKbCustomer.php’); w pliku modułu.

class WebserviceSpecificManagementKbcustomer implementuje WebserviceSpecificManagementInterface { /** @var WebserviceOutputBuilder */ protected $objOutput; chronione wyjście $; /** @var WebserviceRequest */ protected $wsObject; funkcja public setUrlSegment($segmenty) { $this->urlSegment = $segmenty; zwróć $to; } funkcja publiczna getUrlSegment() { return $this->urlSegment; } funkcja publiczna getWsObject() { return $this->wsObject; } public function getObjectOutput() { return $this->objOutput; } /** * Musi to być zwrócony ciąg z określonymi wartościami, zgodnie z oczekiwaniami WebserviceRequest. * * @return string */ public function getContent() { return $this->objOutput->getObjectRender()->overrideContent($this->output); } funkcja public setWsObject(WebserviceRequestCore $obj) { $this->wsObject = $obj; zwróć $to; } /** * @param WebserviceOutputBuilderCore $obj * @return WebserviceSpecificManagementInterface */ public function setObjectOutput(WebserviceOutputBuilderCore $obj) { $this->objOutput = $obj; zwróć $to; } zarządzanie funkcjami publicznymi () { $objects_products = array(); $objects_products['pusty'] = nowy Klient(); $customer_list = Customer::getCustomers(); foreach ($customer_list as $list) { $objects_products[] = new Customer($list['id_customer']); } $this->_resourceConfiguration = $objects_products['empty']->getWebserviceParameters(); $this->output .= $this->objOutput->getContent($objects_products, null, $this->wsObject->fieldsToDisplay, $this->wsObject->depth, WebserviceOutputBuilder::VIEW_LIST, false); } }

Poniższy zrzut ekranu przedstawia obraz wyjściowy:

wydajność

Jeśli chcesz uzyskać dane wyjściowe w formacie JSON, dołącz &output_format=JSON na końcu adresu URL. Na przykład: https://{yourstore.com}/api/kbcustomer&output_format=JSON

Wyjście: {“customers”:[{“id”:1},{“id”:2},{“id”:3},{“id”:4},{“id”:5},{“id”:6},{“id”:7},{“id”:8},{“id”:9},{“id”:10},{“id”:11},{“id”:12},{“id”:13},{“id”:14},{“id”:15},{“id”:16},{“id”:17},{“id”:18},{“id”:19},{“id”:20},{“id”:21}]}

Joe Parker

We boast of the best in the industry plugins for eCommerce systems and has years of experience working with eCommerce websites. We provide best plugins for platforms like - Magento, Prestashop, OpenCart and Shopify . We also provide custom module development and customization services for the website and modules..

Leave a Reply

Your email address will not be published. Required fields are marked *