Ссылка в кнопку купить OPENCART 2

9-11-2017, 12:30
Ссылка в кнопку купить OPENCART 2

Для партнерских интернет магазинов иногда надо сделать так что при нажатии на кнопку купить пользователь переходил на сайт партнера по партнерской ссылке.

И так для этого отредактируем нужные нам файлы магазина на Opencart 2, но сперва изменим значение в базе данных для того чтобы не обрезались очень длинные ссылки.

Открываем PHPmyadmin искать его следует в панели управления вашего хостинга где с лева вам надо выбрать свою базу данных подключенную к интернет магазину. (Если не знаете какая у вас база посмотрите в файле config.php).

С левой стороны представлены все таблицы, нам необходимо найти: oc_product (Где ос_ это префикс моих таблиц и у вас он может быть другой)

тыкаем в то что нашли и меняем представление на вкладку «структура».

В структуре данной таблицы нам надо изменить значение длинны сохраняемых символов в поле location. Здесь будут хранится ссылки партнерских программ, смотрим и видим «Изменить».

Меняем поле «длинна значения» по умолчанию оно составляет 128 символов напишите туда, например, 800 при условии, что ваши ссылки не будут длиннее 800 символов.

Пол дела сделано!

Теперь внесем правки в сами файлы движка. Откройте файл product.php который хранится в директории:

/catalog/controller/product

Найдите:

$data['points'] = $product_info['points'];

После него вставляем:

$data['location'] = $product_info['location'];

Найдите:

'name'        => $result['name'],

После:

'location'     => $result['location'],

Сохраняем и загружаем обратно на сервер.

Теперь нам надо сделать так чтобы ссылка из поля расположение передавалась в кнопку. Открываем product.tpl в расположении:

/catalog/view/theme/default/template/product обратите внимание что я демонстрирую стандартный шаблон «default» у Вас может быть другой шаблон, но суть такая же.

Найдите:

<button type="button" id="button-cart" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-primary btn-lg btn-block"><?php echo $button_cart; ?></button> 

( Это и есть наша кнопка купить где class=" btn btn-primary btn-lg btn-block " это класс который придает оформление нашей кнопке. На тот случай если у вас не стандартная тема.)

Замените на:

<input type="button" value="<?php echo $button_cart; ?>" onclick="window.open('<?php echo $location; ?>');" class="btn btn-primary btn-lg btn-block" />

Напишите любую ссылку в карточке продукта в поле расположение (location) и проверьте работу!

Но кнопки в категориях, модулях и поиске работают в стандартном режиме

Будем исправлять!

Открываем файл в директории /catalog/controller/product

«category.php»

Находим:

'name'        => $result['name'],

После вставляем:

'location'     => $result['location'],

Теперь кнопку в категориях открываем: /catalog/view/theme/default/template/product

«category.tpl»

Находим код кнопки:

<button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span></button>

Изменяем на такой

<button type="button" onclick="window.open('<?php echo $product['location']; ?>');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span></button>

Готово! По сути осталось изменить модули и страницу поиска где на примере страницы с категориями проделываем тоже самое с любым из модулей и любой другой схемой вашего интернет магазина


Готовая сборка Смотреть демо

Сборка OcStore где вместо кнопки купить ссылка на партнерскую программу например admitad. возможно применить 11 шаблонов управление на русском, Авто обновление каталогов

Совместимость 2.0.х2.1.x2.22.3

Koluha

Отличное решение, спасибо автору. При внедрении немного тупанул, автор указал в нужно русло.
Ответить

st.grisin

Здравствуйте, скажите пожалуйста, в последнем опенкарте расширение .twig а не .tpl как это можно сделать?
Ответить

Алексей

Приветствую! Спасибо, все получилось. Вопрос вот в чем, как убрать кнопку из определенной категории или с определенных товаров?
Ответить

Гость Юлия

Здравствуйте! Подскажите, пожалуйста, этот метод работает в Опенкарт 3?
Ответить

Yura

Добрый день.
Подскажите все сделал как Вы прописали в статье.
с карточки товара переход по реф. ссылке происходит, а с категории товара нет. При нажатии на кнопку купить в категории товара происходит переход на главную страницу сайта.
код.
<button type="button" class="addtocart" onclick="location.href=('{{ product.location }}');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md">{{ button_cart }}</span></button>
Ответить

Sosiska_am

Спасибо за статью! Вопрос: при нажатии на кнопку переходит по ссылке вида www.название-моего-домена/https://vadivan.ru/. Как сделать, чтобы в начале ссылке не указывался мой домен, а сразу перенаправлялся на внешний ресурс - https://vadivan.ru/?
Ответить

вовчик

Цитата: admin
<input type="button" value="<?php echo $button_cart; ?>" onclick="window.open('<?php echo $location; ?>');" class="btn btn-primary btn-lg btn-block" />



О все просто нужно чпу было включить в админке!
Ответить

admin

пишите на почту help@opencart-help.ru
Ответить

вовчик

сейчас залью их

Цитата: admin
Цитата: вовчик
странно , все сделал как написано выдает ошибку
The requested URL /<b>Notice</b>: Undefined variable: product in <b>/home/u25242/data/www/blogg48.ru/catalog/view/theme/coloring/template/
product/product.tpl</b> on line <b>447</b> was not found on this server.


Как решить проблему? opencart-2.1.0.2


Пришлите мне файлы в которые вносили правки
попробуйте обновить кеш модификацый



Вот каталог темы ( убрал все исправления ) https://yadi.sk/d/oH_GfI6B3JwGob

Вот вся папка каталога https://yadi.sk/d/cz1a3qdy3JwH8f

сори не ту ссылку дал вот https://yadi.sk/d/fDdKrtnd3JwHCH
Ответить

admin

Цитата: вовчик
странно , все сделал как написано выдает ошибку
The requested URL /<b>Notice</b>: Undefined variable: product in <b>/home/u25242/data/www/blogg48.ru/catalog/view/theme/coloring/template/
product/product.tpl</b> on line <b>447</b> was not found on this server.


Как решить проблему? opencart-2.1.0.2


Пришлите мне файлы в которые вносили правки
попробуйте обновить кеш модификацый
Ответить

вовчик

странно , все сделал как написано выдает ошибку
The requested URL /<b>Notice</b>: Undefined variable: product in <b>/home/u25242/data/www/blogg48.ru/catalog/view/theme/coloring/template/
product/product.tpl</b> on line <b>447</b> was not found on this server.


Как решить проблему? opencart-2.1.0.2
Ответить

dino

Так, ваша правда, зробив помилку. Вам + за швидку відповідь! =)
Ответить

Виктор

Вы где то ошиблись потому как все работает
Ответить

dino

Opencart 2.1.0.2
Я в php новачок. Вніс зміни в /catalog/controller/product а також в /catalog/view/theme/default/template/product (в мене дефолтна тема). В Адмінці в поле location вставив силку. Кнопка появилассь, а під нею є помилка Notice: Undefined variable: location in .... можливо змінну location потрібно викликати якось інше?
Ответить

Оставить комментарий