AFAIK actinic say that you can remove page 0 from the checkout if you only have one country, and use simple shipping and tax.
That's OK as far as it goes but the big problem for me is that I have multiple shipping classes defined by weight so that doesn't work for me and many others.
There's no real reason why we need page 0 though, so I've taken a quick look (in V6 admitedly) and notice the following:
1. It's very easy to bypass page 0. In orderscript.pl we have the following code
Where I have already commented out ::STARTSEQUENCE and set it to 0 instead. This forces the checkout to go straight to page 1 at the start.
2. This on it's own isn't enough because it checks for the Delivery country code to be set in the session file and bounces you back to page 0 with an error message.
All it takes though (for UK) shipping is to set the country code in the session file to
instead of
I haven't worked out yet how to this automatically so if someone else can figure it out then it looks like we have a simple way of doing this. Everything else seems to work and while the 'ship to separate delivery address' bit is set to 'No', pressing the change button takes you to page 0 as usual if the customer want to change it.
I'll continue to look and see if I can figure out the second part of this. Anyone else know?
Mike
PS. As I've said, I'm doing this on V6 so it may be a little different on V8.
That's OK as far as it goes but the big problem for me is that I have multiple shipping classes defined by weight so that doesn't work for me and many others.
There's no real reason why we need page 0 though, so I've taken a quick look (in V6 admitedly) and notice the following:
1. It's very easy to bypass page 0. In orderscript.pl we have the following code
# Find out where we are
#
$::g_nCurrentSequenceNumber = $::g_InputHash{'SEQUENCE'}; # determine the sequence number of the calling page
if (!defined $::g_nCurrentSequenceNumber) # if we are at the beginning
{
$::g_nCurrentSequenceNumber = 0; # $::STARTSEQUENCE;
}
#
$::g_nCurrentSequenceNumber = $::g_InputHash{'SEQUENCE'}; # determine the sequence number of the calling page
if (!defined $::g_nCurrentSequenceNumber) # if we are at the beginning
{
$::g_nCurrentSequenceNumber = 0; # $::STARTSEQUENCE;
}
2. This on it's own isn't enough because it checks for the Delivery country code to be set in the session file and bounces you back to page 0 with an error message.
All it takes though (for UK) shipping is to set the country code in the session file to
<DELIVERY_COUNTRY_CODE>UK</DELIVERY_COUNTRY_CODE>
<DELIVERY_COUNTRY_CODE/>
I'll continue to look and see if I can figure out the second part of this. Anyone else know?
Mike
PS. As I've said, I'm doing this on V6 so it may be a little different on V8.
Comment