Есть способ, но он неочевиден и потребовал от меня просмотра источника модуля доставки:
Если вы посмотрите на Mage_Shipping_Model_Config , вы обнаружите, что код, используемый в качестве параметра для Mage :: getModel (), взят из конфигурации хранилища. Этот код НЕ является стандартным кодом типа «shipping / carrier_tablerate», поэтому он не помогает переопределить как обычно.
Теперь вы должны сначала выяснить, что это за код. Например, я хотел переопределить матричную несущую, поэтому я проверил это так:
$carrierConfig = Mage::getStoreConfig('carriers/matrixrate')
var_dump($carrierConfig['model']);
Да, вы можете поместить этот код в любое место на странице временно, но для таких вещей полезно иметь отдельный файл, который можно запустить из командной строки (начиная с Mage :: app () для инициализации Magento)
В моем случае код был matrixrate_shipping / carrier_matrixrate , поэтому мне пришлось изменить свой config.xml следующим образом:
<global>
<models>
<matrixrate_shipping>
<rewrite>
<carrier_matrixrate>my_class_name</carrier_matrixrate>
</rewrite>
</matrixrate_shipping>
</models>
вместо
<global>
<models>
<matrixrate>
<rewrite>
<carrier_matrixrate>my_class_name</carrier_matrixrate>
</rewrite>
</matrixrate>
</models>
Удачи!