Como criar a API Prestashop Module Web Service?

Este blog é sobre como criar e usar a API do Prestashop Webservices. O Prestashop possui a ferramenta padrão de Serviços da Web disponível, que permite acessar a loja a partir de aplicativos remotos.

Pré-requisitos

  1. Você loja Prestashop deve ter "módulo reescrever" habilitado para o apache.
  2. É preferível usar SSL (https ūüôā para chamadas de serviço da web, pois evita os problemas de segurança do tipo "man in the middle".
  3. Verifique se os cinco métodos GET, POST, PUT, DELETE e HEAD são suportados no servidor.

Como configurar serviços da Web no Prestashop?

1. Faça o login no back-office do Prestashop. 2. Navegar para

parâmetros de avanço

3. Ele será redirecionado para a página Serviços da Web com a listagem dos Serviços da Web disponíveis e o formulário de configuração para configurar o serviço. 4. O formulário Configuração tem os seguintes campos:

• Configuração

a) Ativar o serviço da web do Prestashop: Habilite a configuração para usar o serviço da Web na Loja Prestashop.

b) Ativar modo CGI para PHP: Habilite a configuração para usar PHP como script CGI em vez do módulo Apache. 5. Clique no botão Salvar para salvar a configuração. Agora, você pode usar os serviços da Web em sua loja Prestashop.

Como adicionar / atualizar serviços da Web no Prestashop?

1. Faça o login no 2 de back-office do Prestashop. Navegue para Opções Avançadas de Parâmetros -> Serviços da Web para abrir a página Serviços da Web. 3. Ele será redirecionado para a página de Serviços da Web com uma lista de serviços da Web disponíveis.

página webservice

4.

add-webservice-key

uma chave: Esta é uma chave única. Você pode inseri-lo manualmente ou clicar no botão Gerar para gerar uma chave aleatória para o serviço da web.

b) Descrição Chave: Você pode fornecer a descrição sobre a chave para melhor compreensão.

c) Status: Habilite a chave para fornecer uma concessão para acessar os dados usando a chave.

d) Permissão: Fornecer a permissão para acessar os dados usando a determinada chave. Você pode verificar a permissão específica para conceder acesso aos dados, como Adicionar, Editar, excluir ou visualizar. Aqui, verificamos a permissão para Países e Moeda. 5. Clique no botão Salvar para adicionar a chave aos serviços da web.

Como acessar o serviço da Web?

Depois de criar a chave para o serviço da Web e configurá-la corretamente, você precisa acessar o seguinte URL em seu navegador: https: // {store root path} / api / Ele solicitará seu nome de usuário e senha para acessar o recurso.

Registe-in

a) Nome de usuário: Digite a chave do serviço da web que é gerado na etapa acima. Por exemplo, MWMHJVB9PBYBNYBSFTQ8ZXRCM43FQ2MW

b) Senha: Deve estar em branco, pois não é necessária senha. Depois de entrar, você acessará a lista dos recursos e todas as opções CRUD permitidas que você configurou na sua Loja Prestashop.

arquivo xml

Agora você está conectado com êxito ao serviço da Web Prestashop.

a) Para obter a lista de entidades para um recurso específico:

https://shop_root_url/api/resouce

Exemplo: https://www.knowband.com/api/customers para obter uma lista de todos os clientes.

b) Para obter um cliente específico por ID:

https://shop_root_url/api/customers/1

Por exemplo: Para obter os detalhes do cliente com o ID 10

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

Como criar a API do Prestashop Module Webservice para Prestashop 1.7?

Vamos mostrar como criar um módulo para buscar clientes. Para isso, registraremos um hook addWebserviceResources of ServiceRequest para os recursos, em vez de sobrescrever a função getResources () da classe ServiceRequest no Prestashop 1.7. 1. Registre o gancho addWebserviceResources no módulo.

public function install () {parent :: install (); $ this-> registerHook ('addWebserviceResources'); retorno verdadeiro; }

2. Adicione um ouvinte de gancho para definir a classe e a descrição. Configure specific_management como true se você deseja usar WebserviceSpecificManagement em vez do arquivo ObjectModel.

função pública hookAddWebserviceResources () {return array ('kbcustomer' => array ('descrição' => 'Cliente customizado de Knowband', 'specific_management' => true,), 'kbaddress' => array ('descrição' => 'Knowband Endereço Personalizado ',' class '=>' kbaddress ')); }

3. Crie o arquivo de classe WebserviceSpecificManagement como WebserviceSpecificManagementCLASSNAME que implementa WebserviceSpecificManagementInterface Por exemplo – WebserviceSpecificManagementKbCustomer que é semelhante a /classes/webservice/WebserviceSpecificManagementImages.php. Você deve incluir as funções definidas na classe WebserviceSpecificManagementImages.php. Esses são:

  • setObjectOutput
  • setWsObject
  • getWsObject
  • getObjectOutput
  • setUrlSegment
  • getUrlSegment
  • obter conteudo
  • gerenciar (onde os dados são processados)

1. Agora, adicione a chave com recurso kbcustomer no serviço da web no back-office. 2. Agora, visite o https://{youstore.com}/api/kbcustomer para ver a resposta em XML. No exemplo abaixo, exibimos a listagem de todos os clientes disponíveis na loja. Adicione include_once (_PS_MODULE_DIR _. 'YOURMODULENAME / classes / WebserviceSpecificManagementKbCustomer.php'); no seu arquivo de módulo.

classe WebserviceSpecificManagementKbcustomer implementa WebserviceSpecificManagementInterface {/ ** @var WebserviceOutputBuilder * / protected $ objOutput; saída $ protegida; / ** @var WebserviceRequest * / protected $ wsObject; função pública setUrlSegment ($ segments) {$ this-> urlSegment = $ segmentos; retorne $ this; } função pública getUrlSegment () {return $ this-> urlSegment; } função pública getWsObject () {return $ this-> wsObject; } função pública getObjectOutput () {return $ this-> objOutput; } / ** * Isso deve retornar uma string com valores específicos, como espera o WebserviceRequest. * * string @return * / função pública getContent () {return $ this-> objOutput-> getObjectRender () -> overrideContent ($ this-> output); } função pública setWsObject (WebserviceRequestCore $ obj) {$ this-> wsObject = $ obj; retorne $ this; } / ** * @param WebserviceOutputBuilderCore $ obj * @return WebserviceSpecificManagementInterface * / função pública setObjectOutput (WebserviceOutputBuilderCore $ obj) {$ this-> objOutput = $ obj; retorne $ this; } public function manage () {$ objetos_produtos = array (); $ objects_products ['empty'] = novo cliente (); $ customer_list = Customer :: getCustomers (); foreach ($ customer_list como $ list) {$ objects_products [] = novo cliente ($ list ['id_customer']); } $ this-> _ resourceConfiguration = $ objects_products ['empty'] -> getWebserviceParameters (); $ this-> output. = $ this-> objOutput-> getContent ($ objects_products, null, $ this-> wsObject-> fieldsToDisplay, $ this-> wsObject-> profundidade, WebserviceOutputBuilder :: VIEW_LIST, false); }}

A captura de tela abaixo fornece o visual da saída:

saída

Se você quiser a saída no formato JSON, inclua & output_format = JSON no final da URL. Por exemplo: https://{yourstore.com}/api/kbcustomer&output_format=JSON

Saída: {“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 *