Magento - премахнете доставката и обработката, когато използвате Безплатна доставка

Имам следния проблем: Трябва да използвам основните методи за доставка. Първият таксува такса за доставка от $10 за поръчки под $200. Вторият метод е безплатната доставка по подразбиране, която се прилага за поръчки над $200.

Когато се прилага безплатна доставка, междинната сума за доставка и обработка показва 0,00 и не искам този ред да не се показва нито в касата, нито във фактурата.

Има ли някакъв начин да премахнете напълно линията за доставка и обработка, когато се използва безплатна доставка?

Благодаря предварително за всякакви мисли.


person alexius    schedule 18.10.2012    source източник


Отговори (2)


Не обичам да филтрирам неща като това по код. Така че измислих решение, заменящо Mage_Sales_Model_Quote_Address_Total_Shipping::fetch(Mage_Sales_Model_Quote_Address $address)

app/code/local/Me/MyModule/Model/Sales/Quote/Address/Total/Shipping.php:

<?php
class Me_MyModule_Model_Sales_Quote_Address_Total_Shipping
  extends Mage_Sales_Model_Quote_Address_Total_Shipping
{
    /**
     * Add shipping totals information to address object
     *
     * @param   Mage_Sales_Model_Quote_Address $address
     * @return  Mage_Sales_Model_Quote_Address_Total_Shipping
     */
    public function fetch(Mage_Sales_Model_Quote_Address $address)
    {
        if ($address->getShippingAmount() == 0) {
            return $this;
        }

        return parent::fetch($address);
    }
}

app/code/local/Me/MyModule/etc/config.xml:

<?xml version="1.0"?>
<config>
  <modules>
    <Me_MyModule>
      <version>0.0.1</version>
    </Me_MyModule>
  </modules>
  <global>
    <models>
      <me_mymodule>
        <class>Me_MyModule_Model</class>
      </me_mymodule>
      <sales>
        <rewrite>
          <quote_address_total_shipping>Me_MyModule_Model_Sales_Quote_Address_Total_Shipping</quote_address_total_shipping>
        </rewrite>
      </sales>
    </models>
  </global>
</config>

app/etc/modules/Me_MyModule.xml:

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <modules>
        <Me_MyModule>
            <active>true</active>
            <codePool>local</codePool>
        </Me_MyModule>
    </modules>
</config>
person Mario    schedule 24.03.2014

премахнете линията за доставка от количката и плащането можете да замените този метод Mage_Checkout_Block_Cart_Totals::renderTotal()

public function renderTotal($total, $area = null, $colspan = 1)
{
    $code = $total->getCode();
    if ($total->getAs()) {
        $code = $total->getAs();
    }
   if ($code == 'shipping' && $total->getValue() == 0) {
       return '';
   }
    return $this->_getTotalRenderer($code)
        ->setTotal($total)
        ->setColspan($colspan)
        ->setRenderingArea(is_null($area) ? -1 : $area)
        ->toHtml();
}

За повече справки прегледайте тази връзка http://www.magentocommerce.com/boards/viewthread/295412/#t410854

person Mohammed Waseem Mohideen    schedule 21.03.2013