I am running a client store and they want to give free shipping in India and shipping charges 2000 for all other countries how to achieve this?


2 Answers 2


You're best of using the native Magento Tablerates extension.

System > Configuration > Shipping methods > Tablerates, set Condition to Price vs. Destination 

and next switch to the website you want to apply it to. set amount 0 for india, 2000 for others.

read this for further information https://docs.magento.com/user-guide/shipping/shipping-table-rate.html


First set 2000 as shipping amount for all the available countries on your site for your shipping method.

Now, you can achieve this by Cart Price Rules

Go to Marketing > Cart Price Rules > Add new rule

  1. Create a rule if the shipping country is India

enter image description here

  1. Now apply the action for the condition when this condition is matched.

So if the country is India, the shipping amount of 2000 will be discounted in total

enter image description here

You can also achieve this programmatically by using event on checkout and observer matching condition if the order shipping country is India, it should change shipping amount to zero and so. But above given solution seems good to me if there's no other requirement.

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.