OpenCart и 2checkout.com | OpenCart
Прикрутил к магазину на OpenCart (1.5.3.1) модуль платежа через 2checkout.com. Поймал баг – магазин отдает сумму в дефолтной валюте, и если у нас к примеру, дефолтная валюта – доллар а цену мы выбрали в рублях – то при оформлении заказа получаем на странице оплаты цифру рублевой цены но уже в долларах. Например: товар стоит $3, в рублях это примерно 90руб. Оформляем через 2checkout.com и видим $90.
Решение отсюда:
http://forum.opencart.com/viewtopic.php?f=113&t=70678&p=314591p314591
Дефолтной валютой ставим доллар, и в файле /catalog/controller/payment/twocheckout.php меняем:
$this->data['total'] = $this->currency->format($order_info['total'], $order_info['currency_code'], $order_info['currency_value'], false);
на
$this->data['total'] = number_format($order_info['total'], 2, '.', '');
Вторая история с опернкарт и 2CO – если покупатель не нажмет кнопку Finish your order – заказ не отобразится в админке опенкарта. Для этого есть фикс от 2CO. В админке 2checkout.com меняем тип редиректа после оформления заказа:
SITE MANAGEMENT – Direct Return – Header Redirect (Your URL)
Урл вставляем стандартный.
http://site.com/index.php?route=payment/twocheckout/callback
В файле catalog/controller/payment/twocheckout.php меняем функцию public function callback() (в конце файла все до последней фигурной скобки):
public function callback() {
$this->load->model('checkout/order');
$order_info = $this->model_checkout_order->getOrder($this->request->get['cart_order_id']);
if (!$this->config->get('twocheckout_test')) {
$order_number = $this->request->get['order_number'];
} else {
$order_number = '1';
}
if (strtoupper(md5($this->config->get('twocheckout_secret') . $this->config->get('twocheckout_account') . $order_number . $this->request->get['total'])) == $this->request->get['key']) {
$this->model_checkout_order->confirm($this->request->get['cart_order_id'], $this->config->get('twocheckout_order_status_id'));
$this->redirect(HTTP_SERVER . 'index.php?route=checkout/success');
} else {
echo 'The response from 2checkout.com can\'t be parsed. Contact site administrator, please!';
}
}
После того как покупатель ввел свои данные произойдет автоматический редирект на ваш сайт а заказ будет отображен в админке.
The response from 2checkout.com can’t be parsed. Contact site administrator, please!
вот такую ошибку начинает выдавать.