Отображение адреса и телефона поставщика в карточке товара

Автор energysx, 14 ноября 2015, 10:53:57

« назад - далее »

energysx

Здравствуйте уважаемые форумчане,

нужно чтоб контактные данные поставщика(адрес и номер телефона) отображались в карточке товара, как можно это сделать? версия престы 1.6.1.2, благодарю за внимание

PrestaMan

В контроллере /controllers/front/ProductController.php определяете данные поставщика товара,
// Наименование постащика
$supplier_name = Supplier::getNameById((int)$this->product->id_supplier);
....

В шаблоне показываете в нужно месте
{$supplier_name}
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!

energysx

Цитата: PrestaMan от 14 ноября 2015, 12:07:52
В контроллере /controllers/front/ProductController.php определяете данные поставщика товара,
// Наименование постащика
$supplier_name = Supplier::getNameById((int)$this->product->id_supplier);
....

В шаблоне показываете в нужно месте
{$supplier_name}

Спасибо за отклик PrestaMan,

я добавил тот код в контроллер, но теперь при попытке входа в карточку товара выдаётся ошибка. Имеет ли значение место расположения этого кода? Я добавил его перед последней фигурной скобкой, закрывающей класс, но всё равно выдало ошибку. И ещё, вы написали $supplier_name , но мне не нужно назваие поставщика, я его уже вывел и логотип тоже, мне нужны контактные данные: адрес и телефон, как иожно их вывезти?

PrestaMan

В контоллер код добаляется в метод initContent()

$id_address = Address::getAddressIdBySupplierId((int)$this->product->id_supplier);
if ($id_address > 0) {
        $address = new Address((int)$id_address);
}

$this->context->smarty->assign(array(
.....
        'supplier_address' => $address,
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!

energysx

Цитата: PrestaMan от 14 ноября 2015, 13:18:21
В контоллер код добаляется в метод initContent()

$id_address = Address::getAddressIdBySupplierId((int)$this->product->id_supplier);
if ($id_address > 0) {
        $address = new Address((int)$id_address);
}

$this->context->smarty->assign(array(
.....
        'supplier_address' => $address,


Заработало!!! Спасибо огромное, выручил :)

energysx

#5
Привет PrestaMan,

опять нужна ваша помощь :)  а как добавить номер телефона поставщика на страницу поставщика(в файл шаблона supplier.tpl) ? Я попробовал добавить  вышеуказанный вами код в SupplierController.php , затем в шаблонной файл вставил этот код
{$supplier_address->phone|escape:'htmlall':'UTF-8'}
, но номер телефона не показывается.

PrestaMan

В контроллере SupplierController.php нужно определять переменную в методах
для страницы поставщика - assignOne(),
для списка поставщиков - assignAll().
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!

energysx

#7
Цитата: PrestaMan от 07 января 2016, 17:39:50
В контроллере SupplierController.php нужно определять переменную в методах
для страницы поставщика - assignOne(),
для списка поставщиков - assignAll().

PrestaMan, спасибо за ответ. Я добавил нижеуказанный код в обе функции assignOne() и assignAll() файла SupplierController.php:

$supplier_name = Supplier::getNameById((int)$this->product->id_supplier);
$id_address = Address::getAddressIdBySupplierId((int)$this->product->id_supplier);
if ($id_address > 0) {
$address = new Address((int)$id_address);
}
$this->context->smarty->assign(
                array(
........
'supplier_address' => $address,
........
}

Затем я добавил переменные {$supplier_name} и {$supplier_address->phone|escape:'htmlall':'UTF-8'} в оба шаблонных файла  supplier.tpl и supplier-list.tpl , но значения не показываются ни на той странице ни на этой.


PrestaMan

Если используете переменную
$this->product->id_supplier
то ее нужно сначало инициализировать в контроллере SupplierController.php, только зачем вы это делаете через товар? У вас же уже известно ид поставщика в этом контроллере.
$supplier_name = Supplier::getNameById($this->supplier->id);
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!

PrestaMan

В SupplierController.php вообще проще все делается, вот так имя можно узнать
$this->context->smarty->assign(
                array(
                          'supplier_name' =>  $this->supplier->name
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!

energysx

Цитата: PrestaMan от 08 января 2016, 13:28:38
В SupplierController.php вообще проще все делается, вот так имя можно узнать
$this->context->smarty->assign(
                array(
                          'supplier_name' =>  $this->supplier->name


PrestaMan, имя поставщика теперь показывается, а адрес и телефон нет, как их добавить в контроллер и шаблон?

PrestaMan

Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!

energysx

Цитата: PrestaMan от 08 января 2016, 13:41:11
Я же написал, нужно заменить
$this->product->id_supplier
на
$this->supplier->id

PrestaMan, но в контроллере нет этого кода $this->product->id_supplier   ?!

mAgency

Цитата: energysx от 07 января 2016, 22:21:59
PrestaMan, спасибо за ответ. Я добавил нижеуказанный код в обе функции assignOne() и assignAll() файла SupplierController.php:

$supplier_name = Supplier::getNameById((int)$this->product->id_supplier);
$id_address = Address::getAddressIdBySupplierId((int)$this->product->id_supplier);
if ($id_address > 0) {
$address = new Address((int)$id_address);
}
$this->context->smarty->assign(
                array(
........
'supplier_address' => $address,
........
}

Затем я добавил переменные {$supplier_name} и {$supplier_address->phone|escape:'htmlall':'UTF-8'} в оба шаблонных файла  supplier.tpl и supplier-list.tpl , но значения не показываются ни на той странице ни на этой.

Вы же его добавли?
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.

energysx

mAgency, ааа да, теперь я понял :) всё заработало, спасибо вам  PrestaMan и mAgency!