Ответить Новая тема Новый опрос 
 Доп поле в товаре.
nebosklon
Новичок
Сообщений: 6
Регистрация: 30-07-2014


30-07-2014 15:37
Доброго Вам Всем дня!
У меня преста 1.5.6.2.

Есть такая задача. Надо вывести доп информацию после короткого описания.
Эта инфу подгружаю через csv. либо в поля престы, либо напрямую в БД.

Вопрос. Как можно добавить поле в товар, чтобы его выводить в product.tpl и product-list.tpl

или как можно вывести напрямую из базу из определенной столбца инфу, для данного айди.

Чтобы расширить понимание вопроса. Это инфа это просто текст акции, который задаеться в программе по работе с прайсами. и через выгрузку csv я выгружаю айди, новую цену, статус, и эту инфу по акции. И как ее вывести в продукт тпл или продукт лист тпл я не знаю.
Пробовал через php реализовать. не смог пеердать из smarty в php значение переменной {$product.id_product}. Если кто значет как скажите. Я тогда просто php выведу. хоть это не верно, но решение.

пробовал через единстенное оставшиееся свободное поле ean13, оно защищено параметрами типа данных.

ребят. помогите плиз.



 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


30-07-2014 16:03
Если поля "available_now" или "available_later" не используются выводите через них.
Заполнить данные поля можно при импорте или через вкладку Товар > Редактировать > Количество

В шаблоне product.tpl используйте:
Код:
{$product->available_now}    

и
Код:
{$product->available_later}


в product-list.tpl используйте:
Код:
{$product.available_now}

и
Код:
{$product.available_later}


Если данные поля заняты или необходимо использовать отдельные - напишите распишу подробно необходимые действия.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
nebosklon
Новичок
Сообщений: 6
Регистрация: 30-07-2014


30-07-2014 17:12
Огромное спасибо, Алекс за оперативный и четкий ответ. Я попробую так, как вы сказали сделать.

Но я думаю многие пользователи, были бы очень благодарны Вам, если Вы все таки расписали, как добавлять новые поля и потом их выводить. Пошагово для слабых юзеров. :drinks:

Да и признаться отельные поле это правильней под такие задачи. потому, что юзать функционал престы под другие задачи, переделывая поля, не совсем верно. Потому, что рано или позно функция может понадобиться и тогда придеться переписывать все заново.


Сообщение отредактировано nebosklon 30-07-2014 12:17 ...
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
nebosklon
Новичок
Сообщений: 6
Регистрация: 30-07-2014


30-07-2014 17:22
Сделал как вы сказали. Все просто. работает. Огромное спасибо. Но все же с отдельные полями, найдите, пожалуйста время и распишите.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


31-07-2014 10:46
1. Добавляем новый столбец в таблицу _product_lang (например "test" )
Код:
ALTER TABLE `_product_lang`ADD COLUMN `test` VARCHAR(255) NULL DEFAULT NULL


2. Открываем /classes/Product.php и после:
Код:
public $minimal_quantity = 1;

добавляем:
Код:
public $test;

после:
Код:
'description_short' => array('type' => self::TYPE_HTML, 'lang' => true, 'validate' => 'isCleanHtml'),

добавляем:
Код:
'test' =>     array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'size' => 255),


3. В шаблоне product.tpl выводим через:
Код:
{$product->test}

В шаблоне product-list.tpl выводим через:
Код:
{$product.test}
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
nebosklon
Новичок
Сообщений: 6
Регистрация: 30-07-2014


04-08-2014 19:14
Огромное тебе спасибо, Алекс. Очень четко и по делу. Редко таких встретишь на форумах. В основном муть.

Создал поле по твоему примеру и все получилось. А с теми полями, то ты назвал раньше, получился конфликт с атрибутами. Не переключались они. Поэтому создал новое поле и все отлично пашет!
Еще раз спасибо.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
nebosklon
Новичок
Сообщений: 6
Регистрация: 30-07-2014


21-01-2015 01:32
Алекс, если можешь помоги еще понять, что не так... вот одно поле добавил. решил добавить еще одно. сделал все как и в первый раз, только поле название другое само собой.

И нефига не выводит.... при этом скачал сайт на локальную машину на денвер поставил.
и все показывает. Где-то видимо ошибка с правами доступа.... я уже все перерыл...
Может есть мысли? кеш чистил... даже папку cache удалял. и фиг там что... в режиме отладки тоже не выводит... по идее не кем. в плюс к тому, что не кеш тот факт, что первое поле убрал и оно перестало выводить. добавил и снова выводит. а второе не получается.
Помоги плиз, если есть мысли...
Спасибо.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
K0rv1n
Cпециалист
Сообщений: 166
Регистрация: 05-07-2011


26-01-2015 20:02
Подскажите, а как добавить товары в которых присутствует данное поле в фильтр многоуровневой навигации? Фильтровать по одинаковым отметкам. Например по аналогичным названиям в поле. Спасибо!
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
K0rv1n
Cпециалист
Сообщений: 166
Регистрация: 05-07-2011


26-01-2015 20:59
И скажите, пожалуйста, как сделать, чтобы поле отображалось в админке.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Riva
Новичок
Сообщений: 72
Регистрация: 03-06-2012


21-06-2015 18:43
дабы не плодить темы, напишу тут. У меня Prestashop 1.6, сделал всё по инструкции, кроме того ещё добавил

в /override/classes/Product.php

Цитата:

<?php
Class Product extends ProductCore
{
public $warranty;

public function __construct($id_product = null, $full = false, $id_lang = null, $id_shop = null, Context $context = null)
{
self::$definition['fields']['warranty'] = array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'size' => 255);
parent::__construct($id_product, $full, $id_lang, $id_shop, $context);
}
}


в /override/controllers/admin/AdminProductsController.php

Цитата:

<?php

class AdminProductsController extends AdminProductsControllerCore
{

protected function copyFromPost(&$object, $table)
{
parent::copyFromPost($object, $table);
if (get_class($object) != 'Product')
return;

$object->warranty = (int)Tools::getValue('warranty');
}
}


в /admin/themes/default/template/controllers/products/informations.tpl

Цитата:

<div class="form-group">
<label class="control-label col-lg-3" for="warranty">
<span class="label-tooltip" data-toggle="tooltip" title="{l s='Warranty'}">
{l s='Warranty'}
</span>
</label>
<div class="col-lg-5">
<input type="text" id="warranty" name="warranty" value="{$product->warranty|escape:html:'UTF-8'}" />
</div>
</div>


В результате, в админке на странице списка товаров всё отлично отображается https://yadi.sk/i/ziCkW6OWhNrHD

А на странице самого товара выовдится пустое поле https://yadi.sk/i/xFACCic0hNrJ6

Как исправить на странице товара? Чтоб поле брало данные с базы.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос