Come creare l'API del servizio Web del modulo Prestashop?

Questo blog è tutto su come creare e utilizzare l'API di servizi Web Prestashop. Prestashop dispone di uno strumento di servizi Web predefinito che consente l'accesso allo store da applicazioni remote.

Prerequisiti

  1. Il tuo negozio Prestashop dovrebbe avere "modulo riscrittura" abilitato per apache.
  2. È preferibile utilizzare SSL (https ­čÖé per le chiamate al servizio web, poiché evita i problemi di sicurezza di tipo "man in the middle".
  3. Verificare che i cinque metodi GET, POST, PUT, DELETE e HEAD siano supportati sul server.

Come configurare i servizi Web nel Prestashop?

1. Accedi al Prestashop Back-office. 2. Navigare verso

advance-parametri

3. Si reindirizzerà alla pagina dei servizi Web con l'elenco dei servizi Web disponibili e il modulo di configurazione per configurare il servizio. 4. Il modulo di configurazione ha i seguenti campi:

configurazione

a) Abilita il servizio web di Prestashop: Abilita l'impostazione per utilizzare il servizio Web nel negozio Prestashop.

b) Abilita la modalità CGI per PHP: Abilita l'impostazione per utilizzare PHP come script CGI invece del modulo Apache. 5. Fare clic sul pulsante Salva per salvare la configurazione. Ora puoi utilizzare i servizi Web nel tuo negozio Prestashop.

Come aggiungere / aggiornare i servizi Web nel Prestashop?

1. Accedi al Prestashop Back-office 2. Passare a Parametri avanzati -> Opzioni del menu Servizi Web per aprire la pagina dei servizi Web. 3. Si reindirizzerà alla pagina dei servizi Web con un elenco di servizi Web disponibili.

webservice-page

4.

add-webservice-chiave

una chiave: Questa è una chiave unica. È possibile inserirlo manualmente o fare clic sul pulsante Genera per generare una chiave casuale per il servizio web.

b) Descrizione chiave: Puoi fornire la descrizione relativa alla chiave per una migliore comprensione.

c) Stato: Abilita la chiave per fornire una sovvenzione per accedere ai dati utilizzando la chiave.

d) Permesso: Fornire l'autorizzazione per accedere ai dati utilizzando la chiave specifica. È possibile verificare l'autorizzazione specifica per concedere l'accesso ai dati come Aggiungi, Modifica, Elimina o Visualizza. Qui, abbiamo controllato l'autorizzazione per Paesi e Valuta. 5. Fare clic sul pulsante Salva per aggiungere la chiave ai servizi Web.

Come accedere al servizio Web?

Una volta creata la chiave per il servizio Web e configurata correttamente, è necessario premere il seguente URL nel browser: https: // {percorso di memorizzazione del percorso} / api / Vi richiederà username e password per accedere alla risorsa.

sign-in

a) Nome utente: Inserisci la chiave del servizio web che viene generato nel passaggio precedente. Per esempio MWMHJVB9PBYBNYBSFTQ8ZXRCM43FQ2MW

b) Password: Dovrebbe essere vuoto in quanto non è richiesta alcuna password. Dopo l'accesso, si accede all'elenco delle risorse e di tutte le opzioni CRUD consentite che sono state configurate nel proprio negozio Prestashop.

file XML

Ora sei connesso correttamente al servizio web Prestashop.

a) PER OTTENERE l'elenco delle entità per una particolare risorsa:

https://shop_root_url/api/resouce

esempio: https://www.knowband.com/api/customers per ottenere un elenco di tutti i clienti.

b) PER OTTENERE UN ID cliente specifico:

https://shop_root_url/api/customers/1

Ad esempio: per ottenere i dettagli del cliente con ID 10

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

Come creare l'API Webservice del modulo Prestashop per Prestashop 1.7?

Ti mostreremo come creare un modulo per recuperare i clienti. Per questo, registreremo un hook aggiungereWebserviceResources di ServiceRequest per le risorse invece di sostituire la funzione getResources () della classe ServiceRequest in Prestashop 1.7. 1. Registra aggiungiWebserviceResources aggancia nel modulo.

public function install () {parent :: install (); $ This-> registerHook ( 'addWebserviceResources'); ritorna vero; }

2. Aggiungi un listener di hook per definire la classe e la descrizione. Impostare gestione_secifica su true se si desidera utilizzare WebserviceSpecificManagement anziché il file ObjectModel.

funzione pubblica hookAddWebserviceResources () {return array ('kbcustomer' => array ('description' => 'Knowband Custom Customer', 'specific_management' => true,), 'kbaddress' => array ('description' => 'Knowband Indirizzo personalizzato ',' classe '=>' kbaddress ')); }

3. Creare il file di classe WebserviceSpecificManagement come WebserviceSpecificManagementCLASSNAME che implementa WebserviceSpecificManagementInterface per esempio – WebserviceSpecificManagementKbCustomer che è simile a /classes/webservice/WebserviceSpecificManagementImages.php. È necessario includere le funzioni definite nella classe WebserviceSpecificManagementImages.php. Questi sono:

  • setObjectOutput
  • setWsObject
  • getWsObject
  • getObjectOutput
  • setUrlSegment
  • getUrlSegment
  • getContent
  • gestire (dove vengono elaborati i dati)

1. Ora aggiungi la chiave con risorsa kbcustomer nel servizio web nel back-office. 2. Ora, visita il https://{youstore.com}/api/kbcustomer per vedere la risposta in XML. Nell'esempio seguente, viene visualizzato l'elenco di tutti i clienti disponibili nel negozio. Aggiungi include_once (_PS_MODULE_DIR _. 'YOURMODULENAME / classes / WebserviceSpecificManagementKbCustomer.php'); nel tuo file del modulo.

class WebserviceSpecificManagementKbcustomer implementa WebserviceSpecificManagementInterface {/ ** @var WebserviceOutputBuilder * / protected $ objOutput; uscita $ protetta; / ** @var WebserviceRequest * / protected $ wsObject; funzione pubblica setUrlSegment ($ segmenti) {$ this-> urlSegment = $ segmenti; restituire $ questo; } public function getUrlSegment () {return $ this-> urlSegment; } public function getWsObject () {return $ this-> wsObject; } public function getObjectOutput () {return $ this-> objOutput; } / ** * Questo deve essere restituito una stringa con valori specifici come previsto da WebserviceRequest. * * @return string * / public function getContent () {return $ this-> objOutput-> getObjectRender () -> overrideContent ($ this-> output); } funzione pubblica setWsObject (WebserviceRequestCore $ obj) {$ this-> wsObject = $ obj; restituire $ questo; } / ** * @param WebserviceOutputBuilderCore $ obj * @return WebserviceSpecificManagementInterface * / public function setObjectOutput (WebserviceOutputBuilderCore $ obj) {$ this-> objOutput = $ obj; restituire $ questo; } public function manage () {$ objects_products = array (); $ objects_products ['empty'] = new Customer (); $ customer_list = Customer :: getCustomers (); foreach ($ customer_list come $ 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); }}

Il seguente screenshot fornisce la visualizzazione dell'output:

produzione

Se si desidera l'output in formato JSON, aggiungere & output_format = JSON alla fine dell'URL. Per esempio: https://{yourstore.com}/api/kbcustomer&output_format=JSON

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