Post by bigjohn » Mon Mar 20, 2017 8:54 am

Using Paypal Standard.

Can check out using my Paypal account perfectly. When trying guest checkout (to pay with credit card) it will let me submit all info except there's nothing in the "shipping" dropdown. Try to submit and nothing happens--stays on the same page and does not submit.

Is this an opencart or paypal issue? Any ideas on a solution?

Thanks!

Newbie

Posts

Joined
Sun Mar 19, 2017 7:05 am

Post by Qphoria » Tue Mar 21, 2017 1:05 am

Is this on the paypal site at this point? or in opencart's checkout? There are no known issues with the Paypal Standard checkout mod in any recent versions of OpenCart.

OpenCart 2.0.x Mod Update Info

Image
Donate!|OpenCart Basics|GeoZones
Image


User avatar
Administrator

Posts

Joined
Tue Jul 22, 2008 3:02 am

Post by bigjohn » Tue Mar 21, 2017 7:27 am

It's on the Paypal site. But I didn't know if I was missing something on the Opencart end. Like I said, it will let me fill in everything except the "shipping" section in Paypal.
Image

Newbie

Posts

Joined
Sun Mar 19, 2017 7:05 am

Post by bigjohn » Mon Mar 27, 2017 8:00 am

Is anyone using this as their primary checkout?

All I've received from PayPal is to clear my cache. Gahh...

Newbie

Posts

Joined
Sun Mar 19, 2017 7:05 am

Post by ADD Creative » Mon Apr 03, 2017 10:40 pm

It might be that you have shipping prices set in your PayPal account.

Another thing you could try is to change the no_shipping flag in the pp_standard.tpl in the default theme from 1 to 0.
From

Code: Select all

<input type="hidden" name="no_shipping" value="1" />
to

Code: Select all

<input type="hidden" name="no_shipping" value="0" />
However be aware that OpenCart will send the payment address and if a customer changes the shipping address on the PayPal payment page you won't know about it unless you login to PayPal and log at that payment.

ADD Creative - Web development and e-commerce development, Milton Keynes or Christchurch, UK
ADD Filtration - HVAC Panel Filters, Bag Filters and HEPA Filters


Active Member

Posts

Joined
Sat Jan 14, 2012 1:02 am

Post by linetrace » Tue Aug 08, 2017 11:17 am

I was running into this exact same issue. I notice from your screenshot that, like in my case, the state pop-up menu in the PayPal cart is not being populated with data from OpenCart. Upon further testing, I had found that populating the state field & re-entering the Zip code allowed the user to complete the PayPal checkout process.

There are two issues here which combine to make this an extra difficult issue for the customer (when using PayPal Payments Standard payment extension in OpenCart):

1) OpenCart is not sending the state to PayPal. (OpenCart bug)
2) If the user logs into a PayPal account, the PayPal cart will use the state from the address saved in their PayPal account, so the user doesn't experience any issues. However, if the user selects "Pay with Debit or Credit Card" button (using PayPal Guest Checkout), the state field will not be populated, hiding shipping options, and PayPal's cart will silently fail to let the customer complete the order. (PayPal bug... they should be warning the user that the address is incomplete.)

I have confirmed the OpenCart bug exists in the PayPal Payments Standard extension in OpenCart 2.3.0.2 and the latest 3.0.2.0. I have submitted an issue & fix (see https://github.com/opencart/opencart/issues/5861). In the meantime, you can manually patch your 'atalog/controller/extension/payment/pp_standard.php' and 'catalog/view/theme/*/template/extension/payment/pp_standard.*' files to properly include the state code (see the GitHub issue & pull request).

What a big, long oversight on OpenCart's side, but hopefully the fix will be accepted quickly and I hope this helps others.

Newbie

Posts

Joined
Sat Aug 05, 2017 4:42 am
Location - Winooski, VT, US

Post by ADD Creative » Tue Aug 08, 2017 7:03 pm

The submitted changes could break things for non US addresses.

You need to test for US and send the full zone name for other countries.

Code: Select all

if ($order_info['payment_iso_code_2'] == 'US') {
	$data['state'] = $order_info['payment_zone_code'];
} else {
	$data['state'] = $order_info[payment_zone'];
}
There are probably some other countries such as Brazil, Canada, Italy, Mexico where thre zone code sould be sent. See https://developer.paypal.com/docs/class ... ate_codes/

An example of non US address where the state is the zone name and not the code.
https://www.paypal.com/uk/cgi-bin/websc ... te_outside

ADD Creative - Web development and e-commerce development, Milton Keynes or Christchurch, UK
ADD Filtration - HVAC Panel Filters, Bag Filters and HEPA Filters


Active Member

Posts

Joined
Sat Jan 14, 2012 1:02 am

Post by linetrace » Wed Aug 09, 2017 8:06 am

Very good point! Of course, this fix can't break it more than it already was since it wasn't sending the state/region to PayPal at all. Please feel free to submit a GitHub Pull Request to better support international addresses.

Newbie

Posts

Joined
Sat Aug 05, 2017 4:42 am
Location - Winooski, VT, US
Who is online

Users browsing this forum: No registered users and 9 guests