Добавление типа продукта в prestashop Добавить страницу продукта

Я новичок в prestashop, я пытаюсь добавить новый тип продукта в дополнение к стандартному продукту, виртуальному продукту, пакету существующих продуктов

Добавил это в файл informations.tpl

<
div class="radio">
                <label for="digital_product">
                    <input type="radio" name="type_product" id="digital_product" {if $is_in_pack}disabled="disabled"{/if} value="{Product::PTYPE_DIGITAL}" {if $product_type == Product::PTYPE_DIGITAL}checked="checked"{/if} >
                    {l s='Digital product (services, booking, downloadable products, etc.)'}</label>
            </div>

Я хочу сохранить это в новом столбце is_digital в ps_product table.iam поражен здесь. Пожалуйста, помогите. Есть ли какие-либо документы для полного рабочего процесса всех классов и функций prestashop?

1 ответ

Решение

Изменение основных направлений работы PrestaShop - ОГРОМНОЕ мероприятие. Вы должны и должны использовать модуль для подобных случаев.

  1. Идти к Hook.php и найти exec() функция. использование error_log($hook_name) выяснить, какие хуки доступны при выполнении определенного действия. Например, когда вы открываете страницу редактирования продукта, они могут быть FormModifier крючок, который вы могли бы использовать, чтобы добавить радио блок для нового типа продукта. Но это всего лишь "косметика" добавления нового типа.
  2. Вы должны создать модуль для модификации PrestaShop. Сначала попробуйте найти, есть ли доступный хук, чтобы изменить то, что вам нужно. Если нет, вам нужно переопределить фактическое class/controller, Overrding легко, но обычно не рекомендуется. Создайте копии файлов классов / контроллеров в папке вашего модуля: modules/yourmodule/override/controller/admin/AdminProductCotnroller.php и оставляйте только те функции, которые вы переопределяете. Также попробуйте сделать, если условно: if ($iCanModify) { // Modify} else { return parent::method(); }
  3. Отслеживайте константу, переменную или строку типа продукта (Product::TYPE_STANDARD?) Везде, где это встречается в файлах PS. Вам нужно будет изменить / добавить логику в эти места, чтобы заставить вас работать.
Другие вопросы по тегам