Ich habe viele viele Module geschrieben, aber aus irgendeinem Grund wird mein Versandmodul eine bestehende Magneto Versandmethode nicht überschreiben. Ist das erlaubt? Was fehlt mir hier? Der Modulname wird auf der erweiterten Registerkarte des Konfigurationsbereichs angezeigt, sodass er geladen wird, aber nichts passiert. Irgendwelche Hinweise?Eine Versandmethode überschreiben - Was mir fehlt
-Code
etc/modules/Ssi_Shipping.xml
<?xml version="1.0"?>
<config>
<modules>
<Ssi_Shipping>
<active>true</active>
<codepool>local</codepool>
</Ssi_Shipping>
</modules>
</config>
local/Ssi/Versand/etc.xml
<?xml version="1.0"?>
<config>
<modules>
<Ssi_Shipping>
<version>0.1.0</version>
</Ssi_Shipping>
</modules>
<global>
<models>
<shipping>
<rewrite>
<carrier_tablerate>Ssi_Shipping_Model_Carrier_Tablerate</carrier_tablerate>
</rewrite>
</shipping>
</models>
</global>
</config>
local/Ssi/Versand/Model/Carrier/Tablerate .php
<?php
class Ssi_Shipping_Model_Carrier_Tablerate
extends Mage_Shipping_Model_Carrier_Tablerate {
public function isActive()
{
Mage::log("here! Ssi_Shipping_Model_Carrier_Tablerate");
// check to see if it's disabled
if (parent::isActive() == false)
return false;
// check in the shopping cart
foreach(Mage::getSingleton('checkout/session')->getQuote()->getItemsCollection() as $item){
if ($item->getDeliveryFlag() == "test")
return true;
}
// if nothing is found then disable this option.
return false;
}
}
Ich empfehle das nicht. Es gibt eine saubere Möglichkeit, den Träger außer Kraft zu setzen, siehe meine Antwort. –