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?
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
Code: Select all $order_info = $this->model_checkout_order->getOrder
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
Code: Select all if (!in_array(strtoupper($this->currency->getCode()), $currencies)) { $status = false; }
EDIT: catalog/controller/payment/pp_standard.php
FIND (THE FIRST INSTANCE ONLY):
Code: Select all $order_info = $this->model_checkout_order->getOrder
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.