Jak przeprowadzić migrację sklepu Magento z Localhost na serwer?

Po stworzeniu wymarzonego sklepu Magento na localhoście, gdy nadchodzi czas przeniesienia go na serwer produkcyjny, ludzie czasami się denerwują. To bułka z masłem, a my pomożemy Ci w migracji Twojego sklepu Magento z lokalnego hosta na serwer produkcyjny.

Przesłanka

1. Działająca domena 2. Produkcja gotowa na Magento

Domena robocza

Przez działającą domenę rozumie się domenę, na której będziesz hostować swój sklep. Na przykład�https://mademo1.knowband.com

Produkcja gotowa na Magento

Oznacza to, że na serwerze powinny znajdować się wszystkie elementy wymagane do uruchomienia Magento. Jeśli potrzebujesz pomocy w tym zakresie, możesz sprawdzić link https://www.knowband.com/blog/magento-tutorials/install-magento-using-command-line/

Kroki do migracji

1. Wyeksportuj bazę danych localhost

Wyeksportuj bazę danych lokalnego sklepu Magento. Można to zrobić na dwa sposoby A) Przez PhpMyAdmin B) CLI

Moim osobistym faworytem jest interfejs wiersza poleceń (CLI), ponieważ jest szybszy niż poprzedni. Zobaczymy każdy sposób jeden po drugim.

a)PhpMyAdmin

Zaloguj się do PhpMyAdmin i przejdź do swojej bazy danych. Tam zobaczysz opcję „Eksportuj” w nagłówku. Tutaj “testmage1” to nazwa mojej bazy danych. Sprawdź poniższy obraz w celach informacyjnych

PhpMyAdmin

b) CLI

Interfejs CLI lub wiersza poleceń jest lepszy niż PhpMyAdmin, ponieważ jest szybszy.

mysqldump -u root -p testmage1 > nazwa_bazy_danych.sql

Umieść nazwę swojej bazy danych w miejscu mag testowy1. To polecenie utworzy zrzut Twojej bazy danych o nazwie nazwa_bazy_danych.sql

2. Skompresuj i prześlij swoje pliki Magento

Po wyeksportowaniu bazy danych nadszedł czas na skompresowanie plików sklepu Magento. Utwórz zip wszystkich plików swojego sklepu. W ten sposób łatwo będzie wgrać go na serwer. Teraz otwórz Filezilla i prześlij spakowany plik na serwer i rozpakuj go w wymaganym folderze.

3. Importuj bazę danych

Teraz nadszedł czas na zaimportowanie bazy danych do produkcji. Teraz znowu są dwa sposoby na zrobienie tego

a) PhpMyAdmin

Zaloguj się do swojego PhpMyAdmin produkcji i utwórz pustą bazę danych o tej samej nazwie, co na lokalnym hoście. Po utworzeniu bazy danych zobaczysz „import” w nagłówku. Sprawdź obraz w celach informacyjnych.

Po kliknięciu przeglądarki Importuj plik, jak pokazano na obrazku, i kliknij GO. Zajmie to kilka minut, a Twoja baza danych zostanie zaimportowana.

b) CLI

Aby zaimportować bazę danych przez CLI, musisz przesłać plik bazy danych przez FTP i zalogować się do serwera za pomocą terminala. Użyj następującego polecenia, aby zaimportować bazę danych

mysql -u nazwa użytkownika -p nazwa_bazy_danych < plik.sql

Tutaj nazwa_bazy_danych to nazwa bazy danych, do której zostanie zaimportowany twój plik, a plik.sql to plik, który importujesz.

4. Zmodyfikuj plik local.xml

Teraz musimy zmodyfikować nasz plik local.xml, aby nasze Magento mogło uzyskać dostęp do bazy danych. Otwórz Magento_Root/app/etc/local.xml W tym wyszukaj węzeł.



Zaktualizuj te tagi zgodnie z konfiguracją produkcyjną. Twoja łączność z bazą danych jest teraz gotowa.

5. Zaktualizuj nazwę domeny

Teraz czas na wpis nazwy domeny do bazy danych. Otwórz tabelę core_config_data i zaktualizuj swoją domenę w 1.web/unsecure/base_url 2.web/secure/base_url, jak pokazano na obrazku.

6. Opróżnij pamięć podręczną

Teraz nadszedł czas, aby odświeżyć pamięć podręczną, ponieważ może być trochę pamięci podręcznej z twojego komputera lokalnego. Aby odświeżyć pamięć podręczną przejdź do Magento_Root/var/cache Ten folder zawiera Twoją pamięć podręczną. Usuń wszystkie pliki i katalog z tego folderu. Teraz wszystko gotowe. Twój sklep Magento został pomyślnie zmigrowany z lokalnego hosta na serwer produkcyjny. Przejdź do przeglądarki internetowej i wpisz swoją domenę w bazie adresowej i naciśnij enter. Twoja witryna otworzy się tak, jak na Twoim lokalnym hoście.

Bottomline

Oto kroki, aby przeprowadzić migrację lokalnego sklepu Magento na serwer produkcyjny. Zawsze twórz kopię zapasową kodu i bazy danych na wypadek, gdyby coś poszło nie tak. Jeśli Twoja witryna nie otwiera się poprawnie, wykonaj ponownie powyższe kroki i sprawdź, czy niczego nie przegapiłeś. Szczęśliwego kodowania:)

How to Track Visitor?s Data on Magento?

Magento to jedna z najpotężniejszych platform e-commerce open source opartych na PHP. Jedną z jego potężnych funkcji jest system rejestrowania aktywności użytkownika. Korzystając z danych użytkownika, możemy analizować zachowanie klientów / odwiedzających, co ostatecznie pomaga w biznesie. Na przykład, jeśli wiemy, że klienci często odwiedzają określoną sekcję kategorii, możesz uruchomić kampanię, aby zwiększyć współczynnik konwersji pod względem zamówienia złożonego w sklepie Magento.

Magento ma dedykowany moduł Mage_Log do przechowywania dziennika klienta / gościa.

Przechowuje głównie następujące dane 1. Klienci, którzy zalogowali się 2.Current Goście 3.Past Goście 4. Dane szczegółowe takie jak adres IP, pierwsza wizyta, ostatnia wizyta itp.

Dwie główne tabele, w których przechowywane są dane, są

1.log_customer 2.log_visitor

Za każdym razem, gdy użytkownik odwiedza sklep, Magento generuje visitor_id i przechowuj go w log_visitor stół. Kiedy zarejestrowany klient odwiedza sklep za pomocą swoich danych uwierzytelniających, a log_customer tabela jest aktualizowana.

Można włączyć lub wyłączyć opcję rejestrowania z panelu administracyjnego Magento. Kroki, aby to zrobić

Iść do

System?->?Configuration?->?System?->?Log

Możemy uzyskać dane odwiedzającego za pomocą następującego kodu

$ visitor_data = Mag :: getSingleton ("core / session") -> getVisitorData ();

Tutaj $ visitor_data zwróci tablicę informacji o kliencie / gościu przechowywanych w sesji

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, jak Gecko) Chrome / 68.0.3440.84 Safari / 537.36 [http_accept_language] => en-US, en; q = 0.9 [http_accept_charset] => [request_uri] => / test [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: 20 [visitor_id] => 19)

Jeśli potrzebujesz konkretnych danych, takich jak czas ostatniej wizyty, możesz również użyć jego modelu

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

Mam nadzieję, że pomoże ci to w śledzeniu danych odwiedzających w twoim sklepie Magento. Happy Coding 🙂

Jak programowo utworzyć klienta w Magento?

Magento jest obecnie jedną z najbardziej elastycznych i powszechnie używanych platform handlu elektronicznego. Wiele razy podczas naszego rozwoju musimy tworzyć klientów za pomocą naszego kodu. Na przykład, jeśli tworzymy wtyczkę Magento, aby połączyć nasz sklep Magento z takimi rynkami jak Walmart, Etsy itp., Tworzymy zamówienie dla klienta za pomocą naszego kodu. Aby utworzyć zamówienie, musimy utworzyć klienta, jeśli ten klient nie istnieje w naszym sklepie Magento. Możemy stworzyć klienta w Magento po prostu za pomocą następującego kodu.

Kod do tworzenia klienta w Magento:

$ _website = Mage :: app () -> getWebsite () -> getId (); $ store = Mage :: app () -> getStore (); $ _firstName = 'Jhon'; $ _lastName = 'Doe'; $ _customerEmail = 'demo@demo.com'; $ _customerPassword = '#KnowbandPlugins'; $ _newCustomer = Mage :: getModel („klient / klient”); $ _newCustomer-> setWebsiteId ($ _ website) -> setStore ($ store) -> setFirstname ($ _ firstName) -> setLastname ($ _ lastName) -> setEmail ($ _ customerEmail) -> setPassword ($ _ customerPassword); spróbuj {$ _newCustomer-> save (); } catch (Exception $ e) {Mage :: getSingleton ('customer / session') -> addException ($ e, $ this -> __ ('Błąd podczas tworzenia klienta')); 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 = "tworzenie-klienta-w-magento" szerokość = "300" wysokość = "48" /> </a>

Ale ten klient ma tylko podstawowe informacje, takie jak imię, nazwisko, e-mail itp. Nie ma adresu wysyłki ani adresu rozliczeniowego. Możemy zapisać pełne dane adresowe klienta za pomocą następującego kodu.

Kod do zapisania adresu klienta:

$ _website = Mage :: app (); getWebsite (); $ _customerEmail = 'demo@demo.com'; // E-mail klienta $ _countryId = 'IN'; $ _postCode = '201301'; $ _city = 'Noida'; $ _telephone = '1111111111'; $ _fax = ''; $ _company = 'Velocity Software Solutions'; $ _street = ''; $ _customer = Mage :: getModel ('customer / customer') -> setWebsiteId ($ _ website ->; getId ()) -> loadByEmail ($ _ customerEmail); $ _customerAddress = Mage :: getModel („klient / adres”); $ _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'); spróbuj {$ _customerAddress-> save (); } catch (Exception $ e) {Mage :: getSingleton ('customer / session') -> addException ($ e, $ this -> __ ('Błąd podczas zapisywania adresu klienta.')); 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 = "zapisywanie-adresu-klienta" width = "300" wysokość = "133" /> </a>

Teraz informacje o adresie klienta są kompletne. Mam nadzieję, że wspomniany powyżej kod pomoże Ci dodać nowego klienta do sklepu Magento.


Jak zainstalować Magento przy użyciu wiersza poleceń?

Magento to jedna z najlepszych platform open-source opartych na e-commerce, napisana w PHP. Magento oferuje trzy różne platformy:

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

Tutaj nauczymy się, jak zainstalować Magento za pomocą wiersza poleceń (CLI). Instalacja linii poleceń Magento jest jednym z najbardziej skutecznych sposobów instalacji, jeśli instalujemy go na serwerach.

Pobierz Magento Community Edition 1.X

Wymaganą wersję Magento można pobrać z oficjalnej strony magneto. Użyj poniższego linku, aby pobrać pakiet.

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

Poprosi o zalogowanie się. Jeśli nie masz konta, utwórz konto i przejdź dalej.

Zdekompresowanie pobranego pliku

Przenieś plik do katalogu, w którym chcesz go zainstalować i rozpakuj go.

a) Jeśli jest to plik zip, użyj następującej metody:

Składnia:- rozpakuj nazwa_pliku np. –

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

b) Jeśli jest to plik tar, użyj następującego sposobu:

Składnia:- tar xf nazwa_pliku np. –

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

Warunek instalacji Magento:

Aby zainstalować Magento, musisz spełnić standardowe wymagania systemowe. Zgodnie z dokumentacją Magento musisz spełnić następujące wymagania dotyczące instalacji Magento.

a) Środowisko:

LAMP (Linux, Apache, MySQL i PHP) lub stos LNMP

b) System operacyjny:

Linux x 86, x86-64

c) Serwer WWW:

  • Apache 2.x
  • Nginx 1.7.x

d) Hosting serwera:

  • Możliwość uruchamiania zaplanowanych zadań (crontab) za pomocą PHP 5.
  • Możliwość zastąpienia opcji w plikach .htaccess.

e) PHP:

  • PHP 5.6
  • PHP 5.5
  • PHP 5.4

f) Wymagane rozszerzenia:

  • PDO_MySQL
  • Simplexml
  • Mcrypt
  • Haszysz
  • GD
  • DOM
  • Iconv
  • Lok
  • SOAP (dla Webservices API)

g) Dodatkowa konfiguracja:

  • safe_mode wyłączony
  • limit_pamięci nie mniejszy niż 256 MB (zalecane 512 MB)

h) Baza danych:

  • MySQL 5.6 (Oracle lub Percona)

Aby uzyskać szczegółowe informacje, sprawdź:

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

Baza danych konfiguracji

Teraz ustawimy bazę danych dla naszego Magento. Aby skonfigurować bazę danych, należy mieć następujące rzeczy

  1. Host DB
  2. Nazwa DB
  3. Nazwa użytkownika DB
  4. Hasło DB

Kroki tworzenia bazy danych:

Krok 1. Zaloguj się do MySQL:

MySQL -uDB_User -pDB_Password -hDB_Host

a) DB_User: – Nazwa użytkownika MySQL

b) DB_Password: – Hasło MySQL

c) DB_Host: – Nazwa hosta MySQL

Krok 2. Utwórz bazę danych:

Składnia: – utwórz bazę danych DB_NAME Np. Utwórz bazę danych kb_mage_db; Tutaj kb_mage_db to nazwa tworzonej bazy danych.

Krok 3. Sprawdź nowo utworzoną bazę danych za pomocą poniższego polecenia

Pokaż bazy danych; Spowoduje to wyświetlenie listy wszystkich utworzonych baz danych w systemie. Oto nazwa

Krok 3. Wyjdź z serwera MySQL za pomocą następującego polecenia

wyjście;

Instalacja Magento

Aby zainstalować CLI, musimy uruchomić następujące polecenie:

php -f install.php - license_agreement_accepted "yes" locale "en_US" --imezone "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 "nazwa_adminu" ADMIN_FRONT_NAME "--url" SITE_URL "- use_rewrites" yes "use_secure" yes "-secure_base_url" SITE_URL "- use_secure_admin" yes "- nazwa_adminu" ADMIN_FIRST_NAME "--admin_lastname" ADMIN_FIRST_LAST_NAME "--admin_email" EMAIL "- admin_username" USERNAME "- admin_password" PASSWORD "" USERNAME "- admin_password" PASSWORD "

Wyjaśnienie słów kluczowych używanych w poleceniu CLI.

  1. Ustawienia regionalne: Umieść kod języka, taki jak „en_US”, którego chcesz używać w Magento.
  2. Strefa czasowa: Umieść strefę czasową, która ma być używana w Magento. W tym przypadku użyliśmy słowa „America / Los_Angeles”.
  3. Default_currency: Umieść walutę, której chcesz używać w Magento.
  4. DB_HOST – Nazwa hosta bazy danych, w przypadku systemu lokalnego umieść localhost
  5. DB_NAME – nazwa twojej bazy danych, np. Kb_mage_db
  6. DB_USER – Nazwa użytkownika z prawami dostępu do bazy danych
  7. DB_PASS – hasło dla użytkownika bazy danych
  8. SITE_URL – Ścieżka, na której zainstalowano Magento, np https://www.kbmagedomain.com/
  9. ADMIN_FIRST_NAME – Imię administratora
  10. ADMIN_LAST_NAME – nazwisko administratora
  11. EMAIL – adres e-mail właściciela sklepu, np email@knowband.com
  12. USERNAME – nazwa użytkownika administratora. Będzie to używane do logowania na zapleczu magneto.
  13. HASŁO – hasło administratora. Będzie to używane do logowania na zapleczu magneto.

Po instalacji Magento pojawi się komunikat o sukcesie z identyfikatorem szyfrowania. Teraz otwórz swoją ulubioną przeglądarkę i sprawdź, czy Magento został zainstalowany przy użyciu adresu URL, którego użyłeś.


Jak programowo tworzyć zamówienia w Magento?

Czasami musimy programowo tworzyć zamówienia w Magento. Załóżmy, że tworzysz wtyczkę Magento do swojego sklepu, aby połączyć ją z rynkiem, takim jak Walmart lub Etsy.

Kroki związane z tworzeniem zamówienia:

  • Określimy dane klienta, takie jak imię, nazwisko, e-mail.
  • Określ adres wysyłki i rozliczenia klienta.
  • Zdefiniuj sposób wysyłki i płatności klienta.
  • Zdefiniuj produkt i ilość, którą należy zamówić w naszym sklepie Magento.
  • Utwórz klienta, jeśli klient nie istnieje w naszym sklepie Magento. To opcjonalny krok.
  • Dodaj produkt do oferty klienta.
  • Dodaj adres wysyłki i faktury do oferty klienta.
  • Przygotuj i zapisz wycenę klienta.
  • Zamówienie jest tworzone w Twoim sklepie Magento.

Posługiwać się

         $ _store = Mage :: app () -> getStore (); $ _website = Mage :: app () -> getWebsite (); $ _firstName = John '; $ _lastName = 'doe; $ _email = 'demo@demo.com'; / * * Niestandardowy adres rozliczeniowy * / $ billingAddress = array ('customer_address_id' => '', 'prefix' => '', 'firstname' => $ _firstName, 'middlename' => '', 'lastname' => $ _lastName, 'suffix' => '', 'company' => '', 'street' => array ('0' => 'Sector 63', // Wymagane '1' => 'Noida, UP') , 'city' => 'Noida', 'country_id' => 'IN', // Kod kraju 'region' => 'UP', 'region_id' => '', 'postcode' => '201301', ' telephone '=>' 888-888-8888 ',' fax '=>' ',' save_in_address_book '=> 1); / * * Niestandardowy adres wysyłki * / $ shippingAddress = array ('customer_address_id' => '', 'prefix' => '', 'firstname' => $ _firstName, 'middlename' => '', 'lastname' => $ _lastName, 'suffix' => '', 'company' => '', 'street' => array ('0' => 'Sector 63', // Wymagane '1' => 'Noida, UP') , 'city' => 'Noida', 'country_id' => 'IN', // Kod kraju 'region' => 'UP', 'region_id' => '', 'postcode' => '201301', ' telephone '=>' 888-888-8888 ',' fax '=>' ',' save_in_address_book '=> 1); / ** * Wprowadź metodę wysyłki, której chcesz użyć. Niektóre inne metody wysyłki * to tablerate_tablerate, freeshipping_freeshipping itp. * Tutaj używamy flatrate_flatrate * / $ _shippingMethod = 'flatrate_flatrate'; / ** * Wprowadź metodę płatności, której chcesz użyć. Niektóre z metod płatności * to checkmo, darmowy, przelew bankowy, ccsave, zamówienie zakupu itp. * / $ _paymentMethod = 'cashondelivery'; / ** * Podaj tablicę produktów i ich ilość. * $ 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); / ** * Przygotowanie klienta do wyceny * jeśli klient nie jest zarejestrowany, utworzymy nowego klienta. To jest * opcjonalny proces. * / if (! $ customer-> getId ()) {$ customer = Mage :: getModel („klient / klient”); $ customer-> setWebsiteId ($ _ website-> getId ()) -> setStore ($ _ store) -> setFirstname ($ _ firstName) -> setLastname ($ _ lastName) -> setEmail ($ _ email); / ** * Tworzenie nowego klienta * Pomiń próbę, jeśli nie chcesz tworzyć nowego klienta. * / try {// Generowanie hasła dla klienta. Możesz również użyć dowolnego niestandardowego hasła //. $_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 (); / * * $ odpowiedzią jest tablica odpowiedzi ze statusem tworzenia zamówienia. * / $ response ['success'] = true; $ response ['error'] = false; $ response ['messages'] = 'Numer zamówienia'. $ incrementId. ' stworzony pomyślnie. ”; } 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 -> __ ('Błąd w kolejności przetwarzania. Spróbuj ponownie później.'); Mage :: logException ($ e); } Mage :: app () -> getResponse () -> setBody (Mage :: helper ('core') -> jsonEncode ($ response));

Proszę przejść przez wyżej wspomniany kod


Jak uruchomić zapytania bezpośrednie SQL w Magento?

Dzisiaj nauczymy się biegać

Uzyskaj podstawowy model zasobów –

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

Następnie musimy utworzyć połączenie do odczytu lub zapisu zgodnie z naszymi potrzebami.

/ ** * Pobierz odczytane połączenie * / $ readConnection = $ resource-> getConnection ('core_read'); / ** * Pobierz połączenie zapisu * / $ writeConnection = $ resource-> getConnection ('core_write');

Pobieranie poprawnej nazwy tabeli –

Jeśli nie znasz prefiksu tabeli, możesz użyć poniższego kodu, aby pobrać poprawną nazwę tabeli.

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

Jeśli prefiks to mag_ wtedy nazwa tabeli, którą zwróci, będzie mage_catalog_product_entity

Czytanie danych –

Aby odczytać dane z tabeli, użyj następującego kodu

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

Tutaj $ query_result zwróci wynik zapytania wyboru. W naszym przypadku zwróci tablicę całego produktu. Jeśli potrzebujesz danych tylko produktu, użyj następującego polecenia.

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

Tutaj $ _productId jest identyfikatorem produktu, którego dane potrzebujemy.

Pisanie danych –

Aby wstawić dane do tabeli, użyj następującego kodu.

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

Zaktualizowane dane –

Jeśli musimy zaktualizować identyfikator typu produktu do „konfigurowalnego”, możemy użyć następującego kodu. Tutaj $ _productId jest identyfikatorem produktu.

$ update_query = "UPDATE {$ _tableName} SET type_id =" konfigurowalny "WHERE entity_id = {$ _ productId}"; $ writeConnection-> query ($ update_query); Jednak Magento przedstawił koncepcję modelu połączenia z bazą danych, ponieważ dostarczają one abstrakcji i są bardziej bezpieczne niż bezpośrednie zapytania SQL.