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.
Hi- currently Puerto Rico comes up as an international shipping charge. How can I make Puerto Rico the same as domestic U.S. shipping? Somewhere I can toggle something or do I need to add some code?
Offline
System Dashboard > System > Locations > Countries
Offline
Got it, thank you Nigel.
Offline
So I've changed the setting there to reflect US shipping (Shipping Zone > Parcelforce - United States, Canada). Do I need to change something somewhere else?
Offline
the best way to check if the changes have worked is to add an item to your shopping cart then use the shipping estimator.
Offline
Yes, that is what I did, and it still shows up with my International shipping charge.
Offline
make sure you clear the existing data, try selecting a different country and submitting it, then select Puerto Rico again and submit it.
Offline
I think Chris is asking why Puerto Rico is showing up with international rates and not domestic rates. If you're not using Zone Based shipping, then setting zone based shipping settings won't do anything important for you. The first question I have, Chris, is what shipping method are you using?
Offline
We typically use a Custom Shipping Method for the majority (99%) and Product Based Shipping for a couple of items.
Offline
It's a User Defined Calculation. Here is the string:
<?php
// +--
// | All custom shipping scripts work in the same way. A global
// | variable named 'ecom.customship' contains the following PHP
// | array. Array keys with value info:
// |
// | weight => Total weight of items being shipped.
// | total => Subtotal of items being shipped.
// | quantity => Quantity of items being shipped.
// | stateprov => Ship to state/province.
// | country => Ship to country.
// | postalcode => Ship to postal code.
// | rescom => Ship to residential/commercial status.
// | shipstateprov => Ship origin state/province.
// | shipcountry => Ship origin country.
// | shipzip => Ship origin postal code.
// | packages => An array containing all packages with
// | each package defined in it's own array
// | with keys: length, width, height, weight.
// | delinfo => Delivery information array.
// | delitems => An array containing all items with
// | each item id as a key and the item quantity
// | as a value.
// |
// | This script must set a global variable named
// | 'ecom.customship_response' which is an array in the
// | following format:
// |
// | method name => amount
// |
// | NOTE: Do not print anything within custom shipping
// | scripts. They are designed only to return names and
// | prices for custom shipping methods.
// +--
$info = $this->globals('ecom.customship');
// +--
// | Set the shipping method name and prices for various quantities.
// +--
$methodname = 'Unionized Carrier';
$pricefirst = 4;
$pricenext = 1;
if ($info['country'] != 'United States') {
$methodname = 'Unionized Carrier - International';
$pricefirst = 23;
$pricenext = 2;
} // End of if statement.
// +--
// | Calculate the cost.
// +--
$methodcost = (($info['quantity'] - 1) * $pricenext) + $pricefirst;
// +--
// | Return the result.
// +--
$custom = array($methodname => $methodcost);
$this->globals('ecom.customship_response',$custom);
?>
Offline
Thanks, Nick- I'll be in touch.
Offline