You are viewing this forum as a guest. Login to an existing account, or create a new account, to reply to topics and to create new topics.
I really have no idea what I'm doing. I have a script that was created for me based on weight. I'd like to set up a temporary one based on cost so I can offer free shipping over $35 and $5.50 off our international rates. I used the script I have and copied it to do this. Am I on the right track?
<?php
$info = $this->globals('ecom.customship');
$ship_meth_us = 'Domestic Shipping';
$ship_total_us = 0.000;
$ship_meth_ca = 'United States Post Office';
$ship_total_ca = 0.000;
$ship_meth_rw = 'United States Post Office';
$ship_total_rw = 0.000;
$freeship = 0.00;
if ($info['total'] >= '0' && $info['total'] <= '34.99') {
$ship_total_us = 5.50;
$ship_total_ca = 12.95;
$ship_total_rw = 16.95;
} elseif ($info['total'] > '35.00' && $info['total'] <= '99.99') {
$ship_total_us = 0.00;
$ship_total_ca = 7.50;
$ship_total_rw = 11.50;
} elseif ($info['total'] > '100.00' && $info['total'] <= '500.00') {
$ship_total_us = 0.00;
$ship_total_ca = 20.50;
$ship_total_rw = 28.50;
} else {
$custom = array($method => '0.00');
} // End of if statement.
$this->globals('ecom.customship_response',$custom);
?>
Offline
Your shipping cost will always be 0.00 as that is what you set the custom shipping array to with this line
$custom = array($method => '0.00');
that is only if it gets that far, otherwise it not set at all which will leave you with the default shipping being used. You have to have some logic determaining which country the customer is from, something like
if ($info['country'] == 'United States') { $method = $ship_meth_us; if (($info['total'] >= '0.00') && ($info['total'] <= '34.99')) { $cusom = array($method => '5.50'); } else if (($infor['total'] >= '35.00') && $info['total'] <= '99.99')) { // the rest of the coding. } } else if ($info['country'] == 'Canada') { $method = $ship_meth_ca; if (($info['total'] >= '0.00') && ($info['total'] <= '34.99')) { $cusom = array($method => '12.95'); } else if (($infor['total'] >= '35.00') && $info['total'] <= '99.99')) { // the rest of the coding. } } else { $method = $ship_meth_rw; if (($info['total'] >= '0.00') && ($info['total'] <= '34.99')) { $cusom = array($method => '16.95'); } else if (($infor['total'] >= '35.00') && $info['total'] <= '99.99')) { // the rest of the coding. } } $this->globals('ecom.customship_response',$custom);
this is just an example as there are many ways to code this.
John
Offline
Thank you that is helpful. I'll keep working on it.
Offline