Делал для ocStore 3.0, получилось примерно так:
скачал библиотеку phpqrcode и положил ее в директорию helper движка магазина,
сделал "генератор картинки qr.php такого вида, положил в корень сайта:
<?php
include('/var/www/ocstore/system/helper/phpqrcode/qrlib.php');
QRcode::png(base64_decode($_GET['qr']));
в шаблоне catalog/view/theme/default/template/account/order_info.twig строку
<td class="text-left">{{ history.comment }}</td>
меняем на
<td class="text-left">
{{ history.comment }}
{% if history.qr_show %}
<br><img src="{{ history.qr_img|raw }}"></img>
{% endif %}
</td>
контроллеры:
catalog/controller/account/order.php:
$data['histories'][] = array(
'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added'])),
'status' => $result['status'],
'comment' => $result['notify'] ? nl2br($result['comment']) : ''
);
на
if(preg_match('|\{QRCODE\}(.+)\{/QRCODE\}|s', $result['comment'], $qr_matches)) {
$qr_str = $qr_matches[1];
$qr_img_show = true;
$qr_str = str_replace('{LASTNAME}', $order_info['payment_lastname'], $qr_str);
$qr_str = str_replace('{FIRSTNAME}', $order_info['payment_firstname'], $qr_str);
$qr_str = str_replace('{ADDRESS}', $order_info['payment_address_1'], $qr_str);
$qr_str = str_replace('{NORDER}', $data['order_id'], $qr_str);
$qr_str = str_replace('{TOTAL}', number_format ($totals[count($totals)-1]['value'], 2, ".", ""), $qr_str);
$qr_img_png = 'http://адрес-сайта-магазина/qr.php?qr='.urlencode(base64_encode($qr_str));
$tmp_comment = $result['comment'];
$result['comment'] = preg_replace('|\{QRCODE\}(.+)\{/QRCODE\}|s', '', $tmp_comment);
} else {
$qr_img_show = false;
$qr_img_png = '';
}
$data['histories'][] = array(
'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added'])),
'status' => $result['status'],
'comment' => $result['notify'] ? nl2br($result['comment']) : '',
'qr_show' => $qr_img_show,
'qr_img' => $qr_img_png
);
catalog/controller/extension/payment/bank_transfer.php
$data['bank'] = nl2br($this->config->get('payment_bank_transfer_bank' . $this->config->get('config_language_id')));
на:
$bank_text = $this->config->get('payment_bank_transfer_bank' . $this->config->get('config_language_id'));
if(preg_match('|\{QRCODE\}(.+)\{/QRCODE\}|s', $bank_text, $qr_matches)) {
$bank_text = preg_replace('|\{QRCODE\}(.+)\{/QRCODE\}|s', '', $bank_text)."\n\nПосле подтверждения заказа, для удобства оплаты, будет сформирован QR-код.\nОплатить по нему вы сможете на странице информации о заказе.";
}
$data['bank'] = nl2br($bank_text);
Протестировано совместно с UniShop2 на ocStore 3.0.2.0, т. к. файлы UniShop не затронуты - должно работать на чистом ocStore.