1

When upgrading from 1.6-1.9 our shipping module just seems to come up with problem after problem, assuming its outdated XML, was just wondering if anyone can see any issues with the config xml we have as when playing about with everything to do with the shipping module this seems to be the only thing that changing doesn't affect anything.

Just to be clear the problem we are having it, the products used to be put into a matrix (defined in config) now it just has the default handling fee as the total cost of shipping and not adding the relevant price matrix, anyway heres the config:

<?xml version="1.0"?>
<config>
    <modules>
        <Excellence_Ship>
            <version>0.1.0</version>
        </Excellence_Ship>
    </modules>

    <default>
        <carriers>
            <excellence>
                <active>1</active>
                <model>ship/carrier_excellence</model>
                <title>Carrier Title</title>
                <name>Method Name</name>
                <price>5.00</price>
                <dgn_fee>3.95</dgn_fee>
                <sml_box_fee>5.50</sml_box_fee>
                <med_box_fee>7.95</med_box_fee>
                <lrg_box_fee>10.50</lrg_box_fee>
                <nonhazone>TNT</nonhazone>
                <nonhaztwo>Airsure</nonhaztwo>
                <hazone>TNT</hazone>
                <haztwo>Airsea Worldwide</haztwo>
                <lastchoice>International Signed For</lastchoice>
                <specificerrmsg>This shipping method is currently unavailable. If you would like to ship using this shipping method, please contact us.</specificerrmsg>
            </excellence>
        </carriers>
    </default>

    <global>
        <blocks>
            <ship>
                <class>Excellence_Ship_Block</class>
            </ship>
            <checkout>
                <rewrite>
                    <cart_shipping>Excellence_Ship_Block_Cart_Shipping</cart_shipping>
                </rewrite>
            </checkout>         
        </blocks>
        <models>
        <ship>
            <class>Excellence_Ship_Model</class>
        </ship>       
        </models>
        <helpers>
        <ship>
                <class>Excellence_Ship_Helper</class>
        </ship>       
        </helpers>
    </global>

    <adminhtml>
        <acl>
            <resources>
                <admin>
                    <children>
                        <system>
                            <children>
                                <config>
                                    <children>
                                        <my_boxes>
                                            <title>Configure Boxes</title>
                                        </myboxes>
                                        <dummy_products>
                                            <title>Configure Dummy Products</title>
                                        </dummy_products>
                                        <tnt_stuff>
                                            <title>Configure TNT Tables</title>
                                        </tnt_stuff>
                                        <airsure_stuff>
                                            <title>Configure Airsure Tables</title>
                                        </airsure_stuff>
                                        <airsea_stuff>
                                            <title>Configure AirSea Tables</title>
                                        </airsea_stuff>
                                        <isf_stuff>
                                            <title>Configure ISF Tables</title>
                                        </isf_stuff>
                                    </children>
                                </config>
                            </children>
                        </system>
                    </children>
                </admin>
            </resources>
        </acl>
    </adminhtml>

</config>

Carrier:

<?php
class Excellence_Ship_Model_Carrier_Excellence extends Mage_Shipping_Model_Carrier_Abstract
implements Mage_Shipping_Model_Carrier_Interface {
    protected $_code = 'excellence';

    public function collectRates(Mage_Shipping_Model_Rate_Request $request)
    {
        if (!Mage::getStoreConfig('carriers/'.$this->_code.'/active')) {
            return false;
        }

        $handling = Mage::getStoreConfig('carriers/'.$this->_code.'/handling');
        $result = Mage::getModel('shipping/rate_result');
        $show = true;
        if($show){ // This if condition is just to demonstrate how to return success and error in shipping methods

            $method = Mage::getModel('shipping/rate_result_method');
            $method->setCarrier($this->_code);
            $method->setMethod($this->_code);
            $method->setCarrierTitle($this->getConfigData('title'));
            $method->setMethodTitle($this->getConfigData('name'));
            $method->setPrice($this->getConfigData('price'));
            $method->setCost($this->getConfigData('price'));
            $result->append($method);

        }else{
            $error = Mage::getModel('shipping/rate_result_error');
            $error->setCarrier($this->_code);
            $error->setCarrierTitle($this->getConfigData('name'));
            $error->setErrorMessage($this->getConfigData('specificerrmsg'));
            $result->append($error);
        }
        return $result;
    }
    public function getAllowedMethods()
    {
        return array('excellence'=>$this->getConfigData('name'));
    }
}

LAST THING

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <tabs>
        <myconfig translate="label" module="ship">
            <label>My Shipping Config</label>
            <sort_order>99999</sort_order>
        </myconfig>
    </tabs>
    <sections>
        <my_boxes translate="label" module="ship">
            <label>Boxes</label>
            <tab>myconfig</tab>
            <frontend_type>text</frontend_type>
            <sort_order>1000</sort_order>
            <show_in_default>1</show_in_default>
            <show_in_website>1</show_in_website>
            <show_in_store>1</show_in_store>
            <groups>
                <non_hazardous translate="label">
                    <label>Non-Hazardous Boxes</label>
                    <frontend_type>text</frontend_type>
                    <sort_order>1</sort_order>
                    <show_in_default>1</show_in_default>
                    <show_in_website>1</show_in_website>
                    <show_in_store>1</show_in_store>
                    <fields>
                        <my2_dim translate="label">
                            <label>My 2 Dimensions</label>
                            <frontend_type>textarea</frontend_type>
                            <sort_order>300</sort_order>
                            <show_in_default>1</show_in_default>
                            <show_in_website>1</show_in_website>
                            <show_in_store>0</show_in_store>
                            <comment>Dimensions of My 2 box. L W H (one per line)</comment>
                        </my2_dim>
  • Can you please elaborate what problems you are experiencing exactly? Also to see changes in the XML directly, you need to disable the Magento cache – Milan Simek Oct 6 '15 at 12:20
  • Don't have magento cache enabled and as explained; literally copy pasting from the question above the products used to be put into a matrix (defined in config) now it just has the default handling fee as the total cost of shipping and not adding the relevant price matrix – Robert Pounder Oct 6 '15 at 12:33
  • Ok. Can you elaborate the issues? Without the actual issue explained, it's impossible to solve the problem. The XML looks OK at first glance. – Milan Simek Oct 6 '15 at 12:34
  • I don't know how to word it differently than I already have sorry. – Robert Pounder Oct 6 '15 at 12:35
  • Like it has a handling fee and its meant to add cost based on the config in my admin, but its not adding the cost just the default "£5" handling fee i have set – Robert Pounder Oct 6 '15 at 12:36
0

It seems the carrier model only uses the 'price' field, as you can see in the following two lines:

        $method->setPrice($this->getConfigData('price'));
        $method->setCost($this->getConfigData('price'));

It retrieves the config data field 'price', but it doesn't use the other fields like dgn_fee, sml_box_fee etc.

Maybe you're using an older unfinished version of the extension?

  • I did think that was odd but it works fine on the 1.6 thats whats so weird, was thinking it was possibly something I've missed on product configuration – Robert Pounder Oct 6 '15 at 12:56
  • Have you got an idea how I'd work a solution for this to read the custom config in my admin, it works on price tables – Robert Pounder Oct 6 '15 at 12:57
  • Did you upgrade the 1.6 Magento install, or did you start over with a fresh install? – Milan Simek Oct 6 '15 at 12:58
  • It's definitely the correct extension I'm using I've disabled others to check, am confused how it gets the prices on the old site, its not in the cache etc I've checked. – Robert Pounder Oct 6 '15 at 12:58
  • You can retrieve config fields using $this->getConfigData('fieldname'); – Milan Simek Oct 6 '15 at 12:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.