The big stores they have branch in each country, and each branch in each country will have its own online shop.
But for small stores, one site will sell to multiple countries, for these projects, do you use zencart style countries list, list all the countries (200+) in one big drop down menu, a to z?
Or you create your own list and your own diplay order, only for some major countries such as 10-20 countries you mostly do business with? In that case, how about a client from the country not on your list? How do you handle it, ask him to fax in the order?
Or you will use zencart countries list all 200+ countries and terriorties. But add your own display order control, list the major countries on top and the rest in a to z order?
Thanks!
Elizabeth
09-27-2007, 05:58 PM
We use zencart, and only include roughly 4-5 countries that we have sent to successfully in the past. We used to include all the countries listed in the default setup, but after several orders that were fraudulent, we decided to make a "whitelist" of countries that we add to every now and then.
If someone specifically requests we ship to a country that's not on the standard list, we take it on a case by case basis.
MarkR
09-29-2007, 04:15 AM
I agree entirely with Elizabeth.
I've developed a bespoke ecommerce system in use in a lot of shops now, we allowed the list of countries to be changed on a per-shop basis (only at installation time by the developer; there is no UI for it), but only listed a few countries.
So we list, perhaps half a dozen, and provide a free-text entry box for others.
Note that we also list any major countries we *cannot* ship to, because we want to weed out those orders quickly (the user is allowed to select, but not to proceed).
Seeing as every order is reviewed by a human anyway before payment is taken (the CCs are preauth'd to ensure they're valid, not overspent etc), there is no problem - if someone types junk into the address / country box, their stuff won't get delivered, their order will get cancelled.
Likewise, the merchant will learn to recognise probably fraudulent orders and won't satisfy them (one of our main merchants gets quite a lot of these, he just sends a message telling them to contact his office, which they never do).
Of course orders which are cancelled won't get any payment taken, so everyone's happy (most importantly, the merchant has to pay no CC commission on those fraudulent orders and gets no chargebacks).
Mark
laserlight
09-29-2007, 06:00 AM
If someone specifically requests we ship to a country that's not on the standard list, we take it on a case by case basis.
The surprise for me is that I once made a purchase from ThinkGeek.com, and my goods were delivered. Well and good. Then sometime later, I tried making another purchase, only to be told that ThinkGeek no longer shipped to Singapore because of excessive fraudulent orders.
How would you handle cases where you had successfully processed orders from a country, only to find that later on you have many fraudulent orders from that country?
MarkR
09-29-2007, 07:22 AM
How would you handle cases where you had successfully processed orders from a country, only to find that later on you have many fraudulent orders from that country?
Our merchant learns what to look for. Each order is reviewed by a human.
Generally speaking, if the shipping and billing addresses are in different countries, the order is fraudulent.
When he finds a suspected fraudulent order, it is still accepted, but he won't process it (or take money) until a manual check is done; he asks the customer to contact him by email or phone (tricky in singapore due to timezone, I'm in UK). Fraudsters, in our experience, never make contact (they usually provide bad contact details in the first place).
Mark
blackhorse
09-29-2007, 04:01 PM
"So we list, perhaps half a dozen, and provide a free-text entry box for others.
"
Actually, I am thinking about the sampe approach, but I have new questions.
For these half a dozen countries you list, you get it from a database table or not? In theory, we want it from a database table "countries", so we can apply control and also do anything according to the countries. Such as send notice email to Canadian customers, US customers etc. Do the analysis based on the countries etc. Right?
But at the same time, you offer a free text country field for other countries. So we either not use "countries" table at all or we have to deal with that some accounts' countries' names are from the "countires" table. Some are from the free input text field.
And once you have the free input text field open, you lost control of the countries.
For example, if you put U.K., U.S.A. in the "countries" table and list them in the drop down menu. And you can apply control to these select U.S.A as the country by checking the id of the country. But you cannot stop people to input U.S.A. (US, USA, United States, United States of America) to the free input text field you offer. Say then if you want to apply that all customers from U.S.A cannot order Cuba cigars, etc..., you missed the guy who free input theU.S.A. (US, USA, United States, United States of America) as the country name.
Of course, we can add all kind automatic name checking too, and human manual checking on these free input countries names (to prevent U.S.A., US, USA, United States, United States of America appears in the countries field or to slip through the cuba cigars control), but this is just an example, how about you also want to control about other countries, for example if the book's CD with the encrypt codes cannot be exported to outside U.S.A The point is
In simple words, if countries are from a "countries" table we can use it as a control and analysis tool. But if countries or some of the countries from free input text. We miss the the control and analysis tools on the countries.
How do you handle this?
MarkR
09-29-2007, 04:32 PM
For these half a dozen countries you list, you get it from a database table or not?
We take them from an array in a PHP include file. Retrieving from there is less code, and seeing as those data are fixed by the developer, they can be versioned in our source code control.
We key it by country code which are the ISO country codes.
In theory, we want it from a database table "countries", so we can apply control and also do anything according to the countries. Such as send notice email to Canadian customers, US customers etc. Do the analysis based on the countries etc. Right?
It's a no-brainer, as we just store the country code against the customer and order.
But at the same time, you offer a free text country field for other countries. So we either not use "countries" table at all or we have to deal with that some accounts' countries' names are from the "countires" table. Some are from the free input text field.
People are inherently lazy and don't tend to select "other" if their country appears in the drop-down.
In any case, the merchant can change the data on the order during processing (the original values are kept for reference).
And once you have the free input text field open, you lost control of the countries.
For example, if you put U.K., U.S.A. in the "countries" table and list them in the drop down menu. And you can apply control to these select U.S.A as the country by checking the id of the country. But you cannot stop people to input U.S.A. (US, USA, United States, United States of America) to the free input text field you offer. Say then if you want to apply that all customers from U.S.A cannot order Cuba cigars, etc..., you missed the guy who free input theU.S.A. (US, USA, United States, United States of America) as the country name.
A human will sanitise it. If they put "Narnia" for their country, and their address is obviously in the USA, the merchant will either reject it or change the country to USA. If they genuinely can't tell what they mean, they have the customer's contact details and will try to find out.
Of course there is a longstanding hack whereby you put the wrong country name in (or select from dropdown) to get stuff delivered that is banned in your country. Post an item to "Strasbourg, Deutschland" and it will still get to the right place.
The merchant can hopefully spot these too.
How do you handle this?
Do the simplest thing that could possibly work. Ignore the corner cases, they're not important enough. A human will review the orders for errors anyway, give them enough control to do the sane thing.
Mark
blackhorse
09-29-2007, 06:20 PM
Thanks!
Mark, I am debating between elizabeth's using zencart style but white list the countries to show up and deal with the country not on list case by case (fax in order usually we want them for the rare cases). And your approach, drop down menu plus free input text field.
Elizabeth
09-30-2007, 07:45 PM
Something else I meant to mention earlier is something that happened to us several times.
We had several instances where a person would place an order with a relatively low dollar amount to see if we would send it (which we did) ... then a few days later they would place a larger order, figuring that since we sent to them once, we'd happily do it again. Of course the credit cards were stolen and the time frame was such that the customer wouldn't have had time to catch the fraudulent purchases. We got burned the first time with this, but after that we learned our lesson.
The funny thing was, one of the "customers" kept emailing us to see where his order was (even after we'd confirmed with the credit card company that the purchase was a fraud). Some of these guys have real balls, if you'll pardon the expression.
We also noticed that many times suspect orders come in with no punctuation of any kind - all lower case letters, no periods after abbreviations.. things like that. Granted, we've had a few real customers that did this too (and I guess were just being lazy) but now we double check orders that come through like this.
PHP Builder
Copyright Internet.com Inc. All Rights Reserved.