How to use GraphQL in PHP?

Você já ouviu falar do GraphQL?

GraphQL é uma linguagem de consulta moderna para a API. Em outras palavras, podemos dizer que é uma linguagem de consulta de camada de aplicação moderna.

Com a ajuda do GraphQL, podemos buscar dados das chamadas da API e ele funciona no HTTP como REST. Ele fornece a opção poderosa ao cliente para que ele pergunte o que exatamente precisa e ajuda no crescimento ou avaliação da API.

Benefícios do GraphQL

  • Ele fornece apenas dados limitados de que realmente precisamos. Ele nunca buscará dados extras ou menos dados que você não precisa.
  • É um poderoso sistema de código aberto.
  • Dá uma opção para fazer a codificação eficiente. Por exemplo, suponha uma tabela de 40 colunas e às vezes precisamos dos dados de apenas 10 colunas ou às vezes 20 etc. Para resolver este problema temos duas opções na API normal, ou buscar todos os dados em cada chamada de API e usar qualquer temos que escrever o número de APIs para a mesma tabela para que possamos chamar a API eficiente conforme o requisito. Mas no GraphQL, temos que escrever apenas uma API. Portanto, o código de linha também é reduzido.
  • As APIs do GraphQL são estruturadas em termos de tipos e campos.

GraphQL tem suporte para várias linguagens como

  • C#
  • . NET
  • Clojure
  • Elixir
  • Erlang
  • Go
  • Groovy
  • Java
  • JavaScript
  • PHP
  • Python
  • Scala
  • Rubi

Neste blog, aprenderemos sobre o GraphQL em PHP.

Primeiramente devemos saber, em qualquer linguagem para usar GraphQL temos que importar sua biblioteca.

Em PHP, podemos usar este arquivo de biblioteca: webonyx/graphql-php.

Instalação

Usando o compositor, basta executar:

compositor requer webonyx/graphql-php

Como o GraphQL busca dados com consultas?

No REST, a API retorna dados em uma estrutura definida. Ao escrever a API em REST, temos que definir a estrutura de dados o que ela retornará, mas o GraphQL não possui uma estrutura definida que ela retornará. Pode alterar sua estrutura conforme a necessidade do cliente.

O cliente precisa enviar mais algumas informações ao servidor para declarar seus requisitos e essa informação é chamada de Consulta.

Na Consulta, temos que definir os Campos Raiz, ou seja, dizemos o mesmo que carga útil para o serviço.

Resolver

No aplicativo do mundo real, como o aplicativo de comércio eletrônico, ou seja, PrestaShop, OpenCart, Magneto, etc., precisamos buscar os dados do cliente do banco de dados por customerId e retornar o mesmo. Nosso ponto é que não temos que retornar os arrays, temos que retornar os valores e o graphql-php irá passá-lo intocado para os resolvedores aninhados.

O resolvedor é basicamente uma função de retorno de chamada para cada campo. Há sempre um resolvedor padrão para todos os campos. Quando definimos nossa própria função de resolução para um campo, simplesmente sobrescrevemos o resolvedor padrão.

Como definir o esquema para consulta?

$schema_obj = new Schema { "query" => $queryType, "mutation" => $mutationType, "subscription" => $subscriptionType }

Exemplo

Como este é um blog para iniciantes ou novatos vamos fazer um exemplo simples.

Vamos criar um sistema de tipos que processará a seguinte consulta simples:

query { echo(message: "Oi Knowband, este é meu primeiro programa GraphQL") }

Observação: Precisamos de um tipo de objeto com eco de campo para fazer isso.

'Query', 'fields' => [ 'echo' => [ 'type' => Type::string(), 'args' => [ 'message' => Type::nonNull(Type::string() ), ], 'resolver' => function ($root, $args) { return $root['prefix'] . $args['mensagem']; } ], ], ]);

A opção �resolver�é�muito�importante�opção�de�definição de campo. Os valores dos campos escalares serão diretamente incluídos na resposta, enquanto os valores dos campos compostos serão passados ​​para baixo para os campos resolvedores de campos aninhados. Campos compostos são interfaces, uniões, objetos, etc.

Agora, depois que nosso tipo estiver pronto, vamos escrever o arquivo de ponto final do GraphQL para ele graphql_program_1.php.

$queryType ]); $Input = file_get_contents('php://input'); $input_data = json_decode($Input, true); $query_data = $input_data['query']; $variable_values ​​= isset($input_data['variables']) ? $input_data['variables'] : null; $valor = ['prefixo' => 'Saída: ']; $resultante = GraphQL::executeQuery($schema_obj, $query_data, $value, null, $variable_values); $output_value = $resultante->toArray(); } catch (\Exception $e) { $output_value = [ 'errors' => [ [ 'message' => $e->getMessage() ] ] ]; } header('Content-Type: application/json'); echo json_encode($output_value); ?>

Como podemos executar o código?

Podemos executar o código por:

php -S localhost:8080 graphql_program_1.php curl https://localhost:8080 -d '{"query": "query { echo(message: \" Oi Knowband, este é meu primeiro programa GraphQL \") }" }'

Para qualquer dúvida, sinta-se à vontade para nos contatar em support@knowband.com. A Knowband está fornecendo os melhores módulos da classe para Prestashop, Opencart, Magento e Magento 2. Dê uma olhada em um dos mais populares para Prestashop chamado Supercheckout de uma página:

 

Como criar seu próprio modelo HTML usando jQuery?

Este artigo é sobre como criar um modelo HTML usando jQuery.

Vamos saber sobre o jQuery

jQuery é uma biblioteca JavaScript rápida, pequena e rica em recursos. Ele torna as coisas como a passagem e manipulação de documentos HTML, manipulação de eventos, animação e Ajax muito mais simples com uma API fácil de usar que funciona em vários navegadores. Com uma combinação de versatilidade e extensibilidade, o jQuery mudou a maneira como milhões de pessoas escrevem JavaScript.

Vamos conhecer o template jQuery

jQuery Template nos dá uma opção ou suporte para exibição e manipulação do conteúdo no navegador. Usando o jQuery Templating podemos renderizar a string JSON para os elementos HTML. Vamos considerar um exemplo simples, podemos usar o jQuery Template para exibir algum conjunto de registros que obtivemos de uma solicitação do Ajax.

Um exemplo básico de templates jQuery

Agora criamos uma página simples usando modelos jQuery. Usaremos apenas o plugin jQuery. Neste exemplo, mostraremos como criar um modelo e renderizar o conteúdo do JSON.

Exigência

Vamos entender o requisito primeiro. Suponha que tenhamos que criar uma página web como o site KnowBand para vender os módulos para a plataforma de e-commerce como Opencart, Prestashop etc. Temos alguns módulos ou plugins de e-commerce que queremos listar no site KnowBand. Assim, na página de listagem, mostraremos o nome, a imagem e o preço do módulo. Usaremos a string JSON abaixo para listar os dados:

[ { "name": "Guias de produtos- PrestashopAddons", "image_url": "https:\/\/www.knowband.com\/image\/data\/Plugin%20Logo\/Product-Tabs-logo-1000- x-1000.jpg", "module_url": "https:\/\/www.knowband.com\/prestashop-product-tabs", "price": "$25" }, { "name": "Prestashop Mobile App builder", "image_url": "https:\/\/www.knowband.com\/image\/data\/Plugin%20Logo\/Mobile-app-prestashop-plugin-500-X-500.jpg", " module_url": "https:\/\/www.knowband.com\/prestashop-mobile-app-builder", "price": "$30" }, { "name": "Return Manager - Magento Extensions", "image_url ": "https:\/\/www.knowband.com\/image\/data\/Plugin%20Logo\/return-manager.png", "module_url": "https:\/\/www.knowband.com \/magento-return-manager", "price": "$50" }, { "name": "Web Push Notification - PrestashopAddons", "image_url": "https:\/\/www.knowband.com\/image \/data\/Plugin%20Logo\/Web-Push-Notification-plugin.jpg", "module_url": "https:\/\/www.knowband.com\/prestashop-web-push-notifications", "price ": "$43" } ]

  1. Usando a Tag de Script HTML

    Neste método, escreveremos o código HTML na tag script. O código completo é dado abaixo:

<html>
    <head>
            <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css&quot;>
            <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js&quot;&gt;&lt;/script>
        </head>
        <body>
            <div class="container">
                <script id="blog" type="template">
                    <div class="col-md-3">
                        <a href="{{module_url}}">
                            <div class="thumbnail">
                                <imgsrc="{{image_url}}" class="img-rounded img-responsive" width="100%"></img>
                                <div class="caption">
                                    <p class="lead">{{price}}</p>
                                    <p>{{name}}</p>
                                </div>
                            </div>
                        </a>
                    </div>
                </script>
            </div>
            <script>
            $(function () {
                varknoband_data = [
                        {
                            "name": "Product tabs- PrestashopAddons",
                            "image_url": "https:\/\/www.knowband.com\/image\/data\/Plugin%20Logo\/Product-Tabs-logo-1000-x-1000.jpg",
                            "module_url": "https:\/\/www.knowband.com\/prestashop-product-tabs",
                            "price": "$25"
                        },
                        {
                            "name": "Prestashop Mobile App builder",
                            "image_url": "https:\/\/www.knowband.com\/image\/data\/Plugin%20Logo\/Mobile-app-prestashop-plugin-500-X-500.jpg",
                            "module_url": "https:\/\/www.knowband.com\/prestashop-mobile-app-builder",
                            "price": "$30"
                        },
                        {
                            "name": "Return Manager - Magento Extensions",
                            "image_url": "https:\/\/www.knowband.com\/image\/data\/Plugin%20Logo\/return-manager.png",
                            "module_url": "https:\/\/www.knowband.com\/magento-return-manager",
                            "price": "$50"
                        },
                        {
                            "name": "Web Push Notification - PrestashopAddons",
                            "image_url": "https:\/\/www.knowband.com\/image\/data\/Plugin%20Logo\/Web-Push-Notification-plugin.jpg",
                            "module_url": "https:\/\/www.knowband.com\/prestashop-web-push-notifications",
                            "price": "$43"
                        }
                    ];
                var temp = $.trim($('#blog').html());
                $.each(knoband_data, function (index, obj) {
                    var x = temp.replace(/{{name}}/ig, obj.name);
                    x = x.replace(/{{image_url}}/ig, obj.image_url);
                    x = x.replace(/{{price}}/ig, obj.price);
                    x = x.replace(/{{module_url}}/ig, obj.module_url);
                    $('.container').append(x);
                });
            });
        </script>
        </body>
    </html>

Criamos uma miniatura dentro da tag script, ou seja, a tag script #blog e ela foi usada como modelo. No código acima, usamos {{ }} para variáveis ​​curinga. Vamos entender de fato o que fizemos no código acima:

var temp = $.trim($('#blog').html()); // Ele carregará todo o conteúdo da tag de script #blog em uma variável temporária. var x = temp.replace(/{{nome}}/ig, obj.nome); // Substituiu a variável curinga {{name}} pelos dados correspondentes do JSON. x = x.replace(/{{image_url}}/ig, obj.image_url); // Substituiu a variável curinga {{image_url}} pelos dados correspondentes do JSON. x = x.substituir(/{{preço}}/ig, obj.preço); // Substituiu a variável curinga {{price}} pelos dados correspondentes do JSON. x = x.replace(/{{module_url}}/ig, obj.module_url); // Substituiu a variável curinga {{module_url}} pelos dados correspondentes do JSON. $('.container').append(x); // anexou o conteúdo ao container div.
  1. Usando a técnica de espaço reservado

Nesta técnica, anexaremos o conteúdo no HTML após preencher os dados usando a técnica de espaço reservado do jQuery. O código completo é dado abaixo:

    
        
        
    
    
        
        
         $(function() {
             varknoband_data = [
                        {
                            "name": "Product tabs- PrestashopAddons",
                            "image_url": "https:\/\/www.knowband.com\/image\/data\/Plugin%3.3.7Logo\/Product-Tabs-logo-3.2.1-x-20.jpg",
                            "module_url": "https:\/\/www.knowband.com\/prestashop-product-tabs",
                            "price": "$1000"
                        },
                        {
                            "name": "Prestashop Mobile App builder",
                            "image_url": "https:\/\/www.knowband.com\/image\/data\/Plugin%1000Logo\/Mobile-app-prestashop-plugin-25-X-20.jpg",
                            "module_url": "https:\/\/www.knowband.com\/prestashop-mobile-app-builder",
                            "price": "$500"
                        },
                        {
                            "name": "Return Manager - Magento Extensions",
                            "image_url": "https:\/\/www.knowband.com\/image\/data\/Plugin%500Logo\/return-manager.png",
                            "module_url": "https:\/\/www.knowband.com\/magento-return-manager",
                            "price": "$30"
                        },
                        {
                            "name": "Web Push Notification - PrestashopAddons",
                            "image_url": "https:\/\/www.knowband.com\/image\/data\/Plugin%20Logo\/Web-Push-Notification-plugin.jpg",
                            "module_url": "https:\/\/www.knowband.com\/prestashop-web-push-notifications",
                            "price": "$50"
                        }
                    ];
             $.each(knoband_data, function(index, obj) {
                $('.container').append(
                    `
                        
                            
                                
                                
                                    ${obj.price}
                                    ${obj.name}
                                
                            
                        
                    `
                );
            });
         });
        
    

No exemplo acima, usamos ` (back-tick) como literal de modelo�e ${ } como um espaço reservado. Quando comparamos o método 1 com o método 2, podemos facilmente dizer que o modelo literal e o espaço reservado facilitam nossa tarefa. Neste exemplo, escrevemos o código do modelo em um loop e substituímos nossos espaços reservados por seus dados correspondentes.

Resumo

Para saber mais sobre jQuery Templates, recomendo que você veja a documentação de jQuery Templates no site oficial do jQuery.

Como criar programaticamente cliente em Magento?

O Magento é uma das plataformas de e-commerce mais flexíveis e utilizadas atualmente. Muitas vezes durante o nosso desenvolvimento, precisamos criar clientes através do nosso código. Por exemplo, se estamos desenvolvendo um plug-in Magento para conectar nossa loja Magento a mercados como Walmart, Etsy etc., então criamos um pedido para o cliente através de nosso código. Mas, para criar um pedido, precisamos criar um cliente se esse cliente não existir em nossa loja Magento. Podemos criar clientes em Magento simplesmente usando o seguinte código.

Código para criar um cliente no Magento:

$ _website = Mage :: app () -> getWebsite () -> getId (); $ store = Mage :: app () -> getStore (); $ _firstName = 'Jhon'; $ _lastName = 'Doe'; $ _customerEmail = 'demo@demo.com'; $ _customerPassword = '#KnowbandPlugins'; $ _newCustomer = Mage :: getModel ("cliente / cliente"); $ _newCustomer-> setWebsiteId ($ _ website) -> setStore ($ store) -> setFirstname ($ _ firstName) -> setLastname ($ _ lastName) -> setEmail ($ _ customerEmail) -> setPassword ($ _ customerPassword); tente {$ _newCustomer-> save (); } catch (Exceção $ e) {Mage :: getSingleton ('cliente / sessão') -> addException ($ e, $ this -> __ ('Erro na criação do cliente')); Mage :: logException ($ e); } <a href="https://www.knowband.com/blog/wp-content/uploads/2018/10/untitled-26.png"> <img class = "alignnone tamanho-médio wp-image-22306" src = "https://www.knowband.com/blog/wp-content/uploads/2018/10/untitled-26-300x48.png" alt = "criação-cliente-em-magento" width = "300" altura = "48" /> </a>

Mas esse cliente só tem informações básicas como nome, sobrenome, e-mail, etc. Não possui endereço de entrega ou faturamento. Podemos salvar informações completas de endereço do cliente através do seguinte código.

Código para salvar o endereço do cliente:

$ _website = Mage :: app (); getWebsite (); $ _customerEmail = 'demo@demo.com'; // E-mail do cliente $ _countryId = 'IN'; $ _postCode = '201301'; $ _city = 'Noida'; $ _telephone = '1111111111'; $ _fax = ''; $ _company = 'Velocity Software Solutions'; $ _street = ''; $ _customer = Mage :: getModel ('cliente / cliente') -> setWebsiteId ($ _ site ->; getId ()) -> loadByEmail ($ _ customerEmail); $ _customerAddress = Mage :: getModel ("cliente / endereço"); $ _customerAddress-> setCustomerId ($ _ customer-> getId ()) -> setname ($ _ customer-> getFirstname ()) -> setMiddleName ($ _ customer-> getMiddlename ()) -> setLastname ($ _ cliente-> getLastname ()) -> setCountryId ($ _ countryId) -> setPostcode ($ _ postCode) -> setCity ($ _ cidade) -> setTelephone ($ _ telefone) -> setFax ($ _ fax) -> setCompany ($ _ empresa) -> setStreet ($ _ street) - > setIsDefaultBilling ('1') -> setIsDefaultShipping ('1') -> setSaveInAddressBook ('1'); tente {$ _customerAddress-> save (); } catch (Exceção $ e) {Mage :: getSingleton ('cliente / sessão') -> addException ($ e, $ this -> __ ('Erro ao salvar endereço do cliente.')); Mage :: logException ($ e); } <a href="https://www.knowband.com/blog/wp-content/uploads/2018/10/untitled-27.png"> <img class = "alignnone tamanho-médio wp-image-22308" src = "https://www.knowband.com/blog/wp-content/uploads/2018/10/untitled-27-300x133.png" alt = "salvar endereço-do-cliente" width = "300" altura = "133" /> </a>

Agora as informações do endereço do cliente estão completas. Espero que o código acima mencionado ajude você a adicionar um novo cliente à sua loja Magento.


Como instalar o Magento usando a linha de comando?

O Magento é uma das melhores plataformas de código aberto baseadas em e-commerce que são escritas em PHP. O Magento fornece três plataformas diferentes:

  1. Magento Community Edition
  2. Magento Enterprise Edition
  3. Magento Enterprise Cloud Edition

Aqui estaremos aprendendo como instalar o Magento usando a linha de comando (CLI). A instalação por linha de comando do Magento é uma das formas mais eficientes de instalação se estivermos instalando em servidores.

Faça o download do Magento Community Edition 1.X

Pode-se baixar a versão necessária do Magento no site oficial do magneto. Use o link abaixo para baixar o seu pacote.

https://magento.com/tech-resources/download

Ele pedirá para entrar. Se você não tiver uma conta, crie uma conta e continue.

Descompactando o arquivo baixado

Mova o arquivo para um diretório onde você deseja instalá-lo e descompacte-o.

a) Se for um arquivo zip, use o seguinte caminho:

Sintaxe:- descompactar nome_do_arquivo, por exemplo –

unzip magento-1.9.3.10-2018-09-18-03-21-10.zip

b) Se for um arquivo tar, use o seguinte caminho:

Sintaxe:- tar xf file_name eg –

tar xf magento-1.9.3.10-2018-09-18-03-21-10.tar.bz2

Pré-requisito para instalação do Magento:

Para a instalação do Magento, você precisará atender aos requisitos padrão do sistema. De acordo com a documentação do Magento, você precisa atender aos seguintes requisitos para a instalação do Magento.

a) Meio ambiente:

LAMP (Linux, Apache, MySQL e PHP) ou LNMP stack

b) Sistema Operacional:

Linux x 86, x86-64

c) Servidor da Web:

  • Apache 2.x
  • Nginx 1.7.x

d) Hospedagem de Servidores:

  • Capacidade de executar trabalhos agendados (crontab) com PHP 5.
  • Capacidade de substituir opções em arquivos .htaccess.

e) PHP:

  • PHP 5.6
  • PHP 5.5
  • PHP 5.4

f) Extensões necessárias:

  • PDO_MySQL
  • Simplexml
  • Mcrypt
  • de hash
  • GD
  • DOM
  • Iconv
  • Rosca
  • SOAP (para API de serviços da Web)

g) Configuração adicional:

  • safe_mode desativado
  • memory_limit não inferior a 256 MB (512 MB recomendado)

h) Banco de dados:

  • MySQL 5.6 (Oracle ou Percona)

Para informações detalhadas, por favor, verifique:

https://docs.magento.com/m1/ce/user_guide/magento/system-requirements.html

Banco de dados de configuração

Agora vamos configurar o banco de dados para o nosso Magento. Para a criação de banco de dados, é necessário ter as seguintes coisas

  1. Host de BD
  2. Nome do DB
  3. Nome de Usuário do DB
  4. Senha do DB

Etapas para criar um banco de dados:

Etapa 1. Entre no seu MySQL:

MySQL -uDB_User -pDB_Password -hDB_Host

a) DB_User: – Nome de usuário do MySQL

b) DB_Password: – Senha do MySQL

c) DB_Host: – Nome do host do MySQL

Etapa 2. Crie um banco de dados:

Sintaxe: – criar banco de dados DB_NAME Por exemplo, criar banco de dados kb_mage_db; Aqui kb_mage_db é o nome do banco de dados que estamos criando.

Etapa 3. Verifique o banco de dados recém-criado usando o comando abaixo

Mostrar bancos de dados; Isso mostrará a lista de todos os bancos de dados criados em seu sistema. Aqui o nome do

Etapa 3. Saia do seu servidor MySQL usando o seguinte comando

exit;

Instalação do Magento

Para a instalação da CLI, precisamos executar o seguinte comando:

php -f install.php - \ --license_agreement_accepted "yes" \ --local "en_US" \ --timezone "America / Los_Angeles" \ --correspondência_de_decord "USD" \ --db_host "DB_HOST" \ --db_name " DB_NAME "\ --db_user" DB_USER "\ --db_pass" DB_PASS "\ --db_prefixo" DB_PREFIX "\ --admin_frontname" ADMIN_FRONT_NAME "\ --url" SITE_URL "\ --use_rewrites" sim "\ --use_secure" sim "\ --secure_base_url" SITE_URL "\ --use_secure_admin" yes "\ --admin_firstname" ADMIN_FIRST_NAME "\ --admin_lastname" ADMIN_FIRST_LAST_NAME "\ --admin_email" E-MAIL "\ --admin_username" NOME DO USUÁRIO "\ --admin_password" SENHA "

Explicação das palavras-chave usadas no comando da CLI.

  1. Locale: Coloque o código do idioma como "en_US" que deseja usar no Magento.
  2. Fuso horário: coloque o fuso horário que deseja usar no Magento. Neste caso, usamos "America / Los_Angeles".
  3. Default_currency: coloque a moeda que deseja usar no Magento.
  4. DB_HOST – Nome do host do banco de dados, no caso de um sistema local colocar localhost
  5. DB_NAME – O nome do seu banco de dados, por exemplo, kb_mage_db
  6. DB_USER – O nome de usuário com direitos de acesso ao banco de dados
  7. DB_PASS – A senha para o usuário do banco de dados
  8. SITE_URL – O caminho onde o Magento está instalado, por exemplo https://www.kbmagedomain.com/
  9. ADMIN_FIRST_NAME – Primeiro nome do administrador
  10. ADMIN_LAST_NAME – sobrenome do administrador
  11. EMAIL – O endereço de email do proprietário da loja, por exemplo email@knowband.com
  12. USERNAME – o nome de usuário do administrador. Isso será usado para fazer login no backend do magneto.
  13. SENHA – A senha do administrador. Isso será usado para fazer login no backend do magneto.

Após a instalação do Magento, a mensagem de sucesso será mostrada com o id de criptografia. Agora abra seu navegador favorito e verifique se você instalou o Magento usando o URL que você usou.


Como criar programaticamente ordens no Magento?

Às vezes precisamos criar programaticamente os pedidos no Magento. Suponha que você esteja criando um plugin Magento para sua loja para conectá-lo ao mercado como Walmart ou Etsy.

Etapas envolvidas na criação da ordem:

  • Vamos definir os dados do cliente como primeiro nome, sobrenome, e-mail.
  • Definir endereço de envio e cobrança do cliente.
  • Definir o método de envio e pagamento do cliente.
  • Defina o produto e a quantidade que precisa ser encomendada em nossa loja Magento.
  • Crie um cliente se o cliente não existir na nossa loja Magento. É um passo opcional.
  • Adicione o produto à cotação do cliente.
  • Adicione o endereço de envio e cobrança à cotação do cliente.
  • Prepare e salve as cotações do cliente.
  • A ordem é criada na sua loja Magento.

Usar

         $ _store = Mage :: app () -> getStore (); $ _website = Mage :: app () -> getWebsite (); $ _firstName = John '; $ _lastName = 'doe; $ _email = 'demo@demo.com'; / * * Endereço de faturamento personalizado * / $ billingAddress = array ('customer_address_id' => '', 'prefixo' => '', 'nome' => $ _firstName, 'middlename' => '', 'sobrenome' => $ _lastName, 'suffix' => '', 'company' => '', 'street' => array ('0' => 'Setor 63', // Requerido '1' => 'Noida, UP') , 'city' => 'Noida', 'country_id' => 'IN', // Código do país 'region' => 'UP', 'region_id' => '', 'código postal' => '201301', ' telefone '=>' 888-888-8888 ',' fax '=>' ',' save_in_address_book '=> 1); / * * Endereço para envio personalizado * / $ shippingAddress = array ('customer_address_id' => '', 'prefixo' => '', 'nome' => $ _firstName, 'middlename' => '', 'sobrenome' => $ _lastName, 'suffix' => '', 'company' => '', 'street' => array ('0' => 'Setor 63', // Requerido '1' => 'Noida, UP') , 'city' => 'Noida', 'country_id' => 'IN', // Código do país 'region' => 'UP', 'region_id' => '', 'código postal' => '201301', ' telefone '=>' 888-888-8888 ',' fax '=>' ',' save_in_address_book '=> 1); / ** * Insira o método de envio que você deseja usar. Alguns dos outros métodos de envio * são tablerate_tablerate, freeshipping_freeshipping, etc. * Aqui estamos usando flatrate_flatrate * / $ _shippingMethod = 'flatrate_flatrate'; / ** * Insira o método de pagamento que você deseja usar. Alguns dos métodos de pagamento de pedidos * são: checkmo, free, banktransfer, ccsave, purchaseorder etc. * / $ _paymentMethod = 'cashondelivery'; / ** * Fornecer matriz de produto e sua quantidade. * $ array = array (product_id => qty) * / $ productIds = array (905 => 1); $ quote = Mage :: getModel ('vendas / cotação') -> setStoreId ($ _ store-> getId ()); $ quote-> setCurrency (Mage :: app () -> getStore () -> getBaseCurrencyCode ()); $ customer = Mage :: getModel ('cliente / cliente') -> setWebsiteId ($ _ website-> getId ()) -> loadByEmail ($ _ email); / ** * Preparando o cliente para a cotação * se o cliente não estiver cadastrado, criaremos um novo cliente. Este é um processo opcional. * / if (! $ customer-> getId ()) {$ cliente = Mage :: getModel ('cliente / cliente'); $ customer-> setWebsiteId ($ _ site-> getId ()) -> setStore ($ _ store) -> setFirstname ($ _ firstName) -> setLastname ($ _ lastName) -> setEmail ($ _ email); / ** * Criar novo cliente * Ignore o try-catch se não quiser criar um novo cliente. * / try {// Gerando senha para o cliente. Você também pode usar qualquer senha // customizada para ele. $_store = Mage::app()->getStore();
         $_website = Mage::app()->getWebsite();
         $_firstName = John';
         $_lastName = 'doe;
         $_email = 'demo@demo.com';
        /*
         * Custom billing address
         */
        $billingAddress = array(
            'customer_address_id' => '',
                         'prefix' => '',
            'firstname' => $_firstName,
            'middlename' => '',
             'lastname' => $_lastName,
            'suffix' => '',
            'company' => '',
            'street' => array(
                 '0' => 'Sector 63', // Required
                '1' => 'Noida, UP' 
            ),
             'city' => 'Noida',
            'country_id' => 'IN', // Country code
            'region' => 'UP', 
            'region_id' => '',
            'postcode' => '201301',
            'telephone' => '888-888-8888',
            'fax' => '',
            'save_in_address_book' => 1
        );
 
        /*
         * Custom shipping address
         */
        $shippingAddress = array(
            'customer_address_id' => '',
            'prefix' => '',
            'firstname' => $_firstName,
            'middlename' => '',
            'lastname' => $_lastName,
            'suffix' => '',
            'company' => '',
            'street' => array(
                '0' => 'Sector 63', // Required
                '1' => 'Noida, UP' 
            ),
            'city' => 'Noida',
            'country_id' => 'IN', // Country code
            'region' => 'UP',
            'region_id' => '',
            'postcode' => '201301',
            'telephone' => '888-888-8888',
            'fax' => '',
            'save_in_address_book' => 1
        );
 
        /**
         * Enter the shipping method you want to use. Some of the other shipping
         * methods are tablerate_tablerate, freeshipping_freeshipping etc.
         * Here we are using flatrate_flatrate
         */
        $_shippingMethod = 'flatrate_flatrate';
 
        /**
         * Enter the payment method you want to use. Some of the order payment  
   	*methods are checkmo, free, banktransfer, ccsave, purchaseorder etc.
         */
        $_paymentMethod = 'cashondelivery';
 
        /**
         * Provide array of product and their qty.
         * $array = array(product_id => qty)
         */
        $productIds = array(905 => 1);
        $quote = Mage::getModel('sales/quote')
                ->setStoreId($_store->getId());
 
        $quote->setCurrency(Mage::app()->getStore()->getBaseCurrencyCode());
 
        $customer = Mage::getModel('customer/customer')
                ->setWebsiteId($_website->getId())
                ->loadByEmail($_email);
 
        /**
         * Preparing customer for the quote 
         * if the customer is not registered then we will create a new customer. This is  	*an optional process.
         */
        if (!$customer->getId()) {
            $customer = Mage::getModel('customer/customer');
 
            $customer->setWebsiteId($_website->getId())
                    ->setStore($_store)
                    ->setFirstname($_firstName)
                    ->setLastname($_lastName)
                    ->setEmail($_email);
 
            /**
             * Creating new customer
             * Skip try-catch if you don't want to create a new customer.
             */
            try {
                // Generating password for customer. You can also use any custom  // password for it.
                $password = $customer->generatePassword();
                $customer->setPassword($password);
                $customer->setForceConfirmed(true);
                $customer->save();
 
                $customer->setConfirmation(null);
                $customer->save();
                $customerId = $customer->getId();
                $customAddress = Mage::getModel('customer/address');
                $customAddress->setData($billingAddress)
                        ->setCustomerId($customerId)
                        ->setIsDefaultBilling('1')
                        ->setIsDefaultShipping('1')
                        ->setSaveInAddressBook('1');
                $customAddress->save();
 
            } catch (Mage_Core_Exception $e) {
                Mage::getSingleton('customer/session')->addException($e, $this- >__('Error in creating customer'));
                Mage::logException($e);
            } catch (Exception $e) {
                Mage::getSingleton('customer/session')->addException($e, $this- >__('Error in creating customer'));
                Mage::logException($e);
            }
        }
 
        // Assign customer to quote
        $quote->assignCustomer($customer);
 
        // Add products to quote
        foreach ($productIds as $productId => $qty) {
            $product = Mage::getModel('catalog/product')->load($productId);
            $quote->addProduct($product, $qty);
        }
 
        // Add billing address to quote
        $_billingAddressData = $quote->getBillingAddress()- >addData($billingAddress);
 
        // Add shipping address to quote
        $_shippingAddressData = $quote->getShippingAddress()- >addData($shippingAddress);
 
        /**
         * If the customer is a registered customer then you can fetch their billing or  *shipping address as below
         * 
         * $_customerBillingAddress = $customer->getPrimaryBillingAddress();
         * $_customerShippingAddress = $customer->getPrimaryShippingAddress();
         * 
         * $_billingAddressData = $quote->getBillingAddress()- >addData($_customerBillingAddress);
         * $_shippingAddressData = $quote->getShippingAddress()- >addData($_customerShippingAddress);
         */
 
        // Collect shipping rates on quote shipping address data
        $_shippingAddressData->setCollectShippingRates(true)
                ->collectShippingRates();
 
        // Set shipping and payment method on quote shipping address data
        $_shippingAddressData->setShippingMethod($_shippingMethod)
                ->setPaymentMethod($_paymentMethod);
 
        // Set payment method for the quote
        $quote->getPayment()->importData(array('method' => $_paymentMethod));
 
        try {
            $quote->collectTotals();
            $quote->save();
 
            // Preparing Order From Quote
            $service = Mage::getModel('sales/service_quote', $quote);
            $service->submitAll();
            
            // $incrementId is the increment id of the order created.
            $incrementId = $service->getOrder()->getRealOrderId();
 
            Mage::getSingleton('checkout/session')
                    ->setLastQuoteId($quote->getId())
                    ->setLastSuccessQuoteId($quote->getId())
                    ->clearHelperData();
 
           /*
           * $response is the Array of the response with the status of the order  creation.
           */
            $response['success'] = true;
            $response['error'] = false;
        $response['messages'] = 'Order number '.$incrementId.' created  successfully.';
        } catch (Mage_Core_Exception $e) {
            $response['success'] = false;
            $response['error'] = true;
            $response['messages'] = $e->getMessage();
            Mage::logException($e);
        } catch (Exception $e) {
            $response['success'] = false;
            $response['error'] = true;
            $response['messages'] = $this->__('Error in processing order. Please try  again later.');
 
            Mage::logException($e);
        }
        
        Mage::app()->getResponse()->setBody(Mage::helper('core')- >jsonEncode($response)); $ incrementId = $ service-> getOrder () -> getRealOrderId (); Mage :: getSingleton ('checkout / session') -> setLastQuoteId ($ quote-> getId ()) -> setLastSuccessQuoteId ($ quote-> getId ()) -> clearHelperData (); / * * $ response é o array da resposta com o status da criação do pedido. * / $ response ['success'] = true; $ response ['error'] = falso; $ response ['messages'] = 'Número do pedido'. $ incrementId. ' criado com sucesso. '; } catch (Mage_Core_Exception $ e) {$ resposta ['sucesso'] = falso; $ response ['error'] = true; $ response ['messages'] = $ e-> getMessage (); Mage :: logException ($ e); } catch (Exceção $ e) {$ response ['success'] = false; $ response ['error'] = true; $ response ['messages'] = $ this -> __ ('Erro no processamento da ordem. Por favor, tente novamente mais tarde.'); Mage :: logException ($ e); } Mage :: app () -> getResponse () -> setBody (Mago :: helper ('core') -> jsonEncode ($ resposta));

Por favor, passe pelo código acima mencionado


Como executar consultas SQL diretas no Magento?

Hoje vamos aprender a correr

Obtenha o modelo de recurso principal –

$ resource = Mage :: getSingleton ('core / resource');

Depois disso, precisamos criar uma conexão de leitura ou gravação conforme nossa necessidade.

/ ** * Recuperar a conexão de leitura * / $ readConnection = $ resource-> getConnection ('core_read'); / ** * Recuperar a conexão de gravação * / $ writeConnection = $ resource-> getConnection ('core_write');

Buscando o nome da tabela correta –

Caso você não tenha conhecimento do prefixo da tabela, use o código abaixo para buscar o nome correto da tabela.

$ _tableName = $ resource-> getTableName ('catalog_product_entity');

Se o prefixo é mago_ então o nome da tabela que retornará será mage_catalog_product_entity

Lendo dados –

Para ler dados da tabela, use o seguinte código

$ query = "selecione * de {$ _tableName}"; $ query_result = $ readConnection-> fetchAll ($ query);

Aqui, $ query_result retornará o resultado da consulta selecionada. No nosso caso, ele retornará a matriz de todo o produto. Caso você precise de dados do produto, use o seguinte comando.

$ query = "select * from {$ _tableName} onde entity_id = {$ _ productId}"; $ query_result = $ readConnection-> fetchAll ($ query);

Aqui $ _productId é o id do produto cujos dados precisamos.

Escrevendo dados –

Para inserir dados na tabela, use o seguinte código.

$ insert_query = "INSERT INTO {$ _tableName} ('COL_NAME1', 'COL_NAME2') VALORES ('COL_VALUE1', 'COL_VALUE2')"; $ writeConnection-> query ($ insert_query);

Dados atualizados –

Se tivermos que atualizar o type_id de um produto para "configurável", podemos usar o código a seguir. Aqui $ _productId é o ID do produto.

$ update_query = "ATUALIZAR {$ _tableName} SET type_id =" configurável "WHERE entity_id = {$ _ productId}"; $ writeConnection-> query ($ update_query); Mas Magento forneceu o conceito do modelo para conexão de banco de dados, uma vez que fornecem abstração e são mais seguros que as consultas SQL diretas.


How to read the file in PHP language?

O objetivo do blog

Depois de ler este blog, você poderá ler o arquivo na linguagem PHP. No blog, você terá informações suficientes sobre a maneira diferente usada no PHP para ler um arquivo.

Vamos aprender sobre o método de leitura de arquivos no PHP

PHP fornece vários tipos de métodos para ler o arquivo são os seguintes:

Métodos Tradicionais

Neste tipo de método para ler um arquivo, temos que seguir o passo 3.

  1. Abra o arquivo.
  2. Leia o arquivo.
  3. Feche o arquivo.

Vamos ver alguns métodos tradicionais:

fopen ():

Para ler um arquivo, precisamos abrir um arquivo usando

$ file = fopen ("test.txt",

feof ()

Este método verifica se você já leu até o final do arquivo. Isso retorna true até que a última linha do arquivo seja lida e quando cruzarmos a última linha retorna false. Usamos esse método em um loop para ler um arquivo da primeira linha até a última linha.

$ file = fopen ("test.txt",

fclose ()

Nós usamos este método para fechar um arquivo depois de ler o arquivo. Depois de fechar um arquivo, não poderemos mais ler esse arquivo.

$ file = fopen ("test.txt",

fgets ()

Usamos esse método para ler um arquivo linha por linha. Ele coleta uma única linha de dados do arquivo e os retorna como uma string. E de lá você pode imprimir a linha ou você pode processar o mesmo que por sua exigência.

<? php $ file = fopen ("test.txt",

fread ()

Usamos esse método se quisermos ler um arquivo em tamanho limitado. Temos que passar um limite de tamanho em bytes neste método e, em seguida, este método lê o arquivo até um determinado limite de tamanho e ignorar o

$ file = fopen ("test.txt",

Observação: Não importa o número que você especificar, o fread não lerá mais do que 8,192 bytes (8 KB). Supondo que o arquivo não seja maior que 8 KB, o código abaixo deve ler o arquivo inteiro em uma string.

<? php $ file = fopen ("test.txt",

fgetss ()

Esta função é similar à função fgets () mas retira todas as tags HTML ou PHP encontradas, deixando apenas texto simples. Código:

<? php $ file_handle = fopen ("test.txt", "r"); while (! feof ($ file_handle)) {echo fgetss ($ file_handle); } fclose ($ file_handle); ?>

test.txt

<html> <head> <título> </ title> </ head> <corpo> <div class = "editor-conteúdo" estilo = "texto-alinhar: esquerdo"> <p> O conhecimento é um dos principais nomes uma empresa de marketing e desenvolvimento de plugins de e-commerce. </ p> <p>

Saída:

Knowband é um dos principais nomes como uma empresa de marketing e desenvolvimento de plugins de e-commerce. Nossa equipe de profissionais de TI altamente qualificados e experientes.

Outros Métodos

O PHP também fornece vários outros métodos para manipulação de arquivos que podemos usar para diferentes propósitos.

file_get_contents ()

Este método pode ser usado para coletar todos os dados de um arquivo como uma string. Por exemplo, como podemos coletar todos os dados da nossa página? Você viu o

<? php $ file = file_get_contents ("https://www.knowband.com/"); echo $ file; ?>

readfile ()

A função readfile copia todo o conteúdo de um arquivo ou página da Web para o buffer de saída padrão. Por padrão, este comando imprime uma mensagem de erro se falhar. Para evitar esse comportamento, usamos @readfile () Vamos ver a diferença entre readfile && @readfile. Vamos tentar abrir um arquivo errado pelo readfile:

<? php $ file = readfile ("wrong_test.txt"); if (! $ file) {echo 'Arquivo não encontrado.'; } else {echo $ file; }?>

saída

(!)?Warning: readfile(wrong_test.txt): failed to open stream: No such file or directory
Chamada Stack

Arquivo não encontrado. Agora substitua readfile por @readfile e nós obteremos a saída como: File not found.

Boa prática!

Se somos um programador, devemos sempre ter em mente que nosso código tem a capacidade de lidar com o erro ou condição. Pode haver uma chance de o arquivo que vamos ler ter sido movido do caminho ou a permissão para o arquivo ter sido alterado e, portanto, você não conseguir obter o conteúdo. Então, boa prática diz antes de ler um arquivo, devemos verificar se o arquivo existe e o arquivo tem permissão de leitura.

<? php $ file = "test.txt"; if (file_exists ($ file) && is_readable ($ file)) {$ f = fopen ($ arquivo, "r"); # Processando fclose ($ f); }?>

Resumo

Se tiver algum aplicativo de comércio eletrônico PHP como PrestaShop, OpenCart, Magneto etc. você pode usar os códigos para ler o arquivo de acordo com suas necessidades.


Como criar um layout personalizado para páginas CMS no Magento 2?

Neste artigo, aprenderemos sobre como criar layout personalizado de páginas CMS para nossas páginas cms. Vamos criar um layout personalizado chamado Layout de Knowband.

Magento nos fornece o seguinte layout: -> Vazio -> coluna 1 -> colunas 2 com barra esquerda -> colunas 2 com barra direita -> colunas 3 Se você quiser criar seu próprio layout personalizado para as páginas cms ou algumas páginas específicas então você precisa se concentrar nos seguintes passos:

–

Crie o arquivo <Vendor_Name> / <Module_Name> /view/frontend/page_layout/kb_layout.xml. Este arquivo irá definir o design do seu layout personalizado.

<? xml version = "1.0" codificação = "UTF-8"?> <layout xmlns: xsi = "https://www.w3.org/2001/XMLSchema-instance" xsi: noNamespaceSchemaLocation = "urna: magento: estrutura : View / Layout / etc / page_layout.xsd "> <handle update =" vazio "/> <! - você pode alterar o identificador como 2columns-left ou 3columns etc -> <referenceContainer name =" page.wrapper "> <container name = "header.container" como = "header_container" label = "Contêiner de cabeçalho de página"

–

Crie <Vendor_Name> / <Module_Name> /view/frontend/layouts.xml. Este arquivo registrará o layout personalizado. <? xml version = "1.0" codificação = "UTF-8"?> <page_layouts xmlns: xsi = "https://www.w3.org/2001/XMLSchema-instance" xsi: noNamespaceSchemaLocation = "urn: magento: estrutura : View / PageLayout /etc/layouts.xsd "> <layout id =" kb_layout "> <label translate =" true "> Layout de Knowband </ label> </ layout> </ page_layouts>

Depois de criar esses dois arquivos, limpe o cache e seu layout personalizado será adicionado à lista de layout. Você pode verificar seu layout personalizado no lado do administrador em Conteúdo-> Páginas -> Adicionar nova página -> Design

Obrigado por ler este.


Como criar o aplicativo eBay para obter as chaves de API e o token de usuário necessários?

Para começar a vender no eBay Marketplace com qualquer Marketplace Connector, precisamos de algumas chaves e tokens obrigatórios da API do eBay para nos comunicarmos com a API do eBay.� Portanto, para obter essas chaves e tokens, precisamos de um aplicativo do eBay. Assim, é um pré-requisito para qualquer conector de comércio eletrônico do eBay. Além disso, vamos levá-lo ao longo do processo passo a passo para configurar um aplicativo eBay e obter as chaves e tokens eBay necessários neste artigo.

Procedimento passo a passo para configurar um aplicativo do eBay

PASSO 1:- Junte-se ao Programa de Desenvolvedor do eBay

Para acessar as APIs do eBay, você deve primeiro criar uma conta de desenvolvedor do eBay. Visitas https://developer.ebay.com/signin� �e preencha todos os detalhes necessários para registrar uma nova conta de desenvolvedor do eBay.

Pule esta etapa e faça login na sua conta de desenvolvedor do eBay se você já tiver alguma conta de desenvolvedor.

Recomendado Read: Como lançar um mercado como Etsy e Ebay?

PASSO 2:- Faça login no programa de desenvolvedor do eBay

Usando as credenciais fornecidas na primeira etapa, faça login na conta de desenvolvedor do eBay após a criação da conta do eBay.

PASSO 3:- Criar Aplicativo eBay

Depois de fazer login na conta de desenvolvedor do eBay, ele solicitará que você configure o nome do aplicativo eBay. Em seguida, insira um nome de aplicativo válido. Aqui você será presenteado com duas opções: –

  • Sandbox
  • Produção

Clique em ‘criar um conjunto de chaves’ do modo do qual deseja obter dados. Ao clicar em ‘criar um conjunto de chaves’ um novo formulário será aberto como mostrado.

Recomendado Read: Como classificar mais alto e obter suas listagens visto na busca do eBay?

Insira os detalhes válidos e clique em ‘Continuar para criar chaves’ para gerar chaves para este aplicativo e as chaves do aplicativo serão exibidas na próxima tela. Aqui você receberá três chaves: –

  • DevID- Identificador exclusivo da conta do desenvolvedor (ou empresa).
  • AppID- Identificador exclusivo para o aplicativo.
  • CertID- Certificado que autentica o aplicativo ao fazer chamadas de API. Não confundir com tokens de autenticação em nível de usuário

PASSO 4:- Gerar token de usuário do eBay

Para gerar um token de usuário do eBay, clique em ‘Tokens de usuário’ correspondente à chave de ID do aplicativo, conforme mostrado na imagem acima. Depois de clicar em ‘User Tokens’ você verá a tela abaixo:-

Clique no botão Entrar mostrado na imagem. Ele irá redirecioná-lo para a respectiva conta do eBay (produção/sandbox).

Agora, faça login aqui com uma credencial de usuário válida do eBay para a qual você deseja gerar tokens.

Leitura Recomendada: 4 dicas finais para aumentar as vendas no eBay

PASSO 5:- Autorizar o Aplicativo eBay

Faça login na sua conta do eBay e clique no botão “Concordo”. Além disso, permitirá que qualquer um de seus aplicativos cliente use o token ao fazer conexões HTTP.

PASSO 6:- Obtenha um token de usuário

O procedimento de criação do token do usuário está concluído. Seu navegador irá vinculá-lo a uma página que lista seu token de usuário. Basta copiar esse token recém-gerado e usá-lo quando necessário.

Lembre-se de que este token expirará após 18 meses. Portanto, talvez seja necessário regenerá-lo após esse período.

Leitura Recomendada: Como criar uma conta no eBay Sandbox?

No final:

Prestashop, Opencart, Magento 2 e WooComerce são todos compatíveis com KnowBand’s Integrador do eBay Marketplace. Esse método inteligente permite que os vendedores comecem a vender rapidamente no eBay Marketplace. Além disso, a KnowBand oferece três meses de serviço gratuito para esses módulos de integração. No entanto, você pode selecionar o módulo integrador apropriado para sua loja. Integrador do WooCommerce eBay Marketplace,

Integrador do Opencart eBay Marketplace,

Magento 2 eBay e

Integrador de Mercado Prestashop eBay.

Como criar a API do serviço Web do módulo Prestashop?

Este blog é sobre como criar e usar a API Prestashop Webservices. Prestashop possui uma ferramenta Web Services padrão disponível que permite acessar a loja a partir de aplicativos remotos.

Pré-requisitos

  1. Sua loja Prestashop deve ter a “reescrita do módulo” habilitada para o Apache.
  2. É preferível usar SSL (https:) para chamadas de serviços web, pois evita 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.

Para garantir a segurança e eficiência dos seus serviços Web Prestashop, é essencial usar SSL (HTTPS) para todas as chamadas de serviços web. Isso evita ataques “man in the middle”, protegendo seus dados durante a transmissão. Além disso, verificar se o seu servidor suporta os métodos HTTP GET, POST, PUT, DELETE e HEAD é crucial para uma operação perfeita. Ao definir essas configurações, você otimiza o desempenho e a segurança da sua loja, garantindo acesso e gerenciamento confiáveis dos seus recursos Prestashop através da API.

Como configurar Web Services no Prestashop?

1. Faça login no back-office do Prestashop. 2. Navegue até Parâmetros avançados -> opções de menu Serviços da Web para abrir a página Serviços da Web.

 

3. Será redirecionado para a página de Web Services com a listagem de Web Services disponíveis e o formulário de configuração para configurar o serviço. 4. O formulário Configuração possui os seguintes campos:

a) Habilite o serviço web do Prestashop: Habilite a configuração para usar o serviço web na Prestashop Store.

b) Habilite o 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 Web Services na sua loja Prestashop.

Como adicionar/atualizar serviços web no Prestashop?

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

4. Clique no botão “Adicionar nova chave de serviço web” para adicionar uma nova chave de serviço web para acessar apenas determinados recursos da loja Prestashop.

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

b) Descrição da chave: você pode fornecer a descrição da chave para melhor compreensão.

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

d) Permissão: Forneça permissão para acessar os dados usando uma 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 moedas. 5. Clique no botão Salvar para adicionar a chave aos serviços da web.

Como acessar o Web Service?

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

a) Nome de usuário: Insira a chave do serviço web gerado na etapa acima. Por exemplo MWMHJVB9PBYBNYBSFTQ8ZXRCM43FQ2MW

b) Senha: Deve estar em branco, pois nenhuma senha é necessária. Após o login, você acessará a lista de recursos e todas as opções CRUD permitidas que você configurou em sua Loja Prestashop.

Agora você está conectado com sucesso ao serviço web Prestashop.

a) Para OBTER a lista de entidades de 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 ID 10

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

Recomendo Assistir:

Como criar API de serviço web do módulo Prestashop para Prestashop 1.7?

Mostraremos como criar um módulo para buscar clientes. Para isso, registraremos um gancho addWebserviceResources de ServiceRequest para os recursos em vez de substituir a função getResources() da classe ServiceRequest no Prestashop 1.7. A criação de APIs de serviços web personalizadas no Prestashop 1.7 envolve o uso da classe WebserviceSpecificManagement. Isto permite definir funcionalidades específicas e gerenciar o processamento de dados. Por exemplo, implementar a classe WebserviceSpecificManagementKbCustomer permite lidar com os dados do cliente com eficiência. Portanto, esta abordagem fornece uma solução flexível e robusta para ampliar as capacidades do Prestashop, permitindo interações personalizadas com os dados da sua loja. Ao aproveitar essas opções avançadas de personalização, você pode criar soluções de comércio eletrônico mais dinâmicas e responsivas que atendam às necessidades comerciais exclusivas. 1. Registre o gancho addWebserviceResources no módulo.

função pública instalar() { pai::instalar(); $this->registerHook('addWebserviceResources'); retornar verdadeiro; }

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

função pública hookAddWebserviceResources() { return array( 'kbcustomer' => array( 'description' => 'Knowband Custom Customer', 'specific_management' => true, ), 'kbaddress' => array( 'description' => '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 que estão definidas na classe WebserviceSpecificManagementImages.php. Estes são:

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

1. Agora adicione a chave com o recurso kbcustomer no serviço web do 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. Adicionar include_once(_PS_MODULE_DIR_.’YOURMODULENAME/classes/WebserviceSpecificManagementKbCustomer.php’); no arquivo do seu módulo.

class WebserviceSpecificManagementKbcustomer implements WebserviceSpecificManagementInterface { /** @var WebserviceOutputBuilder */ protected $objOutput; saída $ protegida; /** @var WebserviceRequest */ protected $wsObject; função pública setUrlSegment($segmentos) { $this->urlSegment = $segmentos; retorne $isto; } função pública getUrlSegment() { return $this->urlSegment; } função pública getWsObject() { return $this->wsObject; } função pública getObjectOutput() { return $this->objOutput; } /** * Deve retornar uma string com valores específicos conforme WebserviceRequest espera. * * @return string */ public function getContent() { return $this->objOutput->getObjectRender()->overrideContent($this->output); } função pública setWsObject(WebserviceRequestCore $obj) { $this->wsObject = $obj; retorne $isto; } /** * @param WebserviceOutputBuilderCore $obj * @return WebserviceSpecificManagementInterface */ public function setObjectOutput(WebserviceOutputBuilderCore $obj) { $this->objOutput = $obj; retorne $isto; } função pública gerenciar() { $objetos_produtos = array(); $objects_products['empty'] = novo Cliente(); $customer_list = Cliente::getCustomers(); foreach ($customer_list as $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:

Se você deseja a saída no formato JSON, anexe &output_format=JSON no final do 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}]}

No fim!

Com mais de 13 anos de experiência técnica, a Knowband oferece serviços abrangentes de desenvolvimento de aplicativos e web usando as tecnologias mais recentes, incluindo vários frameworks PHP e React. Fornecemos mais de 100 extensões prontas para uso para plataformas populares de comércio eletrônico, como Prestashop, Opencart, WooCommerce e Magento 2. Para qualquer dúvida, sinta-se à vontade para entrar em contato conosco pelo e-mail support@knowband.com. A Knowband também é um parceiro Premium Prestashop e um vendedor Superher, fornecendo mais de 100 módulos Prestashop para atender a todas as suas necessidades de comércio eletrônico. Confira nossos mais populares Módulo Supercheckout de uma página para Prestashop Aqui.

 

Complemento Supercheckout de uma página Prestashop

O complemento Prestashop One Page Supercheckout da Knowband torna o checkout mais rápido e fácil, colocando tudo em uma página, ajudando a reduzir o abandono do carrinho.

Compre agora