Jump to content
Sign in to follow this  
Kerosin

Different Free Shipping Amounts

Recommended Posts

Hi..

 

How can I set free Shipping for Customers from Germany above Order Value 50? and for other Europeans above 100?. At the moment I only can do it national above 50? OR international above 100? OR both, but with the same Order Value.

Share this post


Link to post
Share on other sites

 

I use this contribution for free shipping as you can use it based on your own defined zone. As you can only use it for one zone you will have to duplicate this module with a new name so you can have a freeamount-germany and a freeamount-othercountries which you can set to the appropriate zone for each. This way it should be doable what you want. With the default osC shipping module you can not define your own zones for free shipment (unless you can rewrite that one to your needs).

Share this post


Link to post
Share on other sites

Thanks. I?ve tried it, but I get these three errors:

 

Warning: shipping() [function.shipping]: Unable to access includes/languages/german/modules/shipping/freeamount.php in catalog/includes/classes/shipping.php on line 36

 

Warning: shipping(includes/languages/german/modules/shipping/freeamount.php) [function.shipping]: failed to create stream: No such file or directory in catalog/includes/classes/shipping.php on line 36

 

Warning: shipping() [function.shipping]: Failed opening 'includes/languages/german/modules/shipping/freeamount.php' for inclusion (include_path='') in catalog/includes/classes/shipping.php on line 36

 

 

What?s wrong?

Share this post


Link to post
Share on other sites

Is it also possible to make Free Shipping depend on the payment Module you choose? E.g.

 

Custumers from my Country get free Shipping at 50? when using Paypal or transfer

When using COD they get Free Shipping at 100?

 

Customers from other Countrys get free Shipping at 100? when using Paypal or paying by transfer

and when using COD they?ll need to reach 150?.

 

Because Shipping Costs in COD are always more expensive than if they pay by Transfer. If there isn?t a contribution like this, I think it would be a great Idea.

That would be the end of all my Problems with shipping costs being calculated wrong or to my costs....hope you?ve got something like that.

Share this post


Link to post
Share on other sites
Is it also possible to make Free Shipping depend on the payment Module you choose? E.g.

 

Custumers from my Country get free Shipping at 50? when using Paypal or transfer

When using COD they get Free Shipping at 100?

 

Customers from other Countrys get free Shipping at 100? when using Paypal or paying by transfer

and when using COD they?ll need to reach 150?.

 

Because Shipping Costs in COD are always more expensive than if they pay by Transfer. If there isn?t a contribution like this, I think it would be a great Idea.

That would be the end of all my Problems with shipping costs being calculated wrong or to my costs....hope you?ve got something like that.

 

I believe there is a contribution which let you do this but you'll have to search for it as I don't know which one.

 

As for the errors you got these might come from not changing all what is needed in your copy of freeamount.php

I don't know how you did it but the only copying to a new name is not enough.

I.e. if you now have a freeamount.php and a freeamount2.php you will have to adjust what is inside freeamount2.php for the new class module to work correctly.

 class freeamount {
   var $code, $title, $description, $icon, $enabled;

// class constructor
   function freeamount() {
     global $order;

     $this->code = 'freeamount';
     $this->title = MODULE_SHIPPING_FREEAMOUNT_TEXT_TITLE;
     $this->description = MODULE_SHIPPING_FREEAMOUNT_TEXT_DESCRIPTION;
     $this->sort_order = MODULE_SHIPPING_FREEAMOUNT_SORT_ORDER;
     $this->icon ='';
     $this->enabled = ((MODULE_SHIPPING_FREEAMOUNT_STATUS == 'True') ? true : false);

     if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_FREEAMOUNT_ZONE > 0) ) {
       $check_flag = false;
       $check_query = tep_db_query("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_SHIPPING_FREEAMOUNT_ZONE . "' and zone_country_id = '" . $order->delivery['country']['id'] . "' order by zone_id");
       wh....
......etc. etc.

would become

 class freeamount2 {
   var $code, $title, $description, $icon, $enabled;

// class constructor
   function freeamount2() {
     global $order;

     $this->code = 'freeamount';
     $this->title = MODULE_SHIPPING_FREEAMOUNT2_TEXT_TITLE;
     $this->description = MODULE_SHIPPING_FREEAMOUNT2_TEXT_DESCRIPTION;
     $this->sort_order = MODULE_SHIPPING_FREEAMOUNT2_SORT_ORDER;
     $this->icon ='';
     $this->enabled = ((MODULE_SHIPPING_FREEAMOUNT2_STATUS == 'True') ? true : false);

     if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_FREEAMOUNT2_ZONE > 0) ) {
       $check_flag = false;
       $check_query = tep_db_query("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_SHIPPING_FREEAMOUNT2_ZONE . "' and zone_country_id = '" . $order->delivery['country']['id'] . "' order by zone_id");
       wh...
....etc. etc.

This goes for the shipping module and the language file also.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×