1

我正在开发用于运输的Oxid eshop定制模块。我想即时更改运输方式的价格。有什么方法可以让我获得任何挂钩或方法,以便获得运输方式选择的中断?我也开始知道要运行服务器端的 php 代码,您需要扩展 OXID 的功能,例如您要跟踪的页面的 render() 功能。对于产品页面,它将是“详细信息”-> applications/controllers/details.php 类别页面是“alist.php”,购物篮是 basket.php

4

2 回答 2

1

oxBasket->_calcDeliveryCost()似乎是您正在寻找的功能,它根据配置的交付集计算交付成本。 https://github.com/OXID-eSales/oxideshop_ce/blob/b-5.3-ce/source/application/models/oxbasket.php#L903-L948

此函数由 calculateBasket() 在这里调用: https ://github.com/OXID-eSales/oxideshop_ce/blob/b-5.3-ce/source/application/models/oxbasket.php#L1487 当你更改运输方式

于 2016-12-05T13:07:47.930 回答
0

您需要一个用于 oxbasket 的模块。在元数据中:

'extend'       => array(
    'oxbasket' => 'youmodule/application/models/oxbasket_delivery'
)

并在模块中:

class oxbasket_delivery extends oxbasket_delivery_parent
{


    public function calculateBasket($blForceUpdate = false)
    {
        parent::calculateBasket($blForceUpdate);
        /** @var oxPrice $deliveryCost */
        $dnewDeliveryPrice = 10; // or whatever you need
        $deliveryCost = oxNew('oxprice');
        $deliveryCost->setPrice($dnewDeliveryPrice);
        $this->setCost('oxdelivery', $deliveryCost);
    }
}
于 2016-12-05T13:14:30.560 回答