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

Questo blog è tutto su come creare e utilizzare l’API dei servizi Web di Prestashop. Prestashop ha uno strumento di servizi Web predefinito disponibile che consente di accedere al negozio da applicazioni remote.

Prerequisiti

  1. Il tuo negozio Prestashop dovrebbe avere la “riscrittura del modulo” abilitata per Apache.
  2. È preferibile utilizzare SSL (https:) per le chiamate ai servizi Web, poiché evita 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 Back-office di Prestashop. 2. Passare a�Parametri avanzati -> Opzioni del menu Servizi Web per aprire la pagina Servizi Web.

anticipo-parametri

 

3. Verrà reindirizzato alla pagina Servizi Web con l’elenco dei Servizi Web disponibili e il modulo di configurazione per configurare il servizio. 4. Il modulo Configurazione contiene i seguenti campi:

configurazione

a) Abilita il servizio web di Prestashop: Abilita l’impostazione per utilizzare il servizio web nel Prestashop Store.

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 Back-office di Prestashop 2. Passa a Parametri avanzati -> Opzioni del menu Servizi Web per aprire la pagina Servizi Web. 3. Reindirizzerà alla pagina dei servizi Web con un elenco dei servizi Web disponibili.

pagina del servizio web

4. Fare clic sul pulsante “Aggiungi nuova chiave del servizio Web” per aggiungere una nuova chiave del servizio Web per accedere solo a determinate risorse del negozio Prestashop.

 

add-webservice-key

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

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

c) Stato: consente alla chiave di fornire una concessione per accedere ai dati utilizzando la chiave.

d) Autorizzazione: Fornisci l’autorizzazione per accedere ai dati utilizzando la chiave specifica. Puoi controllare l’autorizzazione specifica per concedere l’accesso ai dati come Aggiungi, Modifica, Elimina o Visualizza. Qui, abbiamo verificato l’autorizzazione a Paesi e Valuta. 5. Fare clic sul pulsante Salva per aggiungere la chiave ai servizi Web.

Come si accede al Web Service?

Dopo aver creato la chiave per il servizio web e configurata correttamente, è necessario premere il seguente URL nel browser: https://{store root path}/api/ Ti verrà chiesto nome utente e password per accedere alla risorsa.

sign-in

a) Nome utente: Immettere la chiave del servizio Web generata nel passaggio precedente. Ad esempio MWMHJVB9PBYBNYBSFTQ8ZXRCM43FQ2MW

b) Password: Dovrebbe essere vuoto poiché non è richiesta alcuna password. Dopo l’accesso, accederai all’elenco delle risorse e a tutte le opzioni CRUD consentite che sono state configurate nel tuo Prestashop Store.

xml-file

Ora sei connesso con successo 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 cliente specifico tramite ID:

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 del servizio Web del modulo Prestashop per Prestashop 1.7?

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

funzione pubblica install() { genitore::install(); $this->registerHook('addWebserviceResources'); restituisce vero; }

2. Aggiungi un hook listener per definire la classe e la descrizione. Impostare specific_management su true se si desidera utilizzare WebserviceSpecificManagement invece del file ObjectModel.

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

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

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

1. Ora aggiungi la chiave con la 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, mostriamo l’elenco di tutti i clienti disponibili nel negozio. Aggiungi include_once(_PS_MODULE_DIR_.’YOURMODULENAME/classes/WebserviceSpecificManagementKbCustomer.php’); nel file del modulo.

la classe WebserviceSpecificManagementKbcustomer implementa WebserviceSpecificManagementInterface { /** @var WebserviceOutputBuilder */ protected $objOutput; output $ protetto; /** @var WebserviceRequest */ protected $wsObject; funzione pubblica setUrlSegment($segmenti) { $questo->urlSegment = $segmenti; restituisci $questo; } funzione pubblica getUrlSegment() { return $this->urlSegment; } funzione pubblica getWsObject() { return $this->wsObject; } funzione pubblica getObjectOutput() { return $this->objOutput; } /** * Deve restituire 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; restituisci $questo; } /** * @param WebserviceOutputBuilderCore $obj * @return WebserviceSpecificManagementInterface */ funzione pubblica setObjectOutput(WebserviceOutputBuilderCore $obj) { $this->objOutput = $obj; restituisci $questo; } funzione pubblica gestire() { $oggetti_prodotti = array(); $oggetti_prodotti['vuoto'] = nuovo cliente(); $lista_clienti = Cliente::getCustomers(); foreach ($lista_cliente come $lista) { $oggetti_prodotti[] = nuovo cliente($lista['id_cliente']); } $questo->_resourceConfiguration = $oggetti_prodotti['vuoto']->getWebserviceParameters(); $this->output .= $this->objOutput->getContent($objects_products, null, $this->wsObject->fieldsToDisplay, $this->wsObject->depth, WebserviceOutputBuilder::VIEW_LIST, false); } }

Lo screenshot seguente fornisce l’immagine dell’output:

produzione

Se desideri l’output in formato JSON, aggiungi &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 *