2

So we are running Magento CE 1.9.0.1 and are mid-way through developing a custom shipping module as we have largely different shipping costs than the traditional shipping can cover. We are also using a OneStepCheckout plugin for the checkout process.

OneStepCheckout plugin: http://www.mage-world.com/magento-one-step-checkout-extension.html

Custom shipping module: http://www.smashingmagazine.com/2014/01/create-custom-shipping-methods-magento/

We need to be able to detect the state that the user (customer) is shipping to as we need to charge extra for shipping to Hawaii, Alaska and Puerto Rico. We also have some additional logic in the shipping module that detects $100 and day of the week, all of which work well.

So in the shipping module:

/app/code/local/CustomShipping/MyCarrier/Model/Carrier.php

We access the cart total like this:

$cartTotal = Mage::getSingleton('checkout/session')->getQuote()->getGrandTotal();

However no "state / region" element exists in that part (obviously).

We have the OneStepCheckout (OSC) refresh the shipping change on address selection (ajax) which to me should signify that there is an object somewhere in the magento stack that contains the updated address info including the state that I can use in the module to refresh the shipping options, I just can't find it.

We are aware that on the initial load, the shipping options will be the "default" ones and that they need to update once they select their shipping state.

Help? Can someone help me find where to get the state/region from the checkout/cart object?

1 Answer 1

5

You should be able to find that in the shipping address of the quote. Try something like:

Mage::getSingleton('checkout/session')->getQuote()->getShippingAddress()->getRegion();
1
  • 2
    You do appear to be right my good sir. I swear I tried that or a variation very close to yours and it didn't work, so I had gotten discouraged. Thanks!
    – C.Miller
    Commented Aug 4, 2015 at 18:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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