以编程方式添加采购订单编号

时间:2013-09-10 14:36:10

标签: magento

在我的Magento模块中,我以编程方式创建订单。此过程在后台运行,因此在此过程中不可能进行客户交互。我想使用Magento的采购订单付款方式,如何以编程方式插入采购订单编号?不知道我的大脑是否停止工作,但我似乎无法看到添加该数字的方法。使用付款方式的代码的唯一部分是:

$shippingAddress->setPaymentMethod($paymentMethod);
$quote->getPayment()->importData( array('method' => $paymentMethod));

如何在此处插入购买编号?

1 个答案:

答案 0 :(得分:4)

查看我找到的Mage / Sales / model / Quote / Payment.php核心代码

@method Mage_Sales_Model_Quote_Payment setPoNumber(string $ value)

我认为这会有所帮助。

我在其他功能代码中添加了setPoNumber('PO123456'),我认为这样。 我今晚稍后会考试。

public function PrepareConfirmOrder($ customerID,$ PartCart,$ isHist){

$customerObj=Mage::getModel('customer/customer')->load($customerID);
$storeId = $customerObj->getStoreId();
$quoteObj=Mage::getModel('sales/quote')->assignCustomer($customerObj);
$quoteObj->reserveOrderId();

$productModel=Mage::getModel('catalog/product');
foreach($PartCart as $part) {
    foreach($part as $k=>$v) { $$k=$v; }
    $productObj=$productModel->load($PartId);
    $quoteItem=Mage::getModel('sales/quote_item')->setProduct($productObj);
    $quoteItem->setQuote($quoteObj);
    $quoteItem->setQty($qty);
    $quoteItem->setOriginalCustomPrice($UnitCost) ;
    $quoteObj->addItem($quoteItem);
}
$quoteObj->collectTotals();
// Add shipping method to the quote
$quoteObj->getShippingAddress()->setShippingMethod('flatrate_flatrate');
$quoteObj->getShippingAddress()->setCollectShippingRates(true)->save();

$quoteObj->save();

$quotePaymentObj=$quoteObj->getPayment();
//methods: authorizenet, paypal_express, googlecheckout, purchaseorder
$quotePaymentObj->setMethod('purchaseorder');
$quotePaymentObj->setPoNumber('PO1234567');
$quoteObj->setPayment($quotePaymentObj);