-
12-12-2019 - |
题
我有两个选择产品的选项。
- 拿起自己(作品)
- 交付,订购30以下, - 您必须支付7, - 以上没有送货成本:
我使用罐头。我上传了一个CSV,它是正确完成的:
.Land,Provincie,Postcode,"Subtotaal bestelling (en hierboven)",Verzendkosten *,*,*,0.0000,7.0000 *,*,*,30.0000,0.0000
条件;价格vs位置
当我订购30以下时 - 它会添加7 - 那是Oké
但是当我订购超过30时, - (小计)它仍然添加7, -
我清除了缓存等。 有什么我可能错过的东西吗?
1.7.0.2
解决方案
问题可以是税收。 如果您订购了35美元的订购,您的税收是21%,它计算了总计27.25的订单。所以它不适合您的免费送货率。
在app / code / core / mage / shipper / model / carrier / flatrate.php添加以下代码(围绕line 104)
// exclude Virtual products price from Package value if pre-configured
if (!$this->getConfigFlag('include_virtual_price') && $request->getAllItems()) {
foreach ($request->getAllItems() as $item) {
if ($item->getParentItem()) {
continue;
}
if ($item->getHasChildren() && $item->isShipSeparately()) {
foreach ($item->getChildren() as $child) {
if ($child->getProduct()->isVirtual()) {
$request->setPackageValue($request->getPackageValue() - $child->getBaseRowTotal());
}
}
} elseif ($item->getProduct()->isVirtual()) {
$request->setPackageValue($request->getPackageValue() - $item->getBaseRowTotal());
}
}
}
//////////// add this piece of code ////////////
if (Mage::helper('tax')->priceIncludesTax()) {
$taxableAmount = 0;
foreach ($request->getAllItems() as $item) {
$taxableAmount += $item->getTaxableAmount();
}
$request->setPackageValue($taxableAmount);
//////////// till here ////////////
}
// Free shipping by qty
$freeQty = 0;
if ($request->getAllItems()) {
$freePackageValue = 0;
.
这些是我使用的速率,他们有同样的问题。当一个顾客命令52,95时,运费不是免费的,在添加上面的代码后,它是
Land,Provincie,Postcode,"Subtotaal bestelling (en hierboven)",Verzendkosten
BEL,*,*,0.0000,6.9500
BEL,*,*,49.9900,0.0000
DEU,*,*,0.0000,4.9500
DEU,*,*,49.9900,0.0000
NLD,*,*,0.0000,4.9500
NLD,*,*,49.9900,0.0000
.