用于运输方式的氧化网店挂钩
Oxid eshop hooks for shipping method
我正在开发 Oxid eshop 自定义运输模块。
我想即时更改运输方式的价格。
有什么办法可以让我得到任何挂钩或方法,所以可以中断选择运输方式吗?
我也知道了
对于 运行 服务器端 php 代码,您需要扩展 OXID 的功能,例如您要跟踪的页面的 render() 函数。对于产品页面,它将是 "details" -> applications/controllers/details。php 类别页面是 "alist.php",购物篮是 basket.php
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
这也称为,当您更改运输方式时
您需要一个 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);
}
}
我正在开发 Oxid eshop 自定义运输模块。 我想即时更改运输方式的价格。 有什么办法可以让我得到任何挂钩或方法,所以可以中断选择运输方式吗? 我也知道了 对于 运行 服务器端 php 代码,您需要扩展 OXID 的功能,例如您要跟踪的页面的 render() 函数。对于产品页面,它将是 "details" -> applications/controllers/details。php 类别页面是 "alist.php",购物篮是 basket.php
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 这也称为,当您更改运输方式时
您需要一个 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);
}
}