Overridding a Shipping Method - What am I missing

后端 未结 5 1198
生来不讨喜
生来不讨喜 2021-01-12 17:53

I\'ve written many many modules before but for some reason my shipping module won\'t override an exsiting Magneto shipping method. Is that allowed? What am I missing here?

5条回答
  •  日久生厌
    2021-01-12 18:47

    There is a way but it is not obvious and required me to browse the shipping module source:

    If you look at Mage_Shipping_Model_Config, you will discover that the code used as parameter for Mage::getModel() is taken from the store configuration. This code is NOT the standard code like 'shipping/carrier_tablerate', so it does not help overriding as usual.

    Now you have to find out first what this code is. For example I wanted to override the matrixrate carrier, so I tested it like that:

    $carrierConfig = Mage::getStoreConfig('carriers/matrixrate')
    var_dump($carrierConfig['model']);
    

    Yes, you can put this code anywhere on the page temporary but it is useful to have a separate file for such things that can be run from the command line (starting with Mage::app() to initialize Magento)

    In my case the code was matrixrate_shipping/carrier_matrixrate so I had to change my config.xml like that:

    
        
            
                
                    my_class_name
                
            
        
    

    instead of

    
        
            
                
                    my_class_name
                
            
        
    

    Good Luck!

提交回复
热议问题