Comment créer des commandes par programme dans Magento?

Parfois, nous devons créer des commandes par programme dans Magento. Supposons que vous créez un plugin Magento pour votre magasin afin de le connecter au marché tel que Walmart ou Etsy.

Les étapes de la création de l'ordre:

  • Nous définirons les données du client comme le prénom, le nom de famille et l'adresse électronique.
  • Définissez l'adresse de livraison et de facturation du client.
  • Définir la méthode d'expédition et de paiement du client.
  • Définissez le produit et la quantité à commander dans notre magasin Magento.
  • Créez un client s'il n'existe pas dans notre magasin Magento. C'est une étape optionnelle.
  • Ajouter le produit à la citation du client.
  • Ajoutez l'adresse de livraison et de facturation au devis du client.
  • Préparer et enregistrer le devis du client.
  • La commande est créée sur votre boutique Magento.

Utilisation

         $ _store = Mage :: app () -> getStore (); $ _website = Mage :: app () -> getWebsite (); $ _firstName = John '; $ _lastName = 'doe; $ _email = 'demo@demo.com'; / * * Adresse de facturation personnalisée * / $ billingAddress = array ('customer_address_id' => '', 'prefix' => '', 'prenom' => $ _firstName, 'middlename' => '', 'lastname' => $ _lastName, 'suffix' => '', 'company' => '', 'street' => array ('0' => 'Secteur 63', // Obligatoire '1' => 'Noida, UP') , 'city' => 'Noida', 'country_id' => 'IN', // code du pays 'région' => 'UP', 'region_id' => '', 'code postal' => '201301', ' téléphone '=>' 888-888-8888 ',' fax '=>' ',' save_in_address_book '=> 1); / * * Adresse de livraison personnalisée * / $ shippingAddress = array ('customer_address_id' => '', 'prefix' => '', 'prenom' => $ _firstName, 'pseudonyme' => '', 'lastname' => $ _lastName, 'suffix' => '', 'company' => '', 'street' => array ('0' => 'Secteur 63', // Obligatoire '1' => 'Noida, UP') , 'city' => 'Noida', 'country_id' => 'IN', // code du pays 'région' => 'UP', 'region_id' => '', 'code postal' => '201301', ' téléphone '=>' 888-888-8888 ',' fax '=>' ',' save_in_address_book '=> 1); / ** * Entrez le mode d'expédition que vous souhaitez utiliser. Certaines des autres méthodes d'expédition * sont tablerate_tablerate, freeshipping_freeshipping, etc. * Nous utilisons ici flatrate_flatrate * / $ _shippingMethod = 'flatrate_flatrate'; / ** * Entrez le mode de paiement que vous souhaitez utiliser. Certains modes de paiement * sont les suivants: checkmo, gratuit, virement bancaire, ccsave, orderorder, etc. * / $ _paymentMethod = 'cashondelivery'; / ** * Fournir une gamme de produits et leur quantité. * $ 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 ('client / client') -> setWebsiteId ($ _ site web-> getId ()) -> loadByEmail ($ _ email); / ** * Préparation du client pour le devis * Si le client n'est pas enregistré, nous créerons un nouveau client. C'est * un processus optionnel. * / if (! $ customer-> getId ()) {$ customer = Mage :: getModel ('client / client'); $ customer-> setWebsiteId ($ _site-> getId ()) -> setStore ($ _ store) -> setFirstname ($ _ firstName) -> setLastname ($ _ lastName) -> setEmail ($ _ email); / ** * Création d'un nouveau client * Sautez try-catch si vous ne voulez pas créer un nouveau client. * / try {// Génération du mot de passe pour le client. Vous pouvez également utiliser n'importe quel // mot de passe personnalisé pour cela. $_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 est le tableau de la réponse avec le statut de la création de la commande. * / $ response ['success'] = true; $ response ['error'] = false; $ response ['messages'] = 'Numéro de commande'. $ incrementId. ' créé avec succès. '; } 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 -> __ ('Erreur lors du traitement de la commande. Veuillez réessayer plus tard.'); Mage :: logException ($ e); } Mage :: app () -> getResponse () -> setBody (Mage :: helper ('noyau') -> jsonEncode ($ réponse));

S'il vous plaît passer par le code mentionné ci-dessus


Les meilleures plates-formes de commerce électronique pour le démarrage d’un marché multi-fournisseurs

plates-formes de commerce électronique ont fait le chemin d’obtenir un magasin en ligne si facile aujourd’hui. La meilleure chose est la plupart de ces plates-formes sont open source et vous ne devez pas payer un sou pour les utiliser pour construire votre site de commerce électronique. Un site de commerce électronique prêt à l’emploi, ce qui pourrait être mieux que cela? – un site de marché prêt à l’emploi, peut-être?

La plupart des plates – formes de commerce électronique offrent les magasins de modèle d’inventaire de base. Cependant, avec la croissance comme rêve de marchés (comme Amazon, eBay, Etsy, Alibaba, Flipkart etc.) , les entrepreneurs sont maintenant plus vers ce nouveau inclinaient modèle multi-fournisseur de commerce électronique .

En conséquence, les développeurs du monde entier sont venus avec diverses solutions qui permettent aux propriétaires de sites Web de modèle d’inventaire pour convertir leur site à un marché multi-fournisseurs.

Dans ce blog, je vais énumérer et de discuter sur les grandes plates-formes de commerce électronique qui peuvent être facilement utilisés pour le développement d’un marché par une installation simple module.

1. Magento

Avec actuellement plus de 251.287 en direct les magasins de commerce électronique fonctionnant sur la plate – forme Magento, il est l’ un des meilleurs- la plupart des plateformes de commerce électronique dans le monde entier. Avec près de 25% de la part totale du marché des plates – formes de commerce électronique, Magento est la marque populaire qui alimente de nombreuses autres marques de premier plan comme Burger King, Huawei, Pepe Jeans & Liverpool FC , etc.

Magento est une plateforme open-source, et certainement une plate-forme idéale pour construire un site de commerce électronique, en particulier un marché multi-fournisseurs. Cependant, en dépit de Magento pose un certain nombre de fonctionnalités appropriées intégrées pour le commerce électronique B2B, il ne peut pas être utilisé comme une plate-forme multi-fournisseur dans sa forme par défaut.

Heureusement, en raison de la flexibilité haut de gamme et une grande évolutivité, Magento peut être introduit dans les fonctionnalités multi-fournisseurs en installant l’extension du marché.

La Magento extension du marché multi-fournisseur est une solution personnalisée développée par les développeurs Magento certifiés. En installant simplement cette extension , vous pouvez convertir votre inventaire existant basé magasin de Magento à un site de marché ready-made. Elle introduit quelques nouvelles fonctionnalités à la plate – forme Magento qui facilitent l’exploitation d’un site de marché. Ces caractéristiques supplémentaires comprennent:

  • Gestion pour l’enregistrement du compte vendeur

  • Gestion pour l’approbation du compte vendeur et Déclinaison

  • Gestion des différents magasins par différents vendeurs

  • Gestion pour le téléchargement des produits par les vendeurs

  • Gestion pour l’approbation du produit du vendeur ou Déclinaison

  • Gestion des commissions de marché, et bien plus encore.

En plus de ces caractéristiques, il y a plusieurs autres fonctionnalités que vous pouvez vérifier sur la démonstration de l’extension à partir du lien ci-dessus. De plus, il y a aussi du marché pour cette extension addons qui peut être utilisé pour ajouter des fonctionnalités plus avancées sur votre site marché. Vous devriez lire « Ingrédients pour démarrer un site Marketplace sur Magento » pour plus de connaissances sur la plate-forme Magento sur marchés.

2. PrestaShop

PrestaShop est l’une des meilleures plates-formes de commerce électronique dans les pays européens, qui est de également populaire à travers le monde ces jours-ci. Si vous êtes propriétaire d’un magasin de PrestaShop, et penser à posséder un site Marketplace, vous êtes sur un chemin droit.

Grâce à la flexibilité extraordinaire et superbe PrestaShop de soutien communautaire est toujours le meilleur choix pour le développement d’un site de marché. Comme Magento, PrestaShop ne prend pas en charge la fonction multi-fournisseur par défaut. Cependant, avec la communauté PrestaShop très active, rien est impossible sur cette plate-forme.

Le module du marché PrestaShop développé par les développeurs de la communauté d’ experts fait la conversion d’un magasin de PrestaShop dans un site de marché si facile. Vous avez juste besoin d’épargner une minute pour installer le module du marché sur votre magasin, et bingo, vous possédez maintenant un site de marché.

Voici le compte rendu détaillé de certaines fonctionnalités excellentes qui sont offerts par ce module PrestaShop:

  • Fournit un meilleur contrôle sur le vendeur accounts-

En tant qu’administrateur de magasin, vous avez le contrôle total sur la gestion des différents comptes du vendeur sur votre magasin de marché. Vous pouvez gérer et surveiller la liste des fournisseurs de manière cohérente. En dehors de cela, vous pouvez également afficher la liste de tous les vendeurs de votre magasin de marché.

  • Pouvoir d’accepter / rejeter la demande- du vendeur

L’une des caractéristiques remarquables de ce module du marché est la liberté d’administration du magasin pour accepter ou rejeter les demandes du vendeur pour ajouter des produits sur leur magasin de marché. Avant que chaque vendeur doit créer un compte vendeur sur le marché qui peut être approuvé ou désapprouvé par l’administrateur du marché.

  • Gérer les taux de commission pour les multiples vendors-

admin magasin peut facilement gérer les taux de commission pour les divers fournisseurs basés sur une base de pourcentage global ou peut même taux de commission fixé pour les vendeurs.

  • Possibilité de restreindre les catégories de produits pour plusieurs ventes-

admin magasin peut décider du nombre de catégories de produits qui peuvent être utilisés pour l’addition de produits par plusieurs vendeurs. Les vendeurs sont autorisés à télécharger les produits sous les catégories autorisées que.

  • Gestion facile du compte du vendeur sur front-

vendeurs enregistrés obtenir un panel de vendeur pour gérer leurs magasins de marché à l’extrémité avant lui-même. Il est le meilleur moyen de sauver les vendeurs du délicat panneau de back-office et de fournir les plus faciles et les contrôles de gestion personnalisés sur le front lui-même.

En plus de ces caractéristiques, il y a un contrôle séparé pour les fournisseurs de gérer leurs magasins. De plus, ce module est également soutenu par plusieurs Addons du marché qui peuvent être utilisés pour étendre ses fonctionnalités.

3. Drupal

Drupal est un système de gestion de contenu Open Source comme WordPress. Comme WordPress, Drupal est aussi soutenu par certains modules pour vous aider à obtenir un site de commerce électronique.

Drupal ne vous donne pas les fonctionnalités pour développer un site de marché; mais comme toutes les autres plates – formes, il peut être personnalisé pour fournir les fonctionnalités du marché par le biais du module de marché Ubercart . Cependant, l’ obtention d’ un site de marché avec Drupal est un peu difficile par rapport à ce que nous avons vu dans la Magento et PrestaShop.

L’utilisation de Drupal et Ubercart nécessite des compétences de développement de sites Web, car il est pas hors-the-box solution. Il est difficile pour les débutants de gérer le marché sans une certaine expérience de la conception au moins.

Toutefois, si vous êtes un technicien avisé propriétaire d’une entreprise avec des compétences de développement ou peut se permettre d’embaucher un développeur Drupal, il pourrait être la plate-forme la plus flexible et la plus souhaitable, on peut souhaiter avoir un site de marché. Il est difficile, il; s difficile, mais il est plein de potentiels aussi.

Avec Drupal et Ubercart, vous avez l’accès à des outils très puissants pour la gestion de l’administrateur et les vendeurs. Les vendeurs ont tous l’accès à suivre et remplir la commande qu’ils reçoivent sur le marché. De plus, ils peuvent également voir théor rapport des ventes.

La meilleure option l’administrateur peut souhaiter est la capacité des plates-formes à travailler avec les paiements PayPal de masse qui peuvent être utilisés pour distribuer les revenus des vendeurs à partir du panneau d’administration.