Question

J'ai deux options pour commander un produit.

  1. Ramassez-vous vous-même (Works)
  2. Livraison, commander en dessous de 30 ans, vous devez payer 7, - et plus, il n'y a pas de frais de livraison:

    J'utilise des tableates pour cela.J'ai téléchargé un CSV et il est correctement fait:

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

    condition;Prix vs emplacement

    Lorsque je commande en dessous de 30 ans, il ajoute 7, - c'est Oké

    mais quand je commande au-dessus de 30, - (sous-total), il ajoute toujours le 7, -

    J'ai effacé le cache, etc. Y a-t-il quelque chose que j'aurais pu manquer?

    version 1.7.0.2

Était-ce utile?

La solution

Le problème peut être la taxe. Si vous commandez quelque chose pour 35 $, vos impôts sont de 21%, il calcule le total de la commande de 27.25.Donc, il ne correspond pas à votre taux d'expédition gratuit.

in app / code / noyau / mage / expédition / modèle / porteur / flatrate.php Ajouter le code suivant (autour de la ligne 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;

Ce sont les tarifs im en utilisant pour un costumateur, ils avaient les mêmes problèmes.Lorsqu'un costumateur a commandé quelque chose pour 52,95, l'expédition n'était pas gratuite, après avoir ajouté le code ci-dessus, il était

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top