Jak utworzyć interfejs API usługi Web Prestashop Module?

Ten blog jest o tym, jak tworzyć i używać API Prestashop Webservices. Prestashop ma 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ą funkcję „przepisywania modułu” dla apache.
  2. Zaleca się używanie protokołu SSL (https 🙂 dla wywołań usługi sieciowej, ponieważ pozwala to uniknąć problemów z zabezpieczeniami typu „człowiek w środku”.
  3. Sprawdź, czy pięć metod GET, POST, PUT, DELETE i HEAD jest obsługiwanych na serwerze.

Jak skonfigurować usługi internetowe w Prestashop?

1. Zaloguj się do biura Prestashop Back-office. 2. Nawigować do

parametry wyprzedzające

3. Nastąpi przekierowanie do strony Web Services zawierającej listę dostępnych usług internetowych i formularz konfiguracyjny do skonfigurowania usługi. 4. Formularz konfiguracji ma następujące pola:

konfiguracja

a) Włącz usługę internetową Prestashop: Włącz ustawienie, aby korzystać z usługi internetowej w Prestashop Store.

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 Prestashop Back-office 2. Przejdź do opcji Zaawansowane parametry -> Opcje menu Web Services, aby otworzyć stronę Web Services. 3. Zostanie przekierowany do strony Web Services zawierającej listę dostępnych usług internetowych.

strona usługi internetowej

4.

add-webservice-key

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

b) Opis klucza: Możesz podać opis dotyczący klucza dla lepszego zrozumienia.

c) Status: Włącz klucz, aby udostępnić dane za pomocą klucza.

d) Zezwolenie: Podaj uprawnienia dostępu do danych przy użyciu określonego klucza. Możesz sprawdzić konkretne zezwolenie na udzielenie dostępu do danych, takie jak Dodaj, Edytuj, usuń lub wyświetl. Tutaj sprawdziliśmy uprawnienia do krajów i walut. 5. Kliknij przycisk Zapisz, aby dodać klucz do usług internetowych.

Jak uzyskać dostęp do usługi internetowej?

Po utworzeniu klucza dla usługi sieciowej i poprawnym skonfigurowaniu musisz nacisnąć następujący adres URL w przeglądarce: https: // {ścieżka katalogu głównego} / api / To poprosi 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 jest generowany w powyższym kroku. Na przykład MWMHJVB9PBYBNYBSFTQ8ZXRCM43FQ2MW

b) Hasło: Powinien być pusty, ponieważ nie wymaga hasła. Po zalogowaniu uzyskasz dostęp do listy zasobów i wszystkich dozwolonych opcji CRUD, które zostały skonfigurowane w Sklepie Prestashop.

plik xml

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

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

https://shop_root_url/api/resouce

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

b) UZYSKAĆ ​​określonego klienta według ID:

https://shop_root_url/api/customers/1

Na przykład: Aby uzyskać szczegół klienta o identyfikatorze 10

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

Jak utworzyć interfejs Webservice API Prestashop Module dla Prestashop 1.7?

Pokażemy Ci, jak utworzyć moduł do pobierania klientów. W tym celu zarejestrujemy hook addWebserviceResources of ServiceRequest dla zasobów zamiast nadpisywania funkcji getResources () klasy ServiceRequest w Prestashop 1.7. 1. Zarejestruj hak addWebserviceResources w module.

publiczna funkcja install () {parent :: install (); $ this-> registerHook ('addWebserviceResources'); powrót prawda; }

2. Dodaj detektor przechwytywania, aby zdefiniować klasę i opis. Ustaw właściwość zarządzanie_szczegółowe 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 WebserviceSpecificManagementInterface dla przykładu – WebserviceSpecificManagementKbCustomer, który jest podobny do /classes/webservice/WebserviceSpecificManagementImages.php. Musisz dołączyć funkcje zdefiniowane w klasie WebserviceSpecificManagementImages.php. To są:

  • setObjectOutput
  • setWsObject
  • getWsObject
  • getObjectOutput
  • konfiguracja
  • getUrlSegment
  • Pobierz zawartość
  • zarządzaj (gdzie przetwarzane są dane)

1. Teraz dodaj klucz mający zasób kbcustomer w usłudze internetowej w back-office. 2. Teraz odwiedź https://{youstore.com}/api/kbcustomer aby zobaczyć odpowiedź w XML. W poniższym przykładzie wyświetlamy listę wszystkich klientów dostępnych w sklepie. Dodaj include_once (_PS_MODULE_DIR _. 'YOURMODULENAME / classes / WebserviceSpecificManagementKbCustomer.php'); w pliku modułu.

klasa WebserviceSpecificManagementKbcustomer implementuje WebserviceSpecificManagementInterface {/ ** @var WebserviceOutputBuilder * / protected $ objOutput; chronione wyjście $; / ** @var WebserviceRequest * / protected $ wsObject; public function setUrlSegment ($ segmenty) {$ this-> urlSegment = $ segmenty; zwróć $ this; } public function getUrlSegment () {return $ this-> urlSegment; } public function getWsObject () {return $ this-> wsObject; } public function getObjectOutput () {return $ this-> objOutput; } / ** * Musi zwrócić łańcuch o określonych wartościach, których oczekuje WebserviceRequest. * * @return string * / public function getContent () {return $ this-> objOutput-> getObjectRender () -> overrideContent ($ this-> output); } public function setWsObject (WebserviceRequestCore $ obj) {$ this-> wsObject = $ obj; zwróć $ this; } / ** * @param WebserviceOutputBuilderCore $ obj * @return WebserviceSpecificManagementInterface * / public funkcja setObjectOutput (WebserviceOutputBuilderCore $ obj) {$ this-> objOutput = $ obj; zwróć $ this; } public function manage () {$ objects_products = array (); $ objects_products ['empty'] = new Customer (); $ 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 dane wyjściowe w formacie JSON, dodaj & 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 *