I'm just putting the final touches on my first store. I want to use PayPal Pro (US) module for payment and have set up a sandbox account, got my API credentials, etc. No problem there. In fact, the Direct Payment part of PayPal Pro seems to work fine (i.e., credit cards.) However, the Express Checkout does not seem to be implemented correctly in Avactis--at least not when I compare the sequence of events to what is supposed to happen as shown in the PayPal manual.
It seems to me that the Express Checkout button should show in the 1st checkout step labelled Billing and Shipping Addresses. In fact, it does show up there. However, once you click it, things start to go wrong. The PayPal manual shows the customer being taken directly to PayPal's shopping cart at this point where the customer logs in to their account. Then the billing and shipping addresses that are stored on PayPal are transmitted from PayPal back to Avactis where the customer completes the order. The whole point of Express Checkout is that the customer does not have to input any billing or shipping info on Avactis -- only on PayPal.
Now, the sequence of events spelled out above does not happen with Avactis. Instead, when you click the Express Checkout button you are presented with a new Billing and Shipping Addresses page, only this one has only 3 fields in the billing side: first name, last name, and email address. So there's' the first point of confusion for the customer.
If the customer, presented with this abbreviated Billing and Shipping page, elects to fill out the form, they are not given any instructions about what to do next. The PayPal Express Checkout button is on this page (I don't think it should be) and the normal Continue Checkout button also is on the page. If the customer clicks the PayPal Express button, what happens is that the form clears and they are presented with the same page to fill out once again. (Read that as: the customer abandons the cart and goes looking for one of your competitors stores.) If, on the other hand, they click the Continue Checkout button, they are brought to Step 2 of the checkout process - Billing and Shipping Methods. Here, because you're working on with the PayPal Pro module, they are presented with a form to fill in credit card info. Since the customer does not necessarily want to pay by credit card (after all, they had pressed the Express Checkout button initially,) they instead press the Continue Checkout button in the hope that they will find someplace to enter their PayPal credentials (hopefully the PayPal site.) But that doesn't happen. All that happens is that they are given error messages telling them they need to fill in credit card info.
At this point, you've lost your customer...probably for good.
My solution to this entire mess is to hide the PayPal Pro Express Checkout button altogether by using CSS (probably not something PayPal would like.) Then, in addition to PayPal Pro, I enable the PayPal Standard checkout module. Now, when the customer gets to step 2 - Shipping and Billing Methods, I give them a choice of selecting to pay via PayPal (the standard module) or by Credit Card (the pro module.) If they elected credit card, they fill in their cc info here. Regardless of which payment method they choose, the next thing they do is press the Continue Checkout button. This generates their order and moves them to step 3 - Review and Place Order. After looking over their order and making sure everything is correct, the customer presses the Place Order button. Now, if the customer had selected PayPal as a payment method, they are taken to the PayPal site where they login and complete their order. If they elected to pay by credit card, the payment info is transmitted to PayPal and, without the customer ever leaving the Avactis store, a completed payment transaction screen is presented to the customer along with all the pertinent order information.
I apologize for the length of this message, but I wanted to get some feedback from the community, as well as layout a payment procedure that makes sense and that perhaps someone at Avactis would consider implementing so that folks like myself don't have to rework their cart in order to get it to work properly.