如何使运输成本免费Magento 2为自定义运输方法



我设法用一个自定义模块创建了我的自定义运费方法,运费为5美元。

例如,如果购物车的总金额超过30美元,我想让它免费。

有办法这样做吗?

我不知道从哪里开始,所以我没有代码可以尝试,请帮忙。

谢谢!

您可以在管理员中设置Cart规则来执行此操作。

https://www.aitoc.com/blog/configuring-free-shipping-in-magento-2/

找到它,如果有人需要:

在我的shipping.php文件中,有一个名为collectRates的函数,它负责返回运费,我添加了

if($request->getBaseSubtotalInclTax()>100){
$method->setPrice(0);
}

基本上,如果总额超过100美元,我会免费提供运费,最好让100美元成为一个动态值,可以在运输方法设置中更改,我稍后会这样做。

这是我的collectRates函数:

* @param RateRequest $request
* @return bool|Result
*/
public function collectRates(RateRequest $request)
{
if (!$this->getConfigFlag('active')) {
return false;
}
/** @var MagentoShippingModelRateResult $result */
$result = $this->_rateResultFactory->create();
/** @var MagentoQuoteModelQuoteAddressRateResultMethod $method */
$method = $this->_rateMethodFactory->create();
$method->setCarrier($this->_code);
$method->setCarrierTitle($this->getConfigData('title'));
$method->setMethod($this->_code);
$method->setMethodTitle($this->getConfigData('name'));
$amount = $this->getShippingPrice();
$method->setPrice($amount);
if($request->getBaseSubtotalInclTax()>100){
$method->setPrice(0);
}
$method->setCost($amount);
$result->append($method);
return $result;
}

最新更新