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

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

person access_time9-11-2017, 12:30 visibility5 296 chat_bubble_outline1

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

И так для этого отредактируем нужные нам файлы магазина на 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>

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


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

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

tagsСовместимость
Ctrl
Enter
Заметили ошЫбку
Выделите и нажмите Ctrl+Enter

Комментарии (1)

  1. img
    17 октября 2020 18:51 Koluha
    Отличное решение, спасибо автору. При внедрении немного тупанул, автор указал в нужно русло.
    replyОтветить
  2. img
    24 ноября 2019 17:52 st.grisin
    Здравствуйте, скажите пожалуйста, в последнем опенкарте расширение .twig а не .tpl как это можно сделать?
    replyОтветить
  3. img
    3 ноября 2019 22:30 Алексей
    Приветствую! Спасибо, все получилось. Вопрос вот в чем, как убрать кнопку из определенной категории или с определенных товаров?
    replyОтветить
  4. img
    12 марта 2019 23:17 Гость Юлия
    Здравствуйте! Подскажите, пожалуйста, этот метод работает в Опенкарт 3?
    replyОтветить
  5. img
    3 октября 2018 15:04 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>
    replyОтветить
  6. img
    16 февраля 2018 14:51 Sosiska_am
    Спасибо за статью! Вопрос: при нажатии на кнопку переходит по ссылке вида www.название-моего-домена/https://vadivan.ru/. Как сделать, чтобы в начале ссылке не указывался мой домен, а сразу перенаправлялся на внешний ресурс - https://vadivan.ru/?
    replyОтветить
  7. img
    8 июня 2017 14:44 вовчик
    Цитата: admin
    <input type="button" value="<?php echo $button_cart; ?>" onclick="window.open('<?php echo $location; ?>');" class="btn btn-primary btn-lg btn-block" />



    О все просто нужно чпу было включить в админке!
    replyОтветить
  8. img
    8 июня 2017 14:32 admin
    пишите на почту help@opencart-help.ru
    replyОтветить
  9. img
    8 июня 2017 14:31 вовчик
    сейчас залью их

    Цитата: 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
    replyОтветить
  10. img
    8 июня 2017 14:21 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


    Пришлите мне файлы в которые вносили правки
    попробуйте обновить кеш модификацый
    replyОтветить
  11. img
    8 июня 2017 14:17 вовчик
    странно , все сделал как написано выдает ошибку
    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
    replyОтветить
  12. img
    10 апреля 2017 15:49 dino
    Так, ваша правда, зробив помилку. Вам + за швидку відповідь! =)
    replyОтветить
  13. img
    10 апреля 2017 11:51 Виктор
    Вы где то ошиблись потому как все работает
    replyОтветить
  14. img
    10 апреля 2017 09:10 dino
    Opencart 2.1.0.2
    Я в php новачок. Вніс зміни в /catalog/controller/product а також в /catalog/view/theme/default/template/product (в мене дефолтна тема). В Адмінці в поле location вставив силку. Кнопка появилассь, а під нею є помилка Notice: Undefined variable: location in .... можливо змінну location потрібно викликати якось інше?
    replyОтветить

Добавить комментарий