Magento 1 remove item do pedido
Aug 25 2020
Abaixo está o código que estou usando agora, mas não está funcionando.
<?php
define('MAGENTO', realpath(dirname(__FILE__) . "/.."));
require_once MAGENTO . '/app/Mage.php';
umask(0);
Mage::init();
Mage::app()->addEventArea('global');
Mage::getSingleton('core/session', array('name' => 'frontend'));
$orders = Mage::getModel('sales/order')->getCollection() ->addFieldToFilter('created_at', array( 'from' => strtotime('-1 day', time()), 'to' => time(), 'datetime' => true, ))->load(); $orders_to_check = array();
foreach ($orders as $order) {
$order_id = $order->getRealOrderId();
foreach ($order->getAllItems() as $item) {
echo $item->getSku(); if($item->getSku() == 'S343697'){
$item->delete(); $orders->save();
}
}
}
print_r($orders_to_check);exit;
alguma ideia de como remover o item do pedido?
Respostas
1 BhaumikUpadhyay Aug 25 2020 at 17:30
Experimente o código abaixo e verifique se ajuda! Também adicionei o código para remover o preço do item do total do pedido.
<?php
define('MAGENTO', realpath(dirname(__FILE__) . "/.."));
require_once MAGENTO . '/app/Mage.php';
umask(0);
Mage::init();
Mage::app()->addEventArea('global');
Mage::getSingleton('core/session', array('name' => 'frontend'));
$orders = Mage::getModel('sales/order')->getCollection(); $orders->addFieldToFilter('created_at', array(
'from' => strtotime('-1 day', time()),
'to' => time(),
'datetime' => true,
));
//return count($orders); //return count($orders->getData());
foreach ($orders as $order) {
$order_id = $order->getRealOrderId();
$base_grand_total = $order->getBaseGrandTotal();
$base_subtotal = $order->getBaseSubtotal();
$grand_total = $order->getGrandTotal();
$subtotal = $order->getSubtotal();
$tax_amount = $order->getTaxAmount();
$base_subtotal_incl_tax = $order->getBaseSubtotalInclTax();
$subtotal_incl_tax = $order->getSubtotalInclTax();
$total_item_count = $order->getTotalItemCount();
foreach ($order->getAllItems() as $item) {
//echo $item->getSku(); if($item->getSku() == 'S343697'){
$item_price = $item->getPrice();
$item_tax_amount = $item->getTaxAmount();
$item->delete(); //remove item price from Order price and update the Order totals. $order->setBaseGrandTotal($base_grand_total-$item_price);
$order->setBaseSubtotal($base_subtotal-$item_price); $order->setGrandTotal($grand_total-$item_price);
$order->setSubtotal($subtotal-$item_price); $order->setTaxAmount($tax_amount-$item_tax_amount);
$order->setBaseSubtotalInclTax($base_subtotal_incl_tax-$item_price); $order->setSubtotalInclTax($subtotal_incl_tax-$item_price);
$order->setTotalItemCount($total_item_count-1);
$orders->save();
}
}
}
?>
Espero que isto ajude!
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
George Harrison ficou chateado por suas letras de 'Hurdy Gurdy Man' de Donovan não terem sido usadas