Shopware 5 中基于条件的循环运费
Round shipping cost in Shopware 5 based on condition
我需要在添加商品时四舍五入运费,直到订单完成基于特定条件是否有效。我已经尝试订阅以下事件:
'sOrder::getOrderById::after' => 'afterGetOrder',
'Shopware_Modules_Order_SaveOrder_FilterParams' => 'filterOrderParams'
实施如下:
public function filterOrderParams(\Enlight_Event_EventArgs $args)
{
$return = $args->getReturn();
$return['invoice_shipping'] = ceil($return['invoice_shipping']);
$return['invoice_shipping_net'] = ceil($return['invoice_shipping_net']);
$subject->sShippingcostsNumeric = ceil($subject->sShippingcostsNumeric);
$subject->sShippingcostsNumericNet = ceil($subject->sShippingcostsNumericNet);
$args->setReturn($return);
}
public function afterGetOrder(\Enlight_Hook_HookArgs $args)
{
if (!$this->checkIfActive()) {
return;
}
$return = $args->getReturn();
$return['invoice_shipping'] = ceil($return['invoice_shipping']);
$return['invoice_shipping_net'] = ceil($return['invoice_shipping_net']);
$args->setReturn($return);
}
但它似乎不起作用。我也试过了
Shopware()->Modules()->Order()->sShippingcosts = ceil($sBasket['sShippingcosts']);
但什么也没有。我知道有一个订单保存事件,我可以挂钩并更改参数,但为时已晚,因为购物车和结帐中的费用不会四舍五入(直到订单完成)
那么有没有办法在 shopware 5 中舍入运费?
编辑:理想情况下,如果更改直接存储在数据库中,那么对订单的任何进一步操作都会显示/更新正确的舍入值。
对于任何人来说,我最终更改了 Frontend_Checkout 事件订阅者中的模板变量,并让它更改 Shopware_Modules_Order_SaveOrder_FilterParams
上数据库中的值。希望它能帮助别人。我花了一段时间才弄明白这一点。这个钩子 sOrder::getOrderById::after
根本不需要,而且似乎也不起作用。
我需要在添加商品时四舍五入运费,直到订单完成基于特定条件是否有效。我已经尝试订阅以下事件:
'sOrder::getOrderById::after' => 'afterGetOrder',
'Shopware_Modules_Order_SaveOrder_FilterParams' => 'filterOrderParams'
实施如下:
public function filterOrderParams(\Enlight_Event_EventArgs $args)
{
$return = $args->getReturn();
$return['invoice_shipping'] = ceil($return['invoice_shipping']);
$return['invoice_shipping_net'] = ceil($return['invoice_shipping_net']);
$subject->sShippingcostsNumeric = ceil($subject->sShippingcostsNumeric);
$subject->sShippingcostsNumericNet = ceil($subject->sShippingcostsNumericNet);
$args->setReturn($return);
}
public function afterGetOrder(\Enlight_Hook_HookArgs $args)
{
if (!$this->checkIfActive()) {
return;
}
$return = $args->getReturn();
$return['invoice_shipping'] = ceil($return['invoice_shipping']);
$return['invoice_shipping_net'] = ceil($return['invoice_shipping_net']);
$args->setReturn($return);
}
但它似乎不起作用。我也试过了
Shopware()->Modules()->Order()->sShippingcosts = ceil($sBasket['sShippingcosts']);
但什么也没有。我知道有一个订单保存事件,我可以挂钩并更改参数,但为时已晚,因为购物车和结帐中的费用不会四舍五入(直到订单完成)
那么有没有办法在 shopware 5 中舍入运费?
编辑:理想情况下,如果更改直接存储在数据库中,那么对订单的任何进一步操作都会显示/更新正确的舍入值。
对于任何人来说,我最终更改了 Frontend_Checkout 事件订阅者中的模板变量,并让它更改 Shopware_Modules_Order_SaveOrder_FilterParams
上数据库中的值。希望它能帮助别人。我花了一段时间才弄明白这一点。这个钩子 sOrder::getOrderById::after
根本不需要,而且似乎也不起作用。