$shippingamount = 10.00;
try {
$order = Mage::getModel('sales/order')->load(37881)
->setShippingMethod('cstoreshipping_cstoreshipping')
->setShippingAmount($shippingamount)
->setBaseShippingAmount($shippingamount)
->setShippingDescription('Shipping by third party');
$order->setGrandTotal($order->getGrandTotal() + $shippingamount);
$order->setBaseGrandTotal($order->getBaseGrandTotal() + $shippingamount);
$order->save();
pre($order->getData());
} catch (Exception $e) {
pre($e->getMessage());
}
Shopify, Shopify Apps, Magento, WordPress, Codeigniter, Joomla, Big Commerce | PHP
Showing posts with label Shipping method. Show all posts
Showing posts with label Shipping method. Show all posts
Friday, 3 August 2018
How to add | update Shipping Price on existing order in Magento 1.9
Wednesday, 8 November 2017
Create custom order in magento programatically
function createorderAction(){
$order = Mage::getModel('sales/order')->load(124);
$ba = $order->getBillingAddress();
$sa = $order->getShippingAddress();
$customer_id = $order->getCustomerId();
$store_id = 1;
/*------------------------------------------------------------------------
Payment and Shipping Method
------------------------------------------------------------------------*/
$payment_method = 'checkmo';
//$payment_method = 'stripe_cc';
$shipping_method = 'flatrate_flatrate';
$customer = Mage::getModel('customer/customer')->load($customer_id);
/*------------------------------------------------------------------------
Create a Quote
------------------------------------------------------------------------*/
$quote = Mage::getModel('sales/quote');
$quote->setStoreId($store_id);
$quote->assignCustomer($customer);
$quote->setSendCconfirmation(1);
/*------------------------------------------------------------------------
Add products to Quote
------------------------------------------------------------------------*/
$items = $order->getAllItems();
$block = Mage::app()->getLayout()->createBlock('sales/order_item_renderer_default');
$quote->setCouponCode('20OFF');
foreach ($items as $item):
$block->setItem($item);
$_options = $block->getItemOptions();
$addproduct = array('product'=>$item->getProductId(), 'qty'=>1);
foreach ($_options as $_option):
$addproduct['options'][$_option['option_id']] = $_option['option_value'];
endforeach;
$product = Mage::getModel('catalog/product')->load($addproduct['product']);
$quote->addProduct($product,
new Varien_Object(
$addproduct
)
);
//$item->setDiscountAmount($price);
//$item->setBaseDiscountAmount($price);
endforeach;
/*------------------------------------------------------------------------
Assign Address, Shipping and Payment methods
------------------------------------------------------------------------*/
$address_data = array(
'customer_address_id' => $ba->getId(),
'firstname' => $ba->getFirstname(),
'lastname' => $ba->getLastname(),
'street' => array(
'0' => $ba->getStreet()
),
'city' => $ba->getCity(),
'postcode' => $ba->getPostcode(),
'telephone' => $ba->getTelephone(),
'country_id' => $ba->getCountryId(),
'region_id' => $ba->getRegionId(),
);
$s_address_data = array(
'customer_address_id' => $sa->getId(),
'firstname' => $sa->getFirstname(),
'lastname' => $sa->getLastname(),
'street' => array(
'0' => $sa->getStreet()
),
'city' => $sa->getCity(),
'postcode' => $sa->getPostcode(),
'telephone' => $sa->getTelephone(),
'country_id' => $sa->getCountryId(),
'region_id' => $sa->getRegionId(),
);
$billingAddress = $quote->getBillingAddress()->addData($address_data);
$shippingAddress = $quote->getShippingAddress()->addData($s_address_data);
$shippingAddress->setCollectShippingRates(true)->collectShippingRates()
->setShippingMethod($shipping_method)
->setPaymentMethod($payment_method);
$quote->getPayment()->importData(array('method' => $payment_method));
//$quote->setDiscountAmount($discountAmount);
$quote->collectTotals()->save();
$discountAmount = 85.33;
$paymentplantotal = 512.00;
$downpayment = 42.67;
$pymtfrequency = 1;
$leftpayments = 11;
$nextpayments = 42.67;
$quote->setDiscountdue($discountAmount);
$quote->setPaymentplantotal($paymentplantotal);
$quote->setDownpayment($downpayment);
$quote->setPymtfrequency($pymtfrequency);
$quote->setLeftpayments($leftpayments);
$quote->setNextpayments($nextpayments);
$quote->setGrandTotal($quote->getBaseSubtotal() - $discountAmount)
->setBaseGrandTotal($quote->getBaseSubtotal() - $discountAmount)
->setSubtotalWithDiscount($quote->getBaseSubtotal() - $discountAmount)
->setBaseSubtotalWithDiscount($quote->getBaseSubtotal() - $discountAmount);
$quote->collectTotals()->save();
//$quote->setCouponCode("20OFF")->save();
$canAddItems = $quote->isVirtual() ? ('billing') : ('shipping');
foreach ($quote->getAllAddresses() as $address) {
if ($address->getAddressType() == $canAddItems) {
$address->setSubtotalWithDiscount((float) $address->getSubtotalWithDiscount() - $discountAmount);
$address->setGrandTotal((float) $address->getGrandTotal() - $discountAmount);
$address->setBaseSubtotalWithDiscount((float) $address->getBaseSubtotalWithDiscount() - $discountAmount);
$address->setBaseGrandTotal((float) $address->getBaseGrandTotal() - $discountAmount);
/*************************/
$address->setDiscountdue($discountAmount);
$address->setPaymentplantotal($paymentplantotal);
$address->setDownpayment($downpayment);
$address->setPymtfrequency($pymtfrequency);
$address->setLeftpayments($leftpayments);
$address->setNextpayments($nextpayments);
$address->save();
}
}
foreach ($quote->getAllItems() as $item) {
//We apply discount amount based on the ratio between the GrandTotal and the RowTotal
$rat = $item->getPriceInclTax() / $quote->getBaseSubtotal();
$ratdisc = $discountAmount * $rat;
$item->setDiscountAmount(($item->getDiscountAmount() + $ratdisc) * $item->getQty());
$item->setBaseDiscountAmount(($item->getBaseDiscountAmount() + $ratdisc) * $item->getQty())->save();
}
/*----------------------------------------------------------------------*/
/*------------------------------------------------------------------------
SECTION : CHECKOUT
------------------------------------------------------------------------*/
$convertQuote = Mage::getModel('sales/convert_quote');
if ($quote->getIsVirtual()) {
$order = $convertQuote->addressToOrder($quote->getBillingAddress());
} else {
$order = $convertQuote->addressToOrder($quote->getShippingAddress());
}
// assign payment method
$quotePayment = $quote->getPayment();
$quotePayment->setMethod($quote->getPayment()->getMethod());
$quote->setPayment($quotePayment);
$orderPayment = $convertQuote->paymentToOrderPayment($quotePayment);
$order->setBillingAddress($convertQuote->addressToOrderAddress($quote->getBillingAddress()));
$order->setPayment($convertQuote->paymentToOrderPayment($quote->getPayment()));
if (!$quote->getIsVirtual()) {
$order->setShippingAddress($convertQuote->addressToOrderAddress($quote->getShippingAddress()));
}
// set payment options
$order->setPayment($convertQuote->paymentToOrderPayment($quote->getPayment()));
// order products
$items = $quote->getAllItems();
foreach ($items as $item) {
//@var $item Mage_Sales_Model_Quote_Item
$orderItem = $convertQuote->itemToOrderItem($item);
if ($item->getParentItem()) {
$orderItem->setParentItem($order->getItemByQuoteItemId($item->getParentItem()->getId()));
}
$order->addItem($orderItem);
}
$order->setCanShipPartiallyItem(false);
$order->sendNewOrderEmail();
$order->place();
$order->save();
$quote->setIsActive(0);
$quote->save();
//pre($order->getData());exit;
//pre($quote->getData());
}
Subscribe to:
Posts (Atom)