Como migrar a loja Magento do localhost para o servidor?

Depois de criar sua loja Magento dos sonhos no host local, quando é hora de movê-la para o servidor de produção, às vezes as pessoas ficam nervosas. É muito fácil e nós o ajudaremos a migrar sua loja Magento do localhost para o servidor de produção.

Requisito prévio

1. Domínio de trabalho 2. Produção pronta para Magento

Domínio de trabalho

Por domínio de trabalho significa o domínio no qual você hospedará sua loja. Por exemplo�https://mademo1.knowband.com

Produção pronta para Magento

Isso significa que deve haver todos os elementos configurados corretamente no servidor que são necessários para que um Magento seja executado. Se você precisar de alguma ajuda sobre isso, então você pode verificar o link https://www.knowband.com/blog/magento-tutorials/install-magento-using-command-line/

Etapas para migração

1. Exporte seu banco de dados localhost

Exporte seu banco de dados de armazenamento localhost Magento. Existem duas maneiras de fazer isso A) Via PhpMyAdmin B) CLI

Meu favorito pessoal é via interface de linha de comando (CLI), pois é mais rápido que o anterior. Veremos cada caminho um por um.

a)PhpMyAdmin

Faça login no seu PhpMyAdmin e vá para o seu banco de dados. Lá você verá a opção “Exportar” no cabeçalho. Aqui “testmage1” é o nome do meu banco de dados. Verifique a imagem abaixo para referência

PhpMyAdmin

b) CLI

CLI ou interface de linha de comando é melhor que PhpMyAdmin, pois é mais rápido.

mysqldump -u root -p testmage1 > database_name.sql

Coloque o nome do seu banco de dados no lugar de testmage1. Este comando irá criar o dump do seu banco de dados com o nome database_name.sql

2. Comprima e carregue seus arquivos Magento

Depois que o banco de dados foi exportado, agora é hora de compactar seus arquivos de armazenamento Magento. Crie o zip de todos os arquivos da sua loja. Desta forma, será fácil carregá-lo no servidor. Agora abra o Filezilla e carregue o arquivo compactado no servidor e extraia-o na pasta necessária.

3. Banco de dados de importação

Agora é hora de importar seu banco de dados em sua produção. Agora, novamente, existem duas maneiras de fazer isso

a) PhpMyAdmin

Faça login no seu PhpMyAdmin de produção e crie um banco de dados vazio com o mesmo nome do seu localhost. Depois de criar um banco de dados, você verá “importação” no cabeçalho. Verifique a imagem para referência.

Após clicar no navegador Importar você arquiva como mostra a imagem e clique em GO. Isso levará alguns minutos e seu banco de dados será importado.

b) CLI

Para importar banco de dados via CLI, você precisa fazer upload do arquivo de banco de dados via FTP e fazer login no seu servidor via terminal. Use o seguinte comando para importar o banco de dados

mysql -u nome de usuário -p database_name < arquivo.sql

Aqui database_name é o nome do banco de dados no qual seu arquivo será importado e file.sql é o arquivo que você está importando.

4. Modifique local.xml

Agora precisamos modificar nosso arquivo local.xml para que nosso Magento possa acessar o banco de dados. Abra Magento_Root/app/etc/local.xml Nele procure por nó.



Atualize essas tags de acordo com a configuração de produção. Sua conectividade com o banco de dados está concluída agora.

5. Atualize o nome do domínio

Agora é hora de fazer a entrada do nome de domínio no banco de dados. Mesa aberta core_config_data e atualize seu domínio em 1.web/unsecure/base_url 2.web/secure/base_url conforme mostrado na imagem.

6. Liberar Cache

Agora é hora de atualizar seu cache, pois pode haver algum cache de sua máquina localhost. Para atualizar seu cache vá para Magento_Root/var/cache Esta pasta contém seu cache. Exclua todos os arquivos e diretório desta pasta. Agora você está tudo pronto. Sua loja Magento foi migrada com sucesso do localhost para o servidor de produção. Vá para o seu navegador da web e digite seu domínio na base de endereços e pressione enter. Seu site será aberto como estava em seu localhost.

Bottomline

Estas são as etapas para migrar sua loja Magento localhost para o servidor de produção. Sempre mantenha backup de seu código e banco de dados caso algo dê errado. Se o seu site não estiver abrindo corretamente, siga as etapas acima mencionadas novamente e verifique se você perdeu alguma coisa. Boa codificação 🙂

How to Track Visitor?s Data on Magento?

Magento é uma das mais poderosas plataformas de e-commerce de código aberto baseada em PHP. Uma de suas características poderosas é o sistema de registro de atividades do usuário. Ao usar os dados do usuário, podemos analisar o comportamento dos clientes / visitantes, o que ajuda nos negócios. Por exemplo, se sabemos que os clientes visitam com frequência uma seção específica de uma categoria, você pode executar a campanha para aumentar a taxa de conversão em termos de um pedido feito em sua loja Magento.

Magento tem um módulo dedicado Mage_Log para armazenar o log do cliente / visitante.

Ele armazena principalmente os seguintes dados 1.Customers que se conectaram 2.Current Visitantes 3.Past Visitantes 4.Details como IP, primeira visita, última visita etc

Duas tabelas principais nas quais os dados são armazenados são

1.log_customer 2.log_visitor

Toda vez que um usuário visita a loja, o Magento gera um visitor_id e armazená-lo em um log_visitor mesa. Quando um cliente registrado visita a loja usando suas credenciais, um log_customer tabela é atualizada.

Pode-se habilitar ou desabilitar a opção de log do painel de administração do Magento. Passos para fazer isso são

Vamos para

Sistema

Podemos obter os dados do visitante usando o seguinte código

$ visitante_data = Mago :: getSingleton ('core / session') -> getVisitorData ();

Aqui $ visitor_data retornará uma matriz das informações do cliente / visitante que são armazenadas na sessão

Array ([] => [server_addr] => 197777237 [remote_addr] => 197777237 [http_secure] => [http_host] => www.testmage1.com [http_user_agent] => Mozilla / 5.0 (X11; Linux x86_64) AppleWebKit / 537.36 (KHTML, como o Gecko) Chrome / Safari 68.0.3440.84 / 537.36 [http_accept_language] => en-US, en; q = 0.9 [http_accept_charset] => [request_uri] => / teste [session_id] => njt3e2cc4g5c85o8gccnjs1ep3 [http_referer] => [ first_visit_at] => 2018-11-22 14: 42 15 [is_new_visitor] => [last_visit_at] => 2018 11 22 14 42 [visitante_id] = 20)

Se você precisar de alguns dados específicos, como o primeiro visitante na última visita, você também pode usar o modelo dele

echo $ firstVisitAt = Mage :: getModel ('log / visitante') -> getFirstVisitAt (); echo $ lastVisitAt = Mage :: getModel ('log / visitante') -> getLastVisitAt ();

Espero que isso ajude você a rastrear os dados do visitante em sua loja Magento. Codificação Feliz 🙂

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.