¿Cómo migrar la tienda Magento de Localhost al servidor?

Después de crear la tienda Magento de sus sueños en localhost, cuando llega el momento de moverla al servidor de producción, a veces la gente se pone nerviosa. Es pan comido y lo ayudaremos a migrar su tienda Magento de localhost a servidor de producción.

Requisito previo

1. Dominio de trabajo 2. Producción lista para Magento

Dominio de trabajo

Por dominio de trabajo se entiende el dominio en el que vas a alojar tu tienda. Por ejemplo�https://mademo1.knowband.com

Producción lista para Magento

Significa que debe haber todos los elementos correctamente configurados en el servidor que se requieren para que se ejecute Magento. Si necesita ayuda con respecto a eso, puede consultar el enlace https://www.knowband.com/blog/magento-tutorials/install-magento-using-command-line/

Pasos para la migración

1. Exporte su base de datos localhost

Exporte la base de datos de su tienda localhost Magento. Hay dos formas de hacerlo A) A través de PhpMyAdmin B) CLI

Mi favorito personal es a través de la interfaz de línea de comandos (CLI), ya que es más rápido que el anterior. Veremos cada forma una por una.

a) PhpMyAdmin

Inicie sesión en su PhpMyAdmin y vaya a su base de datos. Allí verá la opción “Exportar” en el encabezado. Aquí “testmage1” es el nombre de mi base de datos. Compruebe la imagen de abajo para referencia

PhpMyAdmin

b) CLI

CLI o interfaz de línea de comandos es mejor que PhpMyAdmin ya que es más rápido.

mysqldump -u root -p testmage1 > nombre_base_datos.sql

Ponga el nombre de su base de datos en el lugar de mago de prueba1. Este comando creará el volcado de su base de datos con el nombre nombre_base_datos.sql

2. Comprime y sube tus archivos Magento

Después de exportar la base de datos, ahora es el momento de comprimir los archivos de su tienda Magento. Crea el zip de todos los archivos de tu tienda. De esta manera, será fácil cargarlo en el servidor. Ahora abra Filezilla y cargue el archivo comprimido en el servidor y extráigalo en la carpeta requerida.

3. Importar base de datos

Ahora es el momento de importar su base de datos en su producción. Ahora de nuevo hay dos formas de hacerlo.

a) PhpMyAdmin

Inicie sesión en su PhpMyAdmin de producción y cree una base de datos vacía con el mismo nombre que en su servidor local. Después de crear una base de datos, verá “Importa” opción en el encabezado. Verifique la imagen como referencia.

Después de hacer clic en Importar navegador, archivo como se muestra en la imagen y haga clic en IR. Esto tomará unos minutos y su base de datos será importada.

b) CLI

Para importar la base de datos a través de CLI, debe cargar su archivo de base de datos a través de FTP e iniciar sesión en su servidor a través de la terminal. Use el siguiente comando para importar la base de datos

mysql -u nombre de usuario -p nombre_base_de_datos < archivo.sql

Aquí database_name es el nombre de la base de datos en la que se importará su archivo y file.sql es el archivo que está importando.

4. Modificar local.xml

Ahora necesitamos modificar nuestro archivo local.xml para que nuestro Magento pueda acceder a la base de datos. Abra Magento_Root/app/etc/local.xml En él busque nodo.



Actualice estas etiquetas según la configuración de producción. La conectividad de su base de datos ya está lista.

5. Actualizar nombre de dominio

Ahora es el momento de ingresar el nombre de dominio en la base de datos. Mesa abierta core_config_data y actualice su dominio en 1.web/unsecure/base_url 2.web/secure/base_url como se muestra en la imagen.

6. Vaciar caché

Ahora es el momento de actualizar su caché, ya que puede haber algo de caché de su máquina host local. Para actualizar su caché, vaya a Magento_Root/var/cache Esta carpeta contiene su caché. Elimine todos los archivos y el directorio de esta carpeta. Ahora ya está todo listo. Su tienda Magento se migró con éxito de localhost a servidor de producción. Vaya a su navegador web e ingrese su dominio en la base de direcciones y presione enter. Su sitio web se abrirá como estaba en su localhost.

Línea de fondo

Estos son los pasos para migrar su tienda localhost Magento al servidor de producción. Mantenga siempre una copia de seguridad de su código y base de datos en caso de que algo salga mal. Si su sitio web no se abre correctamente, vuelva a realizar los pasos mencionados anteriormente y compruebe si se ha perdido algo. Codificación feliz 🙂

How to Track Visitor?s Data on Magento?

Magento es una de las plataformas de comercio electrónico de código abierto más poderosas basadas en PHP. Una de sus potentes características es el sistema de registro de actividad del usuario. Al utilizar los datos del usuario, podemos analizar el comportamiento de los clientes / visitantes que, en última instancia, ayuda en los negocios. Por ejemplo, si sabemos que los clientes visitan con frecuencia una sección particular de una categoría, puede ejecutar la campaña para aumentar la tasa de conversión en términos de un pedido realizado en su tienda Magento.

Magento tiene un módulo dedicado. Mage_Log para almacenar el registro del cliente / visitante.

Almacena principalmente los siguientes datos 1. Clientes que iniciaron sesión en 2. Visitantes actuales 3. Visitantes pasados ​​4. Detalles como IP, Primera visita, Última visita, etc.

Dos tablas principales en las que se almacenan los datos son

1.log_customer 2.log_visitor

Cada vez que un usuario visita la tienda, Magento genera un visitante_id y almacenarlo en una log_visitor mesa. Cuando un cliente registrado visita la tienda usando sus credenciales, entonces un log_customer tabla se actualiza.

Uno puede habilitar o deshabilitar la opción de registro desde el panel de administración de Magento. Pasos para hacerlo son

Ve a:

Sistema

Podemos obtener los datos de los visitantes utilizando el siguiente código

$ visitor_data = Mage :: getSingleton ('core / session') -> getVisitorData ();

Aquí $ visitor_data devolverá una matriz de la información del cliente / visitante que se almacena en la sesión

Array ([] => [server_addr] => 197777237 [remote_addr] => 197777237 [http_secure] => [http_host] => www.testmage1.com [http_user_agent_agent] = Mozilla / 5.0 (X11; Linux x86_XUMGX) (KHTML, como Gecko) Chrome / 64 Safari / 537.36 [HTTP_ACCEPT_LANGUAGE] => en-US, en; q = 68.0.3440.84 [HTTP_ACCEPT_CHARSET] => [request_uri] => / test [session_id] => njt537.36e0.9cc3g2c4o5gccnjs85ep8 [HTTP_REFERER] => [ first_visit_at] => 1-3-2018 11: 22: 14 [is_new_visitor] => [last_visit_at] => 42-15-2018-11: 22 [visitor_id] [x_UMX]

Si necesita algunos datos específicos, como la primera vez que visitó el primer visitante, también puede usar su modelo

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

Espero que esto le ayude a rastrear los datos de los visitantes en su tienda Magento. Feliz codificación 🙂

¿Cómo crear un cliente programáticamente en Magento?

Magento es una de las plataformas de comercio electrónico más flexibles y más utilizadas en la actualidad. Muchas veces durante nuestro desarrollo necesitamos crear clientes a través de nuestro código. Por ejemplo, si estamos desarrollando un complemento de Magento para conectar nuestra tienda Magento a mercados como Walmart, Etsy, etc., creamos un pedido para el cliente a través de nuestro código. Pero para crear un pedido, necesitamos crear un cliente si ese cliente no existe en nuestra tienda Magento. Podemos crear clientes en Magento simplemente usando el siguiente código.

Código para crear un cliente en 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); intente {$ _newCustomer-> save (); } catch (Exception $ e) {Mage :: getSingleton ('customer / session') -> addException ($ e, $ this -> __ ('Error al crear cliente')); Mage :: logException ($ e); } <a href="https://www.knowband.com/blog/wp-content/uploads/2018/10/untitled-26.png"> <img class = "alignnone size-medium wp-image-22306" src = "https://www.knowband.com/blog/wp-content/uploads/2018/10/untitled-26-300x48.png" alt = "creating-customer-in-magento" width = "300" height = "48" /> </a>

Pero este cliente solo tiene información muy básica como nombre, apellido, correo electrónico, etc. No tiene dirección de envío ni de facturación. Podemos guardar la información completa de la dirección del cliente a través del siguiente código.

Código para guardar la dirección del cliente:

$ _website = Mage :: app (); getWebsite (); $ _customerEmail = 'demo@demo.com'; // Correo electrónico del cliente $ _countryId = 'IN'; $ _postCode = '201301'; $ _city = 'Noida'; $ _telephone = '1111111111'; $ _fax = ''; $ _company = 'Velocity Software Solutions'; $ _street = ''; $ _customer = Mage :: getModel ('cliente / cliente') -> setWebsiteId ($ _ website ->; getId ()) -> loadByEmail ($ _ customerEmail); $ _customerAddress = Mage :: getModel ("customer / address"); $ _customerAddress-> setCustomerId ($ _ customer-> getId ()) -> setFirstname ($ _ customer-> getFirstname ()) -> setMiddleName ($ _ customer-> getMiddlename ()) -> setLastname ($ _ customer-> getLastname ()) -> setCountryId ($ _ countryId) -> setPostcode ($ _ postCode) -> setCity ($ _ city) -> setTelephone ($ _ telephone) -> setFax ($ _ fax) -> setCompany ($ _ company) -> setStreet ($ _ street) - > setIsDefaultBilling ('1') -> setIsDefaultShipping ('1') -> setSaveInAddressBook ('1'); intente {$ _customerAddress-> save (); } catch (Exception $ e) {Mage :: getSingleton ('customer / session') -> addException ($ e, $ this -> __ ('Error al guardar la dirección del cliente.')); Mage :: logException ($ e); } <a href="https://www.knowband.com/blog/wp-content/uploads/2018/10/untitled-27.png"> <img class = "alignnone size-medium wp-image-22308" src = "https://www.knowband.com/blog/wp-content/uploads/2018/10/untitled-27-300x133.png" alt = "saving-address-of-customer" width = "300" height = "133" /> </a>

Ahora la información de la dirección del cliente está completa. Espero que el código mencionado lo ayude a agregar un nuevo cliente a su tienda Magento.


¿Cómo instalar Magento usando la línea de comandos?

Magento es una de las mejores plataformas de código abierto basadas en comercio electrónico escrita en PHP. Magento proporciona tres plataformas diferentes:

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

Aquí aprenderemos cómo instalar Magento usando la línea de comandos (CLI). La instalación de la línea de comandos de Magento es una de las formas más eficientes de instalar si la estamos instalando en servidores.

Descargar Magento Community Edition 1.X

Uno puede descargar la versión requerida de Magento desde el sitio web oficial del magneto. Utilice el siguiente enlace para descargar su paquete.

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

Se le pedirá que inicie sesión. Si no tiene una cuenta, cree una cuenta y continúe.

Descomprimiendo el archivo descargado

Mueva el archivo a un directorio donde desea instalarlo y descomprímalo.

a) Si es un archivo zip usando la siguiente forma:

Sintaxis:- descomprimir nombre_archivo, por ejemplo,

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

b) Si es un archivo tar, use el siguiente modo:

Sintaxis:- tar xf nombre_archivo, por ejemplo,

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

Requisito previo para la instalación de Magento:

Para la instalación del Magento, deberá cumplir con los requisitos estándar del sistema. Según la documentación de Magento, debe cumplir los siguientes requisitos para la instalación de Magento.

a) Medio ambiente:

LAMP (Linux, Apache, MySQL y PHP) o LNMP stack

b) Sistema operativo:

Linux x 86, x86-64

c) Servidor web:

  • Apache 2.x
  • Nginx 1.7.x

d) Alojamiento del servidor:

  • Capacidad para ejecutar trabajos programados (crontab) con PHP 5.
  • Posibilidad de anular opciones en archivos .htaccess.

e) PHP:

  • PHP 5.6
  • PHP 5.5
  • PHP 5.4

f) Extensiones requeridas:

  • PDO_MySQL
  • Simplexml
  • Mcrypt
  • Hachís
  • GD
  • DOM
  • Iconv
  • Curl
  • SOAP (para API de servicios web)

g) Configuración adicional:

  • modo seguro desactivado
  • el límite de memoria no es inferior a 256 MB (se recomienda 512 MB)

h) Base de datos:

  • MySQL 5.6 (Oracle o Percona)

Para información detallada por favor revise:

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

Configuración de la base de datos

Ahora vamos a configurar la base de datos para nuestro Magento. Para configurar la base de datos uno debe tener las siguientes cosas

  1. DB Host
  2. Nombre de DB
  3. Nombre de usuario de DB
  4. Contraseña DB

Pasos para crear una base de datos:

Paso 1. Inicie sesión en su MySQL:

MySQL -uDB_User -pDB_Password -hDB_Host

a) DB_User: – Nombre de usuario de MySQL

b) DB_Password: – Contraseña del MySQL

c) DB_Host: – Nombre de host de MySQL

Paso 2. Crear una base de datos:

Sintaxis: – crear base de datos DB_NAME Por ejemplo crear base de datos kb_mage_db; aquí kb_mage_db Es el nombre de la base de datos que estamos creando.

Paso 3. Compruebe la base de datos recién creada utilizando el comando siguiente

Mostrar bases de datos; Esto mostrará la lista de todas las bases de datos creadas en su sistema. Aquí el nombre de la

Paso 3. Salga de su servidor MySQL usando el siguiente comando

Salida;

Instalacion de magento

Para la instalación de CLI, necesitamos ejecutar el siguiente comando:

php -f install.php - \ --license_agreement_acuerdo "yes" \ --locale "en_US" \ --timezone "America / Los_Angeles" \ --default_currency "USD" \ --db_host "DB_HOST" \ --db_name " DB_NAME "\ --db_user" DB_USER "\ --db_pass" DB_PASS "\ --db_prefix" DB_PREFIX "\ --admin_frontname" ADMIN_FRONT_NAME "\ --url" SITE_URL "\ --use_rewrites" yes "\ --use_secure" "\ --secure_base_url" SITE_URL "\ --use_secure_admin" yes "\ --admin_firstname" ADMIN_FIRST_NAME "\ --admin_lastname" ADMIN_FIRST_NAST_NAME "\ --admin_email" EMAIL "\ --admin_finalstars_ces_zent_zent_zent_sz_zars_zars_zz_NAME_NAME_NAME_NAME_NAME_NAME_NAME_NAME_NAME_NAME_NAME_NAME_NOMBRE

Explicación de las palabras clave utilizadas en el comando CLI.

  1. Configuración regional: coloque el código de idioma como "en_US" que desea usar en Magento.
  2. Zona horaria: coloque la zona horaria que desea utilizar en Magento. En este caso, hemos utilizado "América / Los_Angeles".
  3. Default_currency: coloca la moneda que quiere usar en Magento.
  4. DB_HOST – Nombre de host de la base de datos, en caso de un sistema local puesto localhost
  5. DB_NAME: el nombre de su base de datos, por ejemplo, kb_mage_db
  6. DB_USER – El nombre de usuario con derechos de acceso a la base de datos
  7. DB_PASS – La contraseña para el usuario de la base de datos
  8. SITE_URL – La ruta donde está instalado Magento, por ejemplo https://www.kbmagedomain.com/
  9. ADMIN_FIRST_NAME – Nombre del administrador
  10. ADMIN_LAST_NAME – Apellido del administrador
  11. CORREO ELECTRÓNICO: la dirección de correo electrónico del propietario de la tienda, por ejemplo, email@knowband.com
  12. NOMBRE DE USUARIO – El nombre de usuario del administrador. Esto se utilizará para iniciar sesión en el backend magneto.
  13. CONTRASEÑA – La contraseña del administrador. Esto se utilizará para iniciar sesión en el backend magneto.

Después de la instalación del Magento, el mensaje de éxito se mostrará con el ID de cifrado. Ahora abra su navegador favorito y verifique que instaló Magento usando la URL que usó.


¿Cómo crear órdenes programáticamente en Magento?

A veces necesitamos crear órdenes programáticamente en Magento. Supongamos que está creando un complemento de Magento para su tienda para conectarlo al mercado como Walmart o Etsy.

Pasos involucrados en la creación de orden:

  • Definiremos los datos del cliente como nombre, apellido, correo electrónico.
  • Definir dirección de envío y facturación del cliente.
  • Definir el método de envío y pago del cliente.
  • Defina el producto y la cantidad que debe solicitarse en nuestra tienda Magento.
  • Crea un cliente si el cliente no existe en nuestra tienda Magento. Es un paso opcional.
  • Añadir producto a la cotización del cliente.
  • Agregue la dirección de envío y facturación a la cotización del cliente.
  • Preparar y guardar cotización del cliente.
  • El pedido se crea en su tienda Magento.

Utilizar

         $ _store = Mage :: app () -> getStore (); $ _website = Mage :: app () -> getWebsite (); $ _firstName = John '; $ _lastName = 'doe; $ _email = 'demo@demo.com'; / * Dirección de facturación personalizada * / $ 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', // Código de país 'region' => 'UP', 'region_id' => '', 'postcode' => '201301', ' telephone '=>' 888-888-8888 ',' fax '=>' ',' save_in_address_book '=> 1); / * * Dirección de envío personalizada * / $ 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', // Código de país 'region' => 'UP', 'region_id' => '', 'postcode' => '201301', ' telephone '=>' 888-888-8888 ',' fax '=>' ',' save_in_address_book '=> 1); / ** * Ingrese el método de envío que desea utilizar. Algunos de los otros métodos de envío * son tablerate_tablerate, freeshipping_freeshipping etc. * Aquí estamos usando flatrate_flatrate * / $ _shippingMethod = 'flatrate_flatrate'; / ** * Ingrese el método de pago que desea utilizar. Algunos de los métodos de pago * de la orden son checkmo, libre, transferencia bancaria, ccsave, orden de compra, etc. * / $ _paymentMethod = 'cashondelivery'; / ** * Proporcionar variedad de productos y su cantidad. * $ 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); / ** * Preparando al cliente para el presupuesto * Si el cliente no está registrado, crearemos un nuevo cliente. Esto es * un proceso opcional. * / if (! $ customer-> getId ()) {$ customer = Mage :: getModel ('customer / customer'); $ customer-> setWebsiteId ($ _ website-> getId ()) -> setStore ($ _ store) -> setFirstname ($ _ firstName) -> setLastname ($ _ lastName) -> setEmail ($ _ email); / ** * Crear nuevo cliente * Omitir try-catch si no desea crear un nuevo cliente. * / try {// Generando contraseña para el cliente. También puede utilizar cualquier // contraseña personalizada para ello. $_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 es la matriz de la respuesta con el estado de la creación del pedido. * / $ response ['success'] = true; $ respuesta ['error'] = falso; $ respuesta ['mensajes'] = 'Número de pedido'. $ incrementId. ' creado con éxito. '; } catch (Mage_Core_Exception $ e) {$ response ['success'] = falso; $ respuesta ['error'] = verdadero; $ respuesta ['mensajes'] = $ e-> getMessage (); Mage :: logException ($ e); } catch (Exception $ e) {$ response ['success'] = false; $ respuesta ['error'] = verdadero; $ respuesta ['mensajes'] = $ esto -> __ ('Error al procesar la orden. Por favor, inténtelo de nuevo más tarde.'); Mage :: logException ($ e); } Mage :: app () -> getResponse () -> setBody (Mage :: helper ('core') -> jsonEncode ($ response));

Por favor, vaya a través del código mencionado anteriormente


¿Cómo ejecutar consultas directas de SQL en Magento?

Hoy aprenderemos a correr.

Obtener el modelo de recursos básicos –

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

Después de esto necesitamos crear una conexión de lectura o escritura según nuestra necesidad.

/ ** * Recuperar la conexión de lectura * / $ readConnection = $ resource-> getConnection ('core_read'); / ** * Recuperar la conexión de escritura * / $ writeConnection = $ resource-> getConnection ('core_write');

Obteniendo el nombre correcto de la tabla –

Si no conoce el prefijo de la tabla, puede usar el código de abajo para obtener el nombre correcto de la tabla.

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

Si el prefijo es mago_ entonces el nombre de la tabla que devolverá será mage_catalog_product_entity

Lectura de datos –

Para leer datos de la tabla usa el siguiente código

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

Aquí, $ query_result devolverá el resultado de la consulta de selección. En nuestro caso devolverá la matriz de todo el producto. En caso de que necesite datos de solo producto, utilice el siguiente comando.

$ query = "seleccione * de {$ _tableName} donde entity_id = {$ _ productId}"; $ query_result = $ readConnection-> fetchAll ($ query);

aquí $ _productId Es el id del producto cuyos datos necesitamos.

Escritura de datos –

Para insertar datos en la tabla use el siguiente código.

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

Datos actualizados –

Si tenemos que actualizar el type_id de un producto a "configurable", entonces podemos usar el siguiente código. Aquí $ _productId es la identificación del producto.

$ update_query = "ACTUALIZAR {$ _tableName} SET type_id =" configurable "WHERE entity_id = {$ _ productId}"; $ writeConnection-> query ($ update_query); Pero Magento ha proporcionado el concepto del modelo para la conexión de la base de datos ya que proporciona una abstracción y son más seguros que las consultas SQL directas.