In diesem Blog geht es um die Erstellung und Verwendung der Prestashop Webservices API. Prestashop verfügt über ein Standard-Webservices-Tool, das den Zugriff auf den Store über Remote-Anwendungen ermöglicht.
Voraussetzungen:
- In Ihrem Prestashop-Shop sollte „Module Rewrite“ für Apache aktiviert sein.
- Es ist vorzuziehen, SSL (https:) für Webdienstaufrufe zu verwenden, da dadurch Sicherheitsprobleme vom Typ „Man in the Middle“ vermieden werden.
- Überprüfen Sie, ob die fünf Methoden GET, POST, PUT, DELETE und HEAD auf dem Server unterstützt werden.
Um die Sicherheit und Effizienz Ihrer Prestashop-Webdienste zu gewährleisten, ist es wichtig, SSL (HTTPS) für alle Webdienstaufrufe zu verwenden. Dies verhindert „Man-in-the-Middle“-Angriffe und schützt Ihre Daten während der Übertragung. Darüber hinaus ist es für einen reibungslosen Betrieb von entscheidender Bedeutung, dass Ihr Server die HTTP-Methoden GET, POST, PUT, DELETE und HEAD unterstützt. Durch die Konfiguration dieser Einstellungen optimieren Sie die Leistung und Sicherheit Ihres Shops und stellen einen zuverlässigen Zugriff und eine zuverlässige Verwaltung Ihrer Prestashop-Ressourcen über die API sicher.
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.
3. Es wird zur Seite „Webdienste“ weitergeleitet, die eine Liste der verfügbaren Webdienste und das Konfigurationsformular zum Konfigurieren des Dienstes enthält. 4. Das Konfigurationsformular enthält die folgenden Felder:
a) Aktivieren Sie den Webdienst von Prestashop: Aktivieren Sie die Einstellung zur Verwendung des Webdienstes im Prestashop Store.
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-Shop nutzen.
Wie füge ich Webdienste im Prestashop hinzu/aktualisiere sie?
1. Melden Sie sich im Prestashop-Backoffice an. 2. Navigieren Sie zu den Menüoptionen „Erweiterte Parameter“ -> „Webdienste“, um die Seite „Webdienste“ zu öffnen. 3. Es wird zur Seite „Webdienste“ weitergeleitet, die eine Liste der verfügbaren Webdienste enthält.
4. Klicken Sie auf die Schaltfläche „Neuen Webdienstschlüssel hinzufügen“, um einen neuen Webdienstschlüssel hinzuzufügen, um nur auf bestimmte Ressourcen des Prestashop-Shops zuzugreifen.
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 Prestashop-Webdienst zu generieren.
b) Schlüsselbeschreibung: Zum besseren Verständnis können Sie eine Beschreibung des Schlüssels angeben.
c) Status: Aktivieren Sie den Schlüssel, um den Zugriff auf die Daten mithilfe des Schlüssels 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 überprüfen, z. B. Hinzufügen, Bearbeiten, Löschen oder Anzeigen. Hier haben wir die Berechtigung für Länder 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?
Sobald Sie den Schlüssel für den Webdienst erstellt und ordnungsgemäß konfiguriert haben, müssen Sie die folgende URL in Ihrem Browser aufrufen: https://{Store-Root-Pfad}/api/. Sie werden aufgefordert, Benutzernamen und Passwort einzugeben, um auf die Ressource zuzugreifen.
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 erhalten Sie Zugriff auf die Liste der Ressourcen und aller zulässigen CRUD-Optionen, die Sie in Ihrem Prestashop Store konfiguriert haben.
Sie sind nun 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 per ID zu ERHALTEN:
https://shop_root_url/api/customers/1
Beispiel: Um die Details eines Kunden mit der ID 10 zu erhalten
https://www.knowband.com/api/customers/10
Uhr empfehlen:
Wie erstelle ich die Prestashop-Modul-Webservice-API für Prestashop 1.7?
Wir zeigen Ihnen, wie Sie ein Modul zur Kundengewinnung erstellen. Zu diesem Zweck werden wir einen Hook „addWebserviceResources“ von „ServiceRequest“ für die Ressourcen registrieren, anstatt die Funktion „getResources()“ der Klasse „ServiceRequest“ in Prestashop 1.7 zu überschreiben. Das Erstellen benutzerdefinierter Webdienst-APIs in Prestashop 1.7 erfordert die Verwendung der WebserviceSpecificManagement-Klasse. Dadurch können Sie spezifische Funktionalitäten definieren und die Datenverarbeitung verwalten. Durch die Implementierung der WebserviceSpecificManagementKbCustomer-Klasse können Sie beispielsweise Kundendaten effizient verarbeiten. Daher bietet dieser Ansatz eine flexible und robuste Lösung zur Erweiterung der Funktionen von Prestashop und ermöglicht maßgeschneiderte Interaktionen mit den Daten Ihres Shops. Durch die Nutzung dieser erweiterten Anpassungsoptionen können Sie dynamischere und reaktionsfähigere E-Commerce-Lösungen erstellen, die den individuellen Geschäftsanforderungen gerecht werden. 1. Registrieren Sie den AddWebserviceResources-Hook 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.
öffentliche Funktion hookAddWebserviceResources() { return array( 'kbcustomer' => array( 'description' => 'Knowband Custom Customer', 'special_management' => true, ), 'kbaddress' => array( 'description' => 'Knowband Benutzerdefinierte Adresse', 'class' => 'kbaddress' ) ); }
3. Erstellen Sie eine WebserviceSpecificManagement-Klassendatei als WebserviceSpecificManagementCLASSNAME, die WebserviceSpecificManagementInterface implementiert. Beispiel: WebserviceSpecificManagementKbCustomer, das /classes/webservice/WebserviceSpecificManagementImages.php ähnelt. 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 im Webservice im Backoffice 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; öffentliche Funktion setUrlSegment($segments) { $this->urlSegment = $segments; 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 sein, wie von WebserviceRequest erwartet. * * @return string */ public function getContent() { return $this->objOutput->getObjectRender()->overrideContent($this->output); } öffentliche Funktion setWsObject(WebserviceRequestCore $obj) { $this->wsObject = $obj; return $this; } /** * @param WebserviceOutputBuilderCore $obj * @return WebserviceSpecificManagementInterface */ public function setObjectOutput(WebserviceOutputBuilderCore $obj) { $this->objOutput = $obj; return $this; } öffentliche Funktion manage() { $objects_products = array(); $objects_products['empty'] = 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 visuelle Darstellung der 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}]}
Am Ende!
Mit über 13 Jahren technischer Expertise bietet Knowband umfassende App- und Webentwicklungsdienste unter Verwendung der neuesten Technologien, einschließlich verschiedener PHP-Frameworks und React. Wir bieten mehr als 100 gebrauchsfertige Erweiterungen für beliebte E-Commerce-Plattformen wie Prestashop, Opencart, WooCommerce und Magento 2. Bei Fragen können Sie uns gerne unter support@knowband.com erreichen. Knowband ist außerdem Premium-Prestashop-Partner und Superher-Verkäufer und bietet mehr als 100 Prestashop-Module für alle Ihre E-Commerce-Anforderungen. Schauen Sie sich unsere beliebtesten an Einseitiges Supercheckout-Modul für Prestashop .