Автор Тема: Prestashop FAQ - как добавить новое поле к товару  (Прочитано 10977 раз)

16 Декабря 2015, 12:25:26
Ответ #30
  • Ученик
  • Новичок
  • *
  • Сообщений: 8
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
2. Добавить новое поле в класс.
Для товара,  в файл /classes/Product.php добавляем
                        'myvar' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'size' => 255),

Если я хочу добавить в заказах поле типа TEXT или BLOB, то какую длину мне указывать в классе?
16 Декабря 2015, 12:32:36
Ответ #31
  • Ветеран
  • *****
  • Сообщений: 105581
  • Репутация: +39547/-0
    • Просмотр профиля
    • Webstudio UwK
Можете указать TYPE_HTML и не указывать размер.
Cоздание интернет сайтов Webstudio UwK
16 Декабря 2015, 12:34:36
Ответ #32
  • Ветеран
  • *****
  • Сообщений: 105581
  • Репутация: +39547/-0
    • Просмотр профиля
    • Webstudio UwK
Типы данных в MySQL
// TEXT
// byte — кол-во байт для хранения поля
// min_byte — минимальное кол-во байт для хранения одного символа (если длина поля равна 1)
// length — максимальное количество символов в поле
'tinytext'=>Array('byte'=>256, 'min_byte'=>2, 'length'=>255),
'text'=>Array('byte'=>65537, 'min_byte'=>3, 'length'=>65535),
'mediumtext'=>Array('byte'=>16777218, 'min_byte'=>4, 'length'=>16777215),
'longtext'=>Array('byte'=>4294967300, 'min_byte'=>5, 'length'=>4294967296),
'tinyblob'=>Array('byte'=>256, 'min_byte'=>2, 'length'=>255),
'blob'=>Array('byte'=>65537, 'min_byte'=>3, 'length'=>65535),
'mediumblob'=>Array('byte'=>16777219, 'min_byte'=>4, 'length'=>16777215),
'longblob'=>Array('byte'=>4294967300, 'min_byte'=>5, 'length'=>4294967296),
Cоздание интернет сайтов Webstudio UwK
16 Февраля 2017, 17:11:14
Ответ #33
  • Пользователь
  • **
  • Сообщений: 66
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
5. Для показа нового поля в админке
В файле AdminProductsController.php в методе copyFromPost
$object->myvar = Tools::getValue('myvar');
в методе renderForm
fields_to_copy = array(...,$myvarдля prestashop 1.6
tpl_form_vars['myvar'] = $myvar;в методе initFormInformations
// global informations
array_push(..., 'myvar'В файле  admin/themes/default/template/controllers/products/informations.tpl там где нужно показать новое значение
{$myvar}

Подскажите, пожалуйста, вот с 5-го пункта не пойму к какому относиться что к 1.6 конкретно относится?
16 Февраля 2017, 18:10:49
Ответ #34
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 33010
  • Репутация: +26761/-0
    • Просмотр профиля
для prestashop 1.6
...
Все что после этого текста.
17 Февраля 2017, 18:58:42
Ответ #35
  • Пользователь
  • **
  • Сообщений: 66
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
5. Для показа нового поля в админке
В файле AdminProductsController.php в методе copyFromPost
$object->myvar = Tools::getValue('myvar');
в методе renderForm
fields_to_copy = array(...,$myvarдля prestashop 1.6
tpl_form_vars['myvar'] = $myvar;в методе initFormInformations
// global informations
array_push(..., 'myvar'В файле  admin/themes/default/template/controllers/products/informations.tpl там где нужно показать новое значение
{$myvar}

Тогда вопрос, а где ставить tpl_form_vars['myvar'] = $myvar;? Я ставлю tpl_form_vars['price_attribute'] = $this->price_attribute; и в copyFromPost и в renderForm а он мне все равно ошибку выдает expression is not assignable: Constant reference или я еще где то накосячил?
24 Февраля 2017, 14:29:52
Ответ #36
  • Пользователь
  • **
  • Сообщений: 66
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Подскажите, пожалуйста, хочу в комбинации добавить отдельное поле с ценой. Что бы не с влиянием париться при апдейте товара, а просто товару в комбинациях свою цену давать если в этом есть необходимость. Какие поля мне надо править в AdminProductsController.php?
24 Февраля 2017, 14:43:19
Ответ #37
  • Ветеран
  • *****
  • Сообщений: 2543
  • Репутация: +58/-4
  • Сообщество PrestaShop
    • Просмотр профиля
Править придеться не только AdminProductsController.php, классы, контроллеры, функции ценообразования и т.д.
Проще "попарится" с импортом.
24 Февраля 2017, 15:04:13
Ответ #38
  • Пользователь
  • **
  • Сообщений: 66
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Править придеться не только AdminProductsController.php, классы, контроллеры, функции ценообразования и т.д.
Проще "попарится" с импортом.

Дело в том что там сидят девочки и заполняют товар ручками и не хотят пользоваться родным импортом для заполнения товара. Они хотят конкретно поле с ценой и все. Что бы не считать влияние, а что бы просто это поле заполнить и все. Так же и апдейт что бы не считал разницу, а просто добавлял заданную цену нужному товару в комбинации.
Я понимаю что не только AdminProductsController.php надо менять, но как мне кажется там самое сложное и стартовать надо с него.
24 Февраля 2017, 15:40:35
Ответ #39
  • Ветеран
  • *****
  • Сообщений: 2543
  • Репутация: +58/-4
  • Сообщество PrestaShop
    • Просмотр профиля
AdminProductsController.php только шаблонные переменные менять (хотя можно оставить теже только перевод изменить), главное это изменить фунции расчета цены у комбинаций.
24 Февраля 2017, 15:45:38
Ответ #40
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22166
  • Репутация: +17111/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Дело в том что там сидят девочки и заполняют товар ручками и не хотят пользоваться родным импортом для заполнения товара. Они хотят конкретно поле с ценой и все. Что бы не считать влияние, а что бы просто это поле заполнить и все. Так же и апдейт что бы не считал разницу, а просто добавлял заданную цену нужному товару в комбинации.
Я понимаю что не только AdminProductsController.php надо менять, но как мне кажется там самое сложное и стартовать надо с него.
Ставьте цену у товара 0,00, тогда у комбинаций можно указывать цену не высчитывая влияние.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
24 Февраля 2017, 15:53:02
Ответ #41
  • Пользователь
  • **
  • Сообщений: 66
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
AdminProductsController.php только шаблонные переменные менять (хотя можно оставить теже только перевод изменить), главное это изменить фунции расчета цены у комбинаций.

На сколько я уже разобрался в моем шаблоне в нагляк вставляют цену с помощью JS мне надо только найти где и как ее вытаскивают и внести изменения в нее. Вопрос только в том что я уже две недели парюсь над этим добавлением одного поля. Я конечно попробую на выходных взять какую то шаблонную переменную, вот только какую? У оптовой цены слишком завязок много, как я понимаю. А само влияние трогать так совсем опасно по моему.