高级应用Magento-订单创建流程及程序代码
2012-01-14 15:35
483 查看
出处:http://www.wemvc.com/1606.html
老规矩,直接看代码吧。下面的代码是如何通过程序创建一个完美订单。
老规矩,直接看代码吧。下面的代码是如何通过程序创建一个完美订单。
<?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();
相关文章推荐
- Magento代码之订单创建流程
- Android中JNI高级应用 - 本地C代码中创建Java对象及本地JNI对象的保存 .
- Android中JNI高级应用 - 本地C代码中创建Java对象及本地JNI对象的保存
- magento在程序中创建订单(create order by code)
- Android中JNI高级应用 - 本地C代码中创建Java对象及本地JNI对象的保存
- Android中JNI高级应用 - 本地C代码中创建Java对象及本地JNI对象的保存
- Android中JNI高级应用 - 本地C代码中创建Java对象及本地JNI对象的保存
- dpdk学习(1)----程序代码创建流程
- magento下订单流程以及订单数据库结构分析
- 如何用代码的方式取出SAP C4C销售订单创建后所有业务伙伴的数据
- 不用写代码 让StoryBoard为你创建人机交互流程
- iPhone应用提交流程:如何将App程序发布到App Store?
- iPhone应用中APNS推送通知流程代码实现案例
- iPhone应用提交流程:如何将App程序发布到App Store-转
- DinnerNow中的Work Flow应用(上) --- 订单流程 推荐
- java中synchronized修饰代码块(两种创建线程的方式讲解卖票程序)
- Win10 IoT C#开发 2 - 创建基于XAML的UI程序 及 应用的三种部署方法
- cocos2dx 2.1.4 程序运行脉络解析1— win32版本的相关代码调用流程
- wcf纯代码创建控制台应用