Как добавить дополнительные поля в OpenCart

Как добавить дополнительные поля в OpenCart

От автора: приветствую вас, друзья. Итак, мы продолжаем цикл статей, посвященных знакомству с одной из популярнейших CMS для создания интернет-магазинов – OpenCart (Оперкарт). В этой статье мы поговорим о том, как добавить дополнительные поля в OpenCart.

Итак, в этой статье мы с вами поговорим о том, как добавить дополнительные поля для товара. По большому счету полей для товара итак достаточно и в большинстве случаев вам их хватит с лихвой. Здесь есть вся основная информация о товаре: наименование, цена, описание, модель, производитель, категория товара и другие.

Однако, возможно этого будет мало, и вы захотите вывести что-то еще, например, страну производителя, материал и т.п. Для реализации задуманного в идеале нужен модуль, который можно достаточно легко написать самостоятельно, либо же можно поискать готовый в сети. Но, если нужно быстро, тогда можно воспользоваться полями, которые есть в Опенкарте, но нигде по сути не используются. Вот эти поля:

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Получить курс сейчас!

Почему бы эти самые поля для разных кодов товара не использовать для достижения цели? Как-то так:

Теперь новые данные полей необходимо получить в контроллере, чтобы они стали доступны в шаблоне. Откроем контроллер catalog\controller\product\product.php и перед подключением вида добавим пару строк, получающих нужные данные:

Осталось переменные $upc и $ean использовать в нужном месте шаблона theme\ваша_тема\template\product\product.tpl:

Попробуем обновить страницу товара (возможно, придется почистить кэш дополнений, меню Дополнения – Менеджер дополнений).

Все получилось. На этом сегодня все. Больше об OpenCart вы можете узнать из наших бесплатных или платных уроков.

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Получить курс сейчас!

Хотите узнать, что необходимо для создания сайта?

Посмотрите видео и узнайте пошаговый план по созданию сайта с нуля!

Смотреть видео

Метки:

Похожие статьи:

Комментарии Вконтакте:

Комментарии Facebook:

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

  1. Николай

    Добрый вечер!

    Не могли бы Вы так же описать эту процедуру для версии 3.х?
    Там принципиально разный код между тем, который в файлах и тем, который описан вами.

    Заранее благодарю!

    • Андрей

      Здравствуйте, Николай. Если буду работать с OpenCart 3 — постараюсь не забыть. Пока, если честно, с новой версией этой CMS еще не приходилось сталкиваться.

  2. Максим

    Здравствуйте! Очень полезная статья. Но очень хотелось бы получить пояснения, как быть, если необходимо добавить новые поля в каталог?
    Буду очень благодарен за ответ.

    • Андрей

      Здравствуйте. В контроллере catalog\controller\product\category.php формируется массив продуктов $data['products'], в который записываются такие данные, как: ID товара, картинка, наименование и др. (скриншот). В этот массив Вы можете добавить нужные Вам данные. Сами данные находятся в массиве $result. Вы можете распечатать этот массив в контроллере при необходимости и посмотреть, что именно там находится и как можно взять нужный элемент массива.

      • Максим

        Спасибо! Однако это ведь будут поля для конечных продуктов, а мне необходимо для их категорий.

        • Андрей

          Вы не уточнили, что Вам нужны поля для категорий, Вы сказали, что они нужны для каталога, т.е. логичнее предположить, что они нужны для каталога товаров, т.е. товаров, которые выводятся списком, а не для карточки товара.
          Если нужные дополнительные поля для категорий, тогда придется потрудиться. Необходимо добавить новые поля в вид админки, который отвечает за показ формы редактирования категории, принимать данные из этих полей в контроллере и записывать в БД в файле модели. Это что касается админской части.
          Также и в пользовательской части необходимо будет получить новые данные в соответствующих файлах (контроллер/модель/вид), которые отвечают за пользовательскую часть. В общем, задача по сути несложная и кода писать придется не так много, но придется работать со многими файлами.

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