I'm preparing v2.1.4 of One-Page Checkout and will post back here once I've submitted the update for the Zen Cart moderators' review. There have been various reports over the past year of orders being received with empty shipping addresses for orders placed with PalPal Express Checkout/PPEC (paypalwpp) and I believe that this update will correct those issues.

The Scenario

A customer (either a guest or an account-holder that chooses to use a temporary shipping address) enters their address-related information, selects PPEC as their payment method and, upon order confirmation, is taken to the PayPal site. After logging in to PayPal, either their preferred PayPal address is different from that entered on the Zen Cart store or they choose a different shipping address from their PayPal address book and return to the store for order fulfillment.

This confuses OPC, causing part of its processing to believe that it should not use the temporary shipping address stored prior to the transition to PayPal. That, in turn, causes OPC's order-address update to register an empty shipping address.

The Correction

OPC's processing, for v2.1.4 and later, is now more integrated with the PPEC payment method and has tightened its temporary addresses' handling. Specifically, on return from PayPal, if a temporary shipping address is currently being used, OPC inspects the shipping-address returned. If it's different from that submitted to PayPal, the original shipping address is saved and the order's shipping address is updated with that returned by PayPal.

Additionally, OPC now checks to see if the order's value has changed upon return from PayPal, as a change in shipping address could result in a change in tax-rate. If such a change is detected, OPC will redirect the customer back to its data-entry page for an additional confirmation prior to order submittal to PayPal.

Finally, if the order's temporary shipping address was changed at PayPal, OPC will append a statement to the order's first status-history record identifying the as-entered address ... just to let the customer know.

The Workaround

There is, unfortunately, no easy workaround for this issue. The best 'workaround' is to update your store to One-Page Checkout v2.1.4 or later. Additional possibilities exist, but they depend on a store's configuration:

1. If the store uses only non-PPEC payment methods, then this issue does not apply (you should still plan to update to v2.1.4 for additional bugfixes).

2. If the store uses only PPEC for credit card payments, the only viable workaround is to disable OPC until the OPC v2.1.4 update.

3. If the store uses a combination of PPEC and other credit-card providers (including PayPal Payments Pro), disable PPEC until the OPC v2.1.4 update.