info

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


  • 4 402
  • 9-11-2017, 12:30
  • Автор : admin
  • 1

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

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

Совместимость : 2.0.Х, 2.1.x, 2.2, 2.3 12

Нашли ошибку? Выделите текст и нажмите CTRL+ENTER

Рекомендуем к просмотру

Интернет магазин для партнерских программ.

Интернет магазин для партнерских программ....

20-08-2015, 20:11

Инструкция Total import Pro

Инструкция Total import Pro...

30-10-2017, 19:51Vip

Модули для подключения различных дополнительных функций в магазине

Модули для подключения различных дополнительных функций в магазине...

11-11-2017, 23:52Info

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

  1. Koluha от 17 октября 2020 18:51
    Отличное решение, спасибо автору. При внедрении немного тупанул, автор указал в нужно русло.
  2. st.grisin от 24 ноября 2019 17:52
    Здравствуйте, скажите пожалуйста, в последнем опенкарте расширение .twig а не .tpl как это можно сделать?
  3. Алексей
    Алексей от 3 ноября 2019 22:30
    Приветствую! Спасибо, все получилось. Вопрос вот в чем, как убрать кнопку из определенной категории или с определенных товаров?
  4. Гость Юлия
    Гость Юлия от 12 марта 2019 23:17
    Здравствуйте! Подскажите, пожалуйста, этот метод работает в Опенкарт 3?
  5. Yura
    Yura от 3 октября 2018 15:04
    Добрый день.
    Подскажите все сделал как Вы прописали в статье.
    с карточки товара переход по реф. ссылке происходит, а с категории товара нет. При нажатии на кнопку купить в категории товара происходит переход на главную страницу сайта.
    код.
    <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>
  6. Sosiska_am
    Sosiska_am от 16 февраля 2018 14:51
    Спасибо за статью! Вопрос: при нажатии на кнопку переходит по ссылке вида www.название-моего-домена/https://vadivan.ru/. Как сделать, чтобы в начале ссылке не указывался мой домен, а сразу перенаправлялся на внешний ресурс - https://vadivan.ru/?
  7. вовчик
    вовчик от 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" />



    О все просто нужно чпу было включить в админке!
  8. admin от 8 июня 2017 14:32
    пишите на почту help@opencart-help.ru
  9. вовчик
    вовчик от 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
  10. admin от 8 июня 2017 14:21
    Цитата: вовчик
    странно , все сделал как написано выдает ошибку
    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


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

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

    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent