Doctrine orm Shopware 5中基于条件的轮运成本

Doctrine orm Shopware 5中基于条件的轮运成本,doctrine-orm,shopware,shopware5,Doctrine Orm,Shopware,Shopware5,我需要四舍五入的航运成本时,一个项目是增加,直到订单完成的基础上,如果某些条件是积极的。我已尝试订阅以下活动: 'sOrder::getOrderById::after' => 'afterGetOrder', 'Shopware_Modules_Order_SaveOrder_FilterParams' => 'filterOrderParams' 通过以下实施: public function filterOrderPar

我需要四舍五入的航运成本时,一个项目是增加,直到订单完成的基础上,如果某些条件是积极的。我已尝试订阅以下活动:

            '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中分摊运费呢


编辑:理想情况下,如果更改直接存储在数据库中,则对订单的任何进一步操作都会显示/更新正确的舍入值。

对于任何查看的人,我最终更改了前端Checkout事件订阅服务器中的模板变量,并允许它更改
Shopware\u Modules\u Order\u SaveOrder\u FilterParams
上数据库中的值。希望它能帮助别人。我花了一段时间才弄明白。这个hook
sOrder::getOrderById::after
根本不需要,而且似乎也不起作用