Free shipping without standard shipping options
Hi,
I don't know whether it's my zencart problem. (1.3.8a)
I enabled "freeoptions" (sort order=1, order>$100) and "zones" (sort order=2) in shipping module.
when total order < $100, it's fine. It just shows "zones" option.
but when total order > $100, it shows both options, which I think "zones" option is meaningless to the customer.
How should I configure such that only "freeoptions" shown if order > $100?
Many thanks.
Re: Free shipping without standard shipping options
The Free Shipping Options freeoptions is designed to show at the same time as the other shipping modules, based on the conditions set, such as Total >= 100 ...
If you only want Free Shipping for orders over $100 there is a setting in the Modules ... Order Totals ... Shipping ot_shipping where you can set Free Shipping on Orders over $XX.XX for National, International or Both ...
When this is enabled, then the other shipping modules will not show ...
Re: Free shipping without standard shipping options
Thanks thanks for your reply.
Is it possible to setup "Free shipping" by order total but also adding one option to allow customer to choose "overnight shipping ($20)"?
Do I need to customize on checkout shipping default php in this case?
Thanks!
Re: Free shipping without standard shipping options
You could use Zone Rate zones, Flat Rate flat and Free Shipping Options freeoptions ...
Both Zone Rate and Flat Rate would need some customization ...
Zone Rate zones would be customized to only display for Orders < 100 ...
Flat Rate flat would be customized to only display for Orders >= 100 ... and change the language file to read: Overnight Shipping
Free Shipping Options freeoptions would be set for Total >= 100 ...
This would then show Zone Rate zones when Orders are < 100, and then show Flat Rate flat and Free Shipping Options freeoptions when Orders are >= 100 ...
Re: Free shipping without standard shipping options
I want to customize the zone rates:
Zone Rate zones would be customized to only display for Orders < 100 ...
Should I customize on zones.php or tpl_checkout_shipping_default.php?
How can I get the order_total variable in the php?
Should I customize this lines in zones.php?
if (zen_get_shipping_enabled($this->code)) {
$this->enabled = ((MODULE_SHIPPING_ZONES_STATUS == 'True') ? true : false);
}
Thanks a lot for your advice!
Re: Free shipping without standard shipping options
You have the right idea ...
Put this below that IF statement ...
Code:
// bof: do not show on orders of $100 or more and only use when not in the Admin
if (IS_ADMIN_FLAG == false) {
global $cart;
$order_total_amount = $_SESSION['cart']->show_total() - $_SESSION['cart']->free_shipping_prices() ;
if ($order_total_amount >= 100) {
$this->enabled = false;
}
}
// eof: do not show on orders of $100 or more and only use when not in the Admin
Re: Free shipping without standard shipping options
Thanks a lot. It works!! :clap::clap:
Besides the order total > 100, I want to disable "zone rate" only if the selected shipping address is US.
All other countries are still enabled to choose.
How should I change the code in zones.php?
Thanks again! :hug:
Re: Free shipping without standard shipping options
If you go into the Modules ... Shipping ... and edit the Zone Rate shipping module you will see that there is a place for:
Quote:
Skip Countries, use a comma separated list of the two character ISO country codes
Disable for the following Countries:
Just enter US in there and the US will not be able to see it ...
NOTE: the US means all of the States, Territories, Islands and Armed Forces ...
Re: Free shipping without standard shipping options
Hi,
Thanks for your reply.
But my thinking is that this zone rate option will be disabled only if (order total > 100 AND shipping country = US).
All non-US countries will show this option even order total > 100.
Hence, I need to verify customer's shipping country in the zones.php. Can you advise what should I do?
Thanks a lot!!
Andrew
Re: Free shipping without standard shipping options
Two conditions exist ...
If you set the Skipped Countries to: US
... then regardless of amount, the US shipping addresses will be skipped ...
Then, the IF condition is set to control the shipping module based on the Order Total ... and when >= 100 the module will not show for anyone ...