Skip to content

Instantly share code, notes, and snippets.

@gelanivishal
Created December 25, 2016 02:59
Show Gist options
  • Select an option

  • Save gelanivishal/f30263a5280e030e187226b7308be202 to your computer and use it in GitHub Desktop.

Select an option

Save gelanivishal/f30263a5280e030e187226b7308be202 to your computer and use it in GitHub Desktop.
M1: Create order programmatically without generate quote
<?php
$transaction = Mage::getModel('core/resource_transaction');
$storeId = Mage::app()->getStore('default')->getId();
$reservedOrderId = Mage::getSingleton('eav/config')->getEntityType('order')->fetchNewIncrementId($storeId);
$email = "[email protected]";
$firstname = "web";
$lastname = "dev";
$order = Mage::getModel('sales/order')
->setIncrementId($reservedOrderId)
->setStoreId($storeId)
->setQuoteId(0)
->setGlobalCurrencyCode('USD')
->setBaseCurrencyCode('USD')
->setStoreCurrencyCode('USD')
->setOrderCurrencyCode('USD')
->setCustomerEmail($email)
->setCustomerFirstname($firstname)
->setCustomerLastname($lastname)
->setCustomerGroupId(0)
->setCustomerIsGuest(1);
$billingAddress = Mage::getModel('sales/order_address')
->setStoreId($storeId)
->setAddressType(Mage_Sales_Model_Quote_Address::TYPE_BILLING)
->setFirstname($firstname)
->setMiddlename('')
->setLastname($lastname)
->setCompany(' ')
->setStreet('1533 N. Paulina')
->setCity('Chicago')
->setCountryId('US')
->setRegion(' ')
->setRegionId('IL')
->setPostcode('60622')
->setTelephone('')
->setFax();
$order->setBillingAddress($billingAddress);
$shippingAddress = Mage::getModel('sales/order_address')
->setStoreId($storeId)
->setAddressType(Mage_Sales_Model_Quote_Address::TYPE_SHIPPING)
->setFirstname($firstname)
->setMiddlename('')
->setLastname($lastname)
->setCompany(' ')
->setStreet('1533 N. Paulina')
->setCity('Chicago')
->setCountryId('US')
->setRegionId('IL')
->setPostcode('60622')
->setTelephone('')
->setFax();
$order->setShippingAddress($shippingAddress)
->setShippingMethod('freeshipping_freeshipping')
->setShippingDescription('Free shipping');
$orderPayment = Mage::getModel('sales/order_payment')
->setStoreId($storeId)
->setCustomerPaymentId(0)
->setMethod('purchaseorder')
->setPoNumber(' - ');
$order->setPayment($orderPayment);
$subTotal = 0;
$products = array(
'product_sku' => array('qty' => 1)
);
foreach ($products as $productSku => $info) {
$rowTotal = $finalvalue['purchase_price'] * $info['qty'];
$orderItem = Mage::getModel('sales/order_item')
->setStoreId($storeId)
->setQuoteItemId(0)
->setQuoteParentItemId(NULL)
->setQtyBackordered(NULL)
->setTotalQtyOrdered($info['qty'])
->setQtyOrdered($info['qty'])
->setName($finalvalue['purchase_name'])
->setSku(trim($productSku))
->setPrice($finalvalue['purchase_price'])
->setBasePrice($finalvalue['purchase_price'])
->setOriginalPrice($finalvalue['purchase_price'])
->setRowTotal($rowTotal)
->setBaseRowTotal($rowTotal);
$subTotal += $rowTotal;
$order->addItem($orderItem);
}
$order->setSubtotal($subTotal)
->setBaseSubtotal($subTotal)
->setGrandTotal($subTotal)
->setBaseGrandTotal($subTotal);
$transaction->addObject($order);
$transaction->addCommitCallback(array($order, 'place'));
$transaction->addCommitCallback(array($order, 'save'));
$transaction->save();
$order = Mage::getModel('sales/order')->loadByIncrementId($reservedOrderId);
$order->setState(Mage_Sales_Model_Order::STATE_PROCESSING, true);
$order->save();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment