Wie erstelle ich die Webdienst-API für das Prestashop-Modul?

In diesem Blog geht es darum, wie man die Prestashop Webservices API erstellt und verwendet. Prestashop verfügt über ein standardmäßiges Webdienst-Tool, das den Zugriff auf den Store von Remote-Anwendungen aus ermöglicht.

Voraussetzungen:

  1. In Ihrem Prestashop-Shop sollte “Module Rewrite” für Apache aktiviert sein.
  2. Es ist vorzuziehen, SSL (https:) für Webdienstaufrufe zu verwenden, da es Sicherheitsprobleme vom Typ „Man in the Middle“ vermeidet.
  3. Überprüfen Sie, ob die fünf Methoden GET, POST, PUT, DELETE und HEAD auf dem Server unterstützt werden.

Wie konfiguriere ich Webdienste im Prestashop?

1. Melden Sie sich im Prestashop-Backoffice an. 2. Navigieren Sie zu den Menüoptionen „Erweiterte Parameter“ -> „Webdienste“, um die Seite „Webdienste“ zu öffnen.

Advance-Parameter

 

3. Es wird auf die Seite „Webdienste“ umgeleitet, die eine Liste verfügbarer Webdienste und das Konfigurationsformular zum Konfigurieren des Dienstes enthält. 4. Das Konfigurationsformular hat 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 Webdienste im Prestashop hinzu/aktualisiere sie?

1. Melden Sie sich beim Prestashop-Backoffice an. 2. Navigieren Sie zu den Menüoptionen „Erweiterte Parameter“ -> „Webdienste“, um die Seite „Webdienste“ zu öffnen. 3. Es wird auf die Seite „Webdienste“ umgeleitet, die eine Liste verfügbarer Webdienste enthält.

Webservice-Seite

4. Klicken Sie auf die Schaltfläche „Neuen Webservice-Schlüssel hinzufügen“, um einen neuen Webservice-Schlüssel hinzuzufügen, um nur auf bestimmte Ressourcen des Prestashop-Shops zuzugreifen.

 

add-webservice-key

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

b) Schlüsselbeschreibung: Sie können die Beschreibung zum Schlüssel zum besseren Verständnis angeben.

c) Zustand: Aktivieren Sie den Schlüssel, um den Zugriff auf die Daten mit dem Schlüssel zu gewähren.

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

Wie greife ich auf den Webdienst zu?

Nachdem Sie den Schlüssel für den Webdienst erstellt und ordnungsgemäß konfiguriert haben, müssen Sie in Ihrem Browser auf die folgende URL klicken: https://{Stammpfad des Speichers}/api/ Sie werden aufgefordert, den Benutzernamen und das 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 nach ID zu GET:

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 die Webservice-API des Prestashop-Moduls für Prestashop 1.7?

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

öffentliche Funktion install() { parent::install(); $this->registerHook('addWebserviceResources'); gib true zurück; }

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

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

3. Erstellen Sie eine WebserviceSpecificManagement-Klassendatei als WebserviceSpecificManagementCLASSNAME, die WebserviceSpecificManagementInterface implementiert. Beispiel: WebserviceSpecificManagementKbCustomer, das ähnlich zu /classes/webservice/WebserviceSpecificManagementImages.php ist. 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 im Webservice im Backoffice den Schlüssel mit der Ressource kbcustomer hinzu. 2. Besuchen Sie jetzt die https://{youstore.com}/api/kbcustomer um die Antwort in XML anzuzeigen. Im folgenden Beispiel zeigen wir die Auflistung aller im Geschäft verfügbaren Kunden an. 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; public function setUrlSegment($segments) { $this->urlSegment = $segments; gib $dies zurück; } öffentliche Funktion getUrlSegment() { return $this->urlSegment; } public function getWsObject() { return $this->wsObject; } öffentliche Funktion 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); } Öffentliche Funktion setWsObject(WebserviceRequestCore $obj) { $this->wsObject = $obj; gib $dies zurück; } /** * @param WebserviceOutputBuilderCore $obj * @return WebserviceSpecificManagementInterface */ public function setObjectOutput(WebserviceOutputBuilderCore $obj) { $this->objOutput = $obj; gib $dies zurück; } öffentliche Funktion manage() { $objects_products = array(); $objects_products['leer'] = neuer Kunde(); $customer_list = Kunde::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); } }

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

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