【问题标题】:Oxid eshop hooks for shipping method用于运输方式的氧化 eshop 挂钩
【发布时间】:2016-12-05 12:44:44
【问题描述】:

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

【问题讨论】:

标签: oxid


【解决方案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 这也称为,当您更改运输方式时

【讨论】:

  • calculateBasket() 为我工作。它会在我们登陆时以及我们更改运输方式时计算桶交付成本。
【解决方案2】:

您需要一个用于 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);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-27
    • 2017-06-28
    • 1970-01-01
    • 2017-02-04
    • 1970-01-01
    • 2013-03-25
    • 1970-01-01
    相关资源
    最近更新 更多