The simplest solution is to create a Zone and have only US assigned to it. Then go to your shipping module and assign that zone to the module. From now on, all of your international customer will get to the checkout_shipping page and won't be able to choose any shipping options. Instead, they'll see a message saying "Sorry, we are not shipping to your region at this time. Please contact us for alternate arrangements."
You can change that line in includes/languages/english/checkout_shipping.php (don't forget to check if there's an override in your template's directory, ie. includes/languages/english/YOUR_TEMPLATE/checkout_shipping.php). If you want to provide a link, you would change
Code:
define('TEXT_NO_SHIPPING_AVAILABLE','<span class="alert">Sorry, we are not shipping to your region at this time.</span><br />Please contact us for alternate arrangements.');
to
Code:
define('TEXT_NO_SHIPPING_AVAILABLE','<span class="alert">Sorry, we are not shipping to your region at this time.</span><br />Please <a href="index.php?main_page=contact_us">contact us</a> for alternate arrangements.');
Of course, you might wanna change the wording a bit so it says something like "At the moment, we're unable to calculate shipping costs for your region. Please contact us and we'll find a solution." Or something like that, use your imagination, but definitely change the original text because it will probably scare your intl customers away.
Keep in mind most customers want to get a shipping quote immediately so you might wanna consider setting up some alternative module and provide shipping quotes during checkout. You'll probably lose a great deal of your customers with this setup...
Bookmarks