David Murray
David Murray

Reputation: 228

Opencart Paypal unsupported currency

Im trying to support the checkout of ZAR (South African Rand).

So far i have enabled $, this enables the paypal module however the conversion isn't being completed.

The site simply checkout to the value. Eg: R1500.00 = $1500.00 when checking out through paypal.

What is the correct way to do the currency conversion using the built in convertor?

Upvotes: 3

Views: 3774

Answers (2)

bestshop24h
bestshop24h

Reputation: 121

for opencart 2 or 3 the first step is the same EDIT: catalog/model/extension/payment/pp_standard.php

FIND AND REMOVE:

if (!in_array(strtoupper($this->currency->getCode()), $currencies)) { $status = false; }

the second step is

at catalog/controller/extension/payment/pp_standard.php find

$order_info = $this->model_checkout_order->getOrder($this->session->data['order_id']);

after it ,and

$order_info['currency_code'] = 'USD';

this solution will exchange all currencies to USD and then go to paypal.com to pay

Upvotes: 0

David Murray
David Murray

Reputation: 228

Ok found the solution:

Taken from Opencart Forum by user Qphoria

Q: How can I use paypal if my currency isn't supported? Q: How can I use a payment gateway that doesn't support my currency? Q: Paypal doesn't support my currency?

A: You are limited to what the payment gateway supports. However, you can add code to auto-convert your currency to the current exchange rate of a supported currency fairly easy.

(v1.5.x) 1. EDIT: catalog/controller/payment/.php

  1. FIND (FIRST INSTANCE ONLY):

Code: Select all $order_info = $this->model_checkout_order->getOrder

  1. AFTER, ADD (Replace USD with your choice of valid currency):

Code: Select all $order_info['currency_code'] = 'USD';

Whatever currency you choose to use, be sure you have it in your list of currencies on your store in the Admin->System->Localisation->Currency page. It doesn't need to be enabled, just has to exist so that the conversion calculation can be done.

This will then auto convert the amount before it is sent to the gateway. The customer won't likely notice this. They will see, for example, 1000 AED on the checkout page But you will see $272.25 USD (based on the current conversion rate) in your paypal account.

Up til 1.5.1.3, Paypal Standard did this automatically In 1.5.2, it was changed (not for the better) to simply disable itself from the list of payments if using an unsupported currency. So that will need special instruction and maybe should be changed back in the core.

For now: 1. EDIT: catalog/model/payment/pp_standard.php

  1. FIND AND REMOVE:

Code: Select all if (!in_array(strtoupper($this->currency->getCode()), $currencies)) { $status = false; }

  1. EDIT: catalog/controller/payment/pp_standard.php

  2. FIND (THE FIRST INSTANCE ONLY):

Code: Select all $order_info = $this->model_checkout_order->getOrder

  1. AFTER, ADD:

Code: Select all $currencies = array('AUD','CAD','EUR','GBP','JPY','USD','NZD','CHF','HKD','SGD','SEK','DKK','PLN','NOK','HUF','CZK','ILS','MXN','MYR','BRL','PHP','TWD','THB','TRY'); if (!in_array(strtoupper($this->currency->getCode()), $currencies)) { $order_info['currency_code'] = 'USD'; }

Change "USD" with your choice of supported currency.

Upvotes: 2

Related Questions