zoukankan      html  css  js  c++  java
  • Magento代码之订单创建流程

    Magento代码之订单创建流程

            直接看代码吧。下面的代码是如何通过程序创建一个完美订单。

            <?php
            require_once 'app/Mage.php';
             
            Mage::app('default');//初始化程序,设置当前店铺
             
            $store = Mage::app()->getStore('default');
            //通过电子邮件获取用户,当然也可以不获取,创建guest订单
            $customer = Mage::getModel('customer/customer');
            $customer->setStore($store);
            $customer->loadByEmail('email_address@gmail.com');
             
            //初始化Quote,Magento的订单是通过Quote来转化过去的
            $quote = Mage::getModel('sales/quote');
            $quote->setStore($store);
            $quote->assignCustomer($customer);//如果有用户则执行这个
             
            $product1 = Mage::getModel('catalog/product')->load(166); /* HTC Touch Diamond */
            $buyInfo1 = array('qty' => 1);
             
            $product2 = Mage::getModel('catalog/product')->load(18); /* Sony Ericsson W810i */
            $buyInfo2 = array('qty' => 3);
            //添加商品到Quote
            $quote->addProduct($product1, new Varien_Object($buyInfo1));
            $quote->addProduct($product2, new Varien_Object($buyInfo2));
            //设置账单和收货品地址
            $billingAddress = $quote->getBillingAddress()->addData($customer->getPrimaryBillingAddress());
            $shippingAddress = $quote->getShippingAddress()->addData($customer->getPrimaryShippingAddress());
            //设置配送和支付方式
            $shippingAddress->setCollectShippingRates(true)->collectShippingRates()
                            ->setShippingMethod('flatrate_flatrate')
                            ->setPaymentMethod('checkmo');
             
            $quote->getPayment()->importData(array('method' => 'checkmo'));
            //Quote计算运费
            $quote->collectTotals()->save();
            //将Quote转化为订单
            $service = Mage::getModel('sales/service_quote', $quote);
            $service->submitAll();
            $order = $service->getOrder();
            /***至此订单已经成功生成,下面是注册付款信息***/
             
            $invoice = Mage::getModel('sales/service_order', $order)->prepareInvoice();
            $invoice->setRequestedCaptureCase(Mage_Sales_Model_Order_Invoice::CAPTURE_ONLINE);
            $invoice->register();
             
            $transaction = Mage::getModel('core/resource_transaction')
                                ->addObject($invoice)
                                ->addObject($invoice->getOrder());
             
            $transaction->save();
            
            ?>

  • 相关阅读:
    [算法整理]树上求LCA算法合集
    线段树专题测试2017.1.21
    [数据结构]替罪羊树简介
    图论测试 2017.1.17
    bzoj 2038 A-小Z的袜子[hose]
    洛谷比赛『期末考后的休闲比赛2』
    [题解]bzoj 1861 Book 书架
    bzoj 3223 文艺平衡树
    Splay简介
    python2.7 一个莫名其妙的错误
  • 原文地址:https://www.cnblogs.com/focai/p/4693789.html
Copyright © 2011-2022 走看看