Random Magento Order Functions
<?php
function getActivePaymentMethods(){
$payments = Mage::getSingleton('payment/config')->getActiveMethods();
$methods = array(array('value'=>'', 'label'=>Mage::helper('adminhtml')->__('--Please Select--')));
foreach ($payments as $paymentCode=>$paymentModel) {
$paymentTitle = Mage::getStoreConfig('payment/'.$paymentCode.'/title');
$methods[$paymentCode] = array(
'label' => $paymentTitle,
'value' => $paymentCode,
);
}
return $methods;
}
function getOrderIdsByStatus($status){
$orders = Mage::getModel('sales/order')->getCollection()
->addFieldToFilter('status', $status)
->addAttributeToSelect('increment_id');
$ids = array();
foreach ($orders as $order) {
$id = $order->getIncrementId();
$ids[] = $id;
}
return $ids;
}
function getOrderLastComment($orderId){
$order = $order = Mage::getModel('sales/order')->loadByIncrementId($orderId);
$comments = array();
foreach ($order->getAllStatusHistory() as $orderComment){
$comments[] = $orderComment;
}
return $comments;
}
function changeOrderDate($orderId, $date){
$orderObj = Mage::getModel('sales/order')
->loadByIncrementId($orderId);
$orderObj->setData('created_at', $date);
$orderObj->save();
}
function createOrder($orderOb) {
if(strlen($orderOb->email) > 1){
$customer = Mage::getModel('customer/customer');
$customer->setWebsiteId(Mage::app()->getWebsite()->getId());
$customer->loadByEmail($orderOb->email);
$transaction = Mage::getModel('core/resource_transaction');
$storeId = $customer->getStoreId();
$reservedOrderId = Mage::getSingleton('eav/config')->getEntityType('order')->fetchNewIncrementId($storeId);
$order = Mage::getModel('sales/order')
->setIncrementId($reservedOrderId)
->setStoreId($storeId)
->setQuoteId(0)
->setGlobal_currency_code('USD')
->setBase_currency_code('USD')
->setStore_currency_code('USD')
->setOrder_currency_code('USD');
// set Customer data
$order->setCustomer_email($customer->getEmail())
->setCustomerFirstname($customer->getFirstname())
->setCustomerLastname($customer->getLastname())
->setCustomerGroupId($customer->getGroupId())
->setCustomer_is_guest(0)
->setCustomer($customer);
// set Billing Address
$billing = $customer->getDefaultBillingAddress();
try{
$billingAddress = Mage::getModel('sales/order_address')
->setStoreId($storeId)
->setAddressType(Mage_Sales_Model_Quote_Address::TYPE_BILLING)
->setCustomerId($customer->getId())
->setCustomerAddressId($customer->getDefaultBilling())
->setCustomer_address_id($billing->getEntityId())
->setPrefix($billing->getPrefix())
->setFirstname($billing->getFirstname())
->setMiddlename($billing->getMiddlename())
->setLastname($billing->getLastname())
->setSuffix($billing->getSuffix())
->setCompany($billing->getCompany())
->setStreet($billing->getStreet())
->setCity($billing->getCity())
->setCountry_id($billing->getCountryId())
->setRegion($billing->getRegion())
->setRegion_id($billing->getRegionId())
->setPostcode($billing->getPostcode())
->setTelephone($billing->getTelephone())
->setFax($billing->getFax());
$order->setBillingAddress($billingAddress);
}catch(Exception $ex){
echo $ex;
}
$shipping = $customer->getDefaultShippingAddress();
try{
$shippingAddress = Mage::getModel('sales/order_address')
->setStoreId($storeId)
->setAddressType(Mage_Sales_Model_Quote_Address::TYPE_SHIPPING)
->setCustomerId($customer->getId())
->setCustomerAddressId($customer->getDefaultShipping())
->setCustomer_address_id($shipping->getEntityId())
->setPrefix($shipping->getPrefix())
->setFirstname($shipping->getFirstname())
->setMiddlename($shipping->getMiddlename())
->setLastname($shipping->getLastname())
->setSuffix($shipping->getSuffix())
->setCompany($shipping->getCompany())
->setStreet($shipping->getStreet())
->setCity($shipping->getCity())
->setCountry_id($shipping->getCountryId())
->setRegion($shipping->getRegion())
->setRegion_id($shipping->getRegionId())
->setPostcode($shipping->getPostcode())
->setTelephone($shipping->getTelephone())
->setFax($shipping->getFax());
}catch(Exception $ex){
echo $ex;
}
$order->setShippingAddress($shippingAddress)
->setShipping_method('flatrate_flatrate');
$orderPayment = Mage::getModel('sales/order_payment')
->setStoreId($storeId)
->setCustomerPaymentId(0)
->setMethod($orderOb->payment_method);
$order->setPayment($orderPayment);
$subTotal = 0;
foreach ($orderOb->products as $product) {
$_product = Mage::getModel('catalog/product');
$product_id = $_product->getIdBySku($product['sku']);
$_product->load($product_id);
$product_price = $_product->getPrice();
//$product_price = $product['price'];
$rowTotal = $product_price * $product['qty'];
$orderItem = Mage::getModel('sales/order_item')
->setStoreId($storeId)
->setQuoteItemId(0)
->setQuoteParentItemId(NULL)
->setProductId($product_id)
->setProductType($_product->getTypeId())
->setQtyBackordered(NULL)
->setTotalQtyOrdered($product['qty'])
->setQtyOrdered($product['qty'])
->setName($_product->getName())
->setSku($_product->getSku())
->setPrice($product_price)
->setBasePrice($product_price)
->setOriginalPrice($product_price)
->setRowTotal($rowTotal)
->setBaseRowTotal($rowTotal);
$subTotal += $rowTotal;
$order->addItem($orderItem);
}
$order->setSubtotal($subTotal)
->setBaseSubtotal($subTotal)
->setGrandTotal($subTotal)
->setBaseGrandTotal($subTotal);
//$order->setCustomerNote($orderOb->comment);
$transaction->addObject($order);
$transaction->addCommitCallback(array($order, 'place'));
$transaction->addCommitCallback(array($order, 'save'));
$transaction->save();
$order = '';
$transaction = '';
$thisorder = Mage::getModel('sales/order')->load($reservedOrderId);
$itemsQty = $thisorder->getAllItems();
$thisinvoice = new Mage_Sales_Model_Order_Invoice_Api();
try{
$invoiceId = $thisinvoice->create($reservedOrderId, $itemsQty);
}catch (Exception $ex){
echo $ex;
}
$thisShipment = new Mage_Sales_Model_Order_Shipment_Api();
try{
$thisShipment->create($reservedOrderId, $itemsQty);
}catch (Exception $ex){
echo $ex;
}
$completeorder = new Mage_Sales_Model_Order_Api();
try{
$completeorder->addComment($reservedOrderId, 'imported', $orderOb->comment);
}catch (Exception $ex){
echo $ex;
}
}
}
?>