Модуль раздельной тестовой корзины Opencart

Я пытаюсь создать путь сплит-тестирования для процесса продаж в Opencart, но не смог изменить URL-адрес мини-корзины «Просмотр корзины».

Вот [надеюсь] более четкое объяснение разделенного пути:

?route=product/categorya&path=XX
?route=product/producta&product_id=XX
?route=checkout/carta

Это работает до этого момента: на checkout/carta у меня есть «Пустая корзина» и «Продолжить покупки», указывающие на соответствующие ссылки:

?route=checkout/carta&empty=1

а также

?route=product/categorya&path=XX

У меня даже мини-корзина «Удалить» работает правильно, но «Просмотр корзины» возвращает checkout/cart, что завершает остальную часть процесса.

Я пробовал следующие шаги безрезультатно:

#catalog/controller/module/carta.php
class ContorllerModuleCarta extends Controller {
....
$this->data['cart'] = $this->url->link('checkout/carta');

#catalog/view/theme/mytheme/template/module/carta.tpl
<div id="carta">...

#catalog/view/javascript/common.js
/* Ajax Carta */
...
$('#carta').load('index.php?route=module/carta #carta > *');
...

Я не уверен, что мне не хватает, но был бы признателен за любое направление.


person macgregor    schedule 30.10.2015    source источник


Ответы (1)


Проблема в том, что ваш код не связан с Opencart. Вы можете сделать это двумя способами -
1-й - загрузить корзину Opencart из общего > файла header.php, используя

        $this->children = array(
            'module/language',
            'module/currency',
            'module/cart'
        );

так что ваш код, файл carta.php не будет загружаться, так что это конец вашего кода. Добавьте сюда код своего модуля, а затем загрузите/выведите его в файл header.tpl и удалите $cart, иначе отобразятся две корзины.

        $this->children = array(
                'module/language',
                'module/currency',
                'module/carta'
            );

tpl-код

       <?php echo $carta; ?>

2-й - если вы не хотите использовать корзину Opencart по умолчанию, просто измените эту строку на файл cart.php, нет необходимости добавлять другой код (потребуется код js)

        $this->data['cart'] = $this->url->link('checkout/carta');

Примечание. Пожалуйста, используйте vqmod/ocmod для кода, прямое изменение в файле ядра является злом.

person Nikhil Chaudhary    schedule 31.10.2015
comment
Благодарю вас! Это пролило свет на части, которые я пропустил, и теперь я пересматриваю, как лучше всего решить. Я признаю, что редактирование ядра — это «зло», и хотя я унаследовал это и мне нужно многое узнать о vqmod, мне действительно нужны два отдельных пути (и, следовательно, дубликаты файлов из ядра) для выполнения бизнес-директив. - person macgregor; 02.11.2015