Re: One-Page Checkout [Support Thread]
Quote:
Originally Posted by
strelitzia
That worked a treat. Now I just need to figure out how to get the total to recalculate as it is still showing the value from before the item is removed!
Follow that product removal up with a
Code:
zen_redirect(zen_href_link(FILENAME_CHECKOUT_ONE));
... after having set a message to the customer via the $messageStack class (which probably will require a global $messageStack; statement) to let them know what's going on.
On the page's re-display, the shipping and taxes will recalculate based on the updated products in the order.
Re: One-Page Checkout [Support Thread]
OK, so... I'm trying to have the "shipping=billing" UNchecked by default so the customer gets to see both billing AND shipping address at the same time when going through Guest Checkout.
I've changed includes/classes/OnePageCheckout.php on line 169 from
Code:
public function getShippingBilling()
{
$_SESSION['shipping_billing'] = (isset($_SESSION['shipping_billing'])) ? $_SESSION['shipping_billing'] : true;
return $_SESSION['shipping_billing'];
}
to
Code:
public function getShippingBilling()
{
// BOF shipping=billing default to false
$_SESSION['shipping_billing'] = (isset($_SESSION['shipping_billing'])) ? $_SESSION['shipping_billing'] : false;
// EOF shipping=billing default to false
return $_SESSION['shipping_billing'];
}
When a customer starts checkout, both billing and shipping address fields are visible and if you fill out billing address, save it, fill out shipping address and save it, everything works fine and you can continue through checkout.
BUT, if you fill out billing details, save it and then tick the "shipping=billing" checkbox, the shipping address gets populated and properly assigned, but there's still no payment/shipping options available. Editing ANY of the details (email, billing OR shipping) and saving it bring up the shipping/payment section and allows to proceed.
What am I missing? Is this controlled anywhere else that I'm not seeing it? Thanks in advance!
Re: One-Page Checkout [Support Thread]
I think I got it. Changing includes/classes/ajax/zcAjaxOnePageCheckout.php on line 54 seems to do the trick. I've changed it from
Code:
if ($_POST['shipping_is_billing'] == 'true') {
$_SESSION['sendto'] = $_SESSION['billto'];
$_SESSION['shipping_billing'] = true;
$ship_to = 'billing';
$_SESSION['opc']->setTempShippingToBilling();
}
to
Code:
if ($_POST['shipping_is_billing'] == 'true') {
$_SESSION['sendto'] = CHECKOUT_ONE_GUEST_SENDTO_ADDRESS_BOOK_ID;
$_SESSION['shipping_billing'] = true;
$ship_to = 'billing';
$_SESSION['opc']->setTempShippingToBilling();
}
Reason for this change is because if sendto==billto, it doesn't pass validation in validateTempShiptoAddress()
Initial tests indicate it's working OK, but I'm still unsure if this should be considered as an actual solution and what downsides it may have, or evn worse, what problems it may cause. Any ideas would be welcomed, especially if you can foresee any problems by using this code. Thanks!
Re: One-Page Checkout [Support Thread]
Quote:
Originally Posted by
balihr
I think I got it. Changing includes/classes/ajax/zcAjaxOnePageCheckout.php on line 54 seems to do the trick. I've changed it from
Code:
if ($_POST['shipping_is_billing'] == 'true') {
$_SESSION['sendto'] = $_SESSION['billto'];
$_SESSION['shipping_billing'] = true;
$ship_to = 'billing';
$_SESSION['opc']->setTempShippingToBilling();
}
to
Code:
if ($_POST['shipping_is_billing'] == 'true') {
$_SESSION['sendto'] = CHECKOUT_ONE_GUEST_SENDTO_ADDRESS_BOOK_ID;
$_SESSION['shipping_billing'] = true;
$ship_to = 'billing';
$_SESSION['opc']->setTempShippingToBilling();
}
Reason for this change is because if sendto==billto, it doesn't pass validation in validateTempShiptoAddress()
Initial tests indicate it's working OK, but I'm still unsure if this should be considered as an actual solution and what downsides it may have, or evn worse, what problems it may cause. Any ideas would be welcomed, especially if you can foresee any problems by using this code. Thanks!
I'll need to review the operation for this case and will get back with that. My initial feeling is that you'll need to comment the cr@p out of what you're doing, else someone coming in later to help with the site is going to be very, very confused.
Re: One-Page Checkout [Support Thread]
Quote:
Originally Posted by
lat9
I'll need to review the operation for this case and will get back with that. My initial feeling is that you'll need to comment the cr@p out of what you're doing, else someone coming in later to help with the site is going to be very, very confused.
I love this! But I need some details on how much is consider a cr@p? Is it less than a pound? Bigger than a breadbox? Sorry I just could not resist after looking through code that has no comments at all!!!
Re: One-Page Checkout [Support Thread]
Quote:
Originally Posted by
lat9
I'll need to review the operation for this case and will get back with that. My initial feeling is that you'll need to comment the cr@p out of what you're doing, else someone coming in later to help with the site is going to be very, very confused.
LOL, yeah, I know, and I already have done that. The comments provided here were actually simplified or removed just to keep it simple here, but I really did try to explain it as much as I possibly could in the actual files. I've actually had to make a few other changes as well, which I was VERY unhappy with because I'd like to keep OPC as close to original as possible, primarily because you keep improving and updating it, but some things are just necessary...
BTW, you should see how I butchered the OPC's template files... :D
May I suggest considering adding this to a future release, with an admin-controlled switch? In some cases, it actually does make sense to show both addresses without requiring user action because billing and shipping addresses are different in 99% cases. So, if the admin could simply flip a switch to have it always shown, it would be great.
Also, one other thing I've noticed (not sure if it's been discussed before) is the inability to abort Guest Checkout and go to login. A simple scenario is - I click Guest Checkout and then I remember "oh wait, I have an account on this site, lemme login...". There's no way to go back to the point of choosing Guest-New-Returning once you start Guest Checkout, which might be a bit confusing... But then again, it's not SO important...
Re: One-Page Checkout [Support Thread]
Quote:
Originally Posted by
balihr
May I suggest considering adding this to a future release, with an admin-controlled switch? In some cases, it actually does make sense to show both addresses without requiring user action because billing and shipping addresses are different in 99% cases. So, if the admin could simply flip a switch to have it always shown, it would be great.
:dontgetit
I just did a random check of thirty or so of our customers' Orders page.
The result was exactly the opposite of your claim. In fact nearly twenty percent of the sites had no orders showing on the current page with the billing and shipping different.
I would agree that the trend may be turning toward more folks sending items rather than presenting them in person but, I just cannot see us ever getting to the two addresses being different 99% of the time.
Re: One-Page Checkout [Support Thread]
Quote:
Originally Posted by
dbltoe
:dontgetit
I just did a random check of thirty or so of our customers' Orders page.
The result was exactly the opposite of your claim. In fact nearly twenty percent of the sites had no orders showing on the current page with the billing and shipping different.
I would agree that the trend may be turning toward more folks sending items rather than presenting them in person but, I just cannot see us ever getting to the two addresses being different 99% of the time.
You missed my point. I said "in some cases...", meaning those sites where 99% of orders have different shipping and billing addresses. Slow down on the wine. :P
I only gave a suggestion for a future feature update which really isn't that hard to add (assuming my solution above is actually correct :wacko:), and it's an option for the store admin to choose from IF they need it. :wink2:
Re: One-Page Checkout [Support Thread]
Quote:
Originally Posted by
g2ktcf
I love this! But I need some details on how much is consider a cr@p? Is it less than a pound? Bigger than a breadbox? Sorry I just could not resist after looking through code that has no comments at all!!!
A cr@p is enough so that someone familiar with this plugin (or any other chunk of code) can figure out what's going on if the person who made the change is no longer available!
I hear you about the code that has no comments at all! Way back, I was tasked with creating a simulation model of a Motorola 68000. I found another developer who had created one and asked for a copy of the code to use as a basis.
When I received the code (a humongous blob, BTW), there was not a single comment. When I asked the developer why, he said "Comments only indicate what the code's intended to do". I hit the delete button and started from scratch.
Re: One-Page Checkout [Support Thread]
Quote:
Originally Posted by
lat9
I'll need to review the operation for this case and will get back with that. My initial feeling is that you'll need to comment the cr@p out of what you're doing, else someone coming in later to help with the site is going to be very, very confused.
The issue here is that while a Billing address is always required, a Shipping address isn't (think downloads and/or Gift Certificates). That's why OPC asks initially for the billing address and gives the opportunity to indicate a different shipping address (iff one is required).