Wie erstelle ich eine Prestashop Module Web Service API?

In diesem Blog erfahren Sie, wie Sie die Prestashop Webservices-API erstellen und verwenden. Prestashop verfügt über ein Standardtool für Webdienste, mit dem von Remoteanwendungen aus auf den Store zugegriffen werden kann.

Voraussetzungen

  1. In Ihrem Prestashop-Store sollte "module rewrite" für Apache aktiviert sein.
  2. Es ist vorzuziehen, SSL (https 🙂 für Webdienstaufrufe zu verwenden, da hierdurch Sicherheitsprobleme vom Typ "Mann in der Mitte" vermieden werden.
  3. Überprüfen Sie, ob die fünf Methoden GET, POST, PUT, DELETE und HEAD auf dem Server unterstützt werden.

Wie konfiguriere ich Web Services im Prestashop?

1. Melden Sie sich im Prestashop Back-Office an. 2. Navigiere zu

Voraus-Parameter

3. Es wird auf die Seite "Webdienste" mit der Liste der verfügbaren Webdienste und dem Konfigurationsformular zur Konfiguration des Dienstes umgeleitet. 4. Das Konfigurationsformular enthält die folgenden Felder:

Konfiguration

a) Aktivieren Sie den Webdienst von Prestashop: Aktivieren Sie die Einstellung, um den Webdienst im Prestashop Store zu verwenden.

b) Aktivieren Sie den CGI-Modus für PHP: Aktivieren Sie die Einstellung, um PHP als CGI-Skript anstelle des Apache-Moduls zu verwenden. 5. Klicken Sie auf die Schaltfläche Speichern, um die Konfiguration zu speichern. Jetzt können Sie die Webdienste in Ihrem Prestashop Store verwenden.

Wie füge ich Web Services im Prestashop hinzu / aktualisiere sie?

1. Melden Sie sich bei Prestashop Back-Office 2 an. Navigieren Sie zu Advance Parameters -> Web Services, um die Seite Web Services zu öffnen. 3. Es wird auf die Seite "Webdienste" umgeleitet, auf der eine Liste der verfügbaren Webdienste angezeigt wird.

Webservice-Seite

4.

add-webservice-key

ein Schlüssel: Dies ist ein eindeutiger Schlüssel. Sie können es manuell eingeben oder auf die Schaltfläche Generieren klicken, um einen zufälligen Schlüssel für den Webdienst zu generieren.

b) Schlüsselbeschreibung: Zum besseren Verständnis können Sie die Beschreibung des Schlüssels eingeben.

c) Status: Aktivieren Sie den Schlüssel, um eine Berechtigung für den Zugriff auf die Daten mithilfe des Schlüssels bereitzustellen.

d) Erlaubnis: Geben Sie die Berechtigung zum Zugriff auf die Daten mit dem entsprechenden Schlüssel an. Sie können die spezifische Berechtigung zum Gewähren des Zugriffs auf Daten wie Hinzufügen, Bearbeiten, Löschen oder Anzeigen überprüfen. Hier haben wir die Erlaubnis zu Ländern und Währung geprüft. 5. Klicken Sie auf die Schaltfläche Speichern, um den Schlüssel zu den Webdiensten hinzuzufügen.

Wie kann ich auf den Web Service zugreifen?

Nachdem Sie den Schlüssel für den Webdienst erstellt und ordnungsgemäß konfiguriert haben, müssen Sie in Ihrem Browser die folgende URL eingeben: https: // {Speicherpfad} / api / Sie werden aufgefordert, Benutzername und Kennwort einzugeben, um auf die Ressource zuzugreifen.

Sign-in

a) Benutzername: Geben Sie den Schlüssel des Webdienstes ein, der im obigen Schritt generiert wurde. Zum Beispiel MWMHJVB9PBYBNYBSFTQ8ZXRCM43FQ2MW

b) Passwort: Es sollte leer sein, da kein Passwort erforderlich ist. Nach der Anmeldung greifen Sie auf die Liste der Ressourcen und aller zulässigen CRUD-Optionen zu, die Sie in Ihrem Prestashop Store konfiguriert haben.

XML-Datei

Sie sind jetzt erfolgreich mit dem Prestashop-Webdienst verbunden.

a) Um die Liste der Entitäten für eine bestimmte Ressource abzurufen:

https://shop_root_url/api/resouce

Beispiel: https://www.knowband.com/api/customers um eine Liste aller Kunden zu erhalten.

b) Um einen bestimmten Kunden anhand seiner ID zu erhalten:

https://shop_root_url/api/customers/1

Zum Beispiel: Um die Details des Kunden mit der ID 10 zu erhalten

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

Wie erstelle ich eine Prestashop Module Webservice API für Prestashop 1.7?

Wir zeigen Ihnen, wie Sie ein Modul zum Abrufen von Kunden erstellen. Zu diesem Zweck registrieren wir einen Hook addWebserviceResources of ServiceRequest für die Ressourcen, anstatt die Funktion getResources () der ServiceRequest-Klasse in Prestashop 1.7 zu überschreiben. 1. Registrieren Sie den Hook addWebserviceResources im Modul.

öffentliche Funktion install () {parent :: install (); $ this-> registerHook ('addWebserviceResources'); return true; }

2. Fügen Sie einen Hook-Listener hinzu, um die Klasse und Beschreibung zu definieren. Setzen Sie specific_management auf true, wenn Sie WebserviceSpecificManagement anstelle der ObjectModel-Datei verwenden möchten.

public function hookAddWebserviceResources () {Array ('kbcustomer' => Array ('description' => 'Knowband Custom Customer', 'specific_management' => true,), 'kbaddress' => Array ('description' => 'Knowband Benutzerdefinierte Adresse ',' Klasse '=>' kAdresse ')); }

3. Erstellen Sie eine WebserviceSpecificManagement-Klassendatei als WebserviceSpecificManagementCLASSNAME, die WebserviceSpecificManagementInterface implementiert. Beispiel: WebserviceSpecificManagementKbCustomer ähnelt /classes/webservice/WebserviceSpecificManagementImages.php. Sie müssen die Funktionen einschließen, die in der Klasse WebserviceSpecificManagementImages.php definiert sind. Diese sind:

  • setObjectOutput
  • setWsObject
  • getWsObject
  • getObjectOutput
  • setUrlSegment
  • getUrlSegment
  • getContent
  • verwalten (wo Daten verarbeitet werden)

1. Fügen Sie nun den Schlüssel mit der Ressource kbcustomer in den Webdienst im Backoffice ein. 2. Nun besuchen Sie die https://{youstore.com}/api/kbcustomer um die Antwort in XML zu sehen. Im folgenden Beispiel wird die Liste aller im Geschäft verfügbaren Kunden angezeigt. Fügen Sie include_once (_PS_MODULE_DIR _. 'YOURMODULENAME / classes / WebserviceSpecificManagementKbCustomer.php') hinzu. in Ihrer Moduldatei.

Klasse WebserviceSpecificManagementKbcustomer implementiert WebserviceSpecificManagementInterface {/ ** @var WebserviceOutputBuilder * / protected $ objOutput; geschützte $ Ausgabe; / ** @var WebserviceRequest * / protected $ wsObject; öffentliche Funktion setUrlSegment ($ segmente) {$ this-> urlSegment = $ segmente; return $ this; } public function getUrlSegment () {return $ this-> urlSegment; } public function getWsObject () {return $ this-> wsObject; } public function getObjectOutput () {return $ this-> objOutput; } / ** * Dies muss eine Zeichenfolge mit bestimmten Werten zurückgeben, wie es WebserviceRequest erwartet. * * @return string * / public function getContent () {return $ this-> objOutput-> getObjectRender () -> overrideContent ($ this-> output); } public function setWsObject (WebserviceRequestCore $ obj) {$ this-> wsObject = $ obj; return $ this; } / ** * @param WebserviceOutputBuilderCore $ obj * @return WebserviceSpecificManagementInterface * / public function setObjectOutput (WebserviceOutputBuilderCore $ obj) {$ this-> objOutput = $ obj; return $ this; } public function manage () {$ objects_products = array (); $ objects_products ['empty'] = neuer Kunde (); $ customer_list = Customer :: getCustomers (); foreach ($ customer_list as $ list) {$ objects_products [] = neuer Kunde ($ 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); }}

Der folgende Screenshot zeigt Ihnen die Ausgabe:

Ausgabe

Wenn Sie die Ausgabe im JSON-Format wünschen, hängen Sie & output_format = JSON am Ende der URL an. Zum Beispiel: https://{yourstore.com}/api/kbcustomer&output_format=JSON

Ausgabe: {“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 *