Pergunta

Tenho duas opções para solicitar um produto.

  1. Escolha você mesmo (funciona)
  2. Entrega, pedido abaixo de 30,- você tem que pagar 7,- e acima não há custos de entrega:

Eu uso Tablerates para isso.Carreguei um CSV e foi feito corretamente:

Land,Provincie,Postcode,"Subtotaal bestelling (en hierboven)",Verzendkosten
*,*,*,0.0000,7.0000
*,*,*,30.0000,0.0000

Doença;preço versus localização

Quando peço abaixo de 30, acrescenta 7, tudo bem

Mas quando peço acima de 30,- (subtotal) ele ainda soma 7,-

Limpei o cache etc.Há algo que eu poderia ter perdido?

versão 1.7.0.2

Foi útil?

Solução

O problema pode ser o imposto.Se você pedir algo por US$ 35 e seus impostos forem de 21%, ele calculará o total do pedido em 27,25.Portanto, não cabe na sua taxa de frete grátis.

em app/code/core/mage/shipping/model/carrier/Flatrate.php adicione o seguinte código (por volta da linha 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;

Estas são as taxas que estou usando para um cliente. Eles tiveram os mesmos problemas.Quando um cliente pedia algo por 52,95 o frete não era grátis, após adicionar o código acima era

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top