Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Different Free Shipping Amounts


Kerosin

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.

Link to comment
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).

Link to comment
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?

Link to comment
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.

Link to comment
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.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...