Русская поддержка интернет-магазина PrestaShop
русская поддержка PrestaShop.
Регистрация
Забыли пароль?
Главная
Возможности
Демо
Скачать
Каталог магазинов
Форум
Модули и шаблоны
Администрирование
Реклама и маркетинг
Аналитика и статистика
Оплата и платежные системы
Управление контентом
Экспорт
Фронт-офис
Локализация
Торговые площадки
Управление товарами
Средства миграции
Оформление заказа
Поиск и фильтры
Доставка и логистика
Слайд-шоу
Социальные сети
Модификаторы
Шаблоны PrestaShop
Работа
Главная
Форум
Общие форумы (prestashop v1.6.x)
Общий форум
Способы доставки в карточке товара
Способы доставки в карточке товара
wasia
Новичок
Сообщений: 64
Регистрация: 05-10-2011
# 1
01-10-2015 18:11
Помогите высветить способы доставки с ценой в карточке товара (product.tpl).
Переискал весь интерент, очень мало информации по этому поподу.
Пытался использовать
Код:
$carriers = $this->context->cart->simulateCarriersOutput();
$this->context->smarty->assign(
array('listcarriers' => $carriers));
В product.tpl
Код:
{foreach from=$listcarriers item=carrier name=myLoop}
{if $listcarriers}
<
h2
>{$carrier.name} - {convertPrice price=$carrier.price}<
/h2
>
{/if}
{/foreach}
но список отображается когда товар добавить в корзину. помогите пожалуйста правильно вывести список доступных методов доставки с ценой.
Алекс
Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009
# 2
01-10-2015 19:35
Вывести список перевозчиков - возможно.
Обработать и вывести способы доставки со стоимостью доставки - невозможно!
Расчёт выполняется на основе адреса (зоны) покупателя, а также данных корзины который нет - расчёт невозможен.
Оказываю услуги по администрированию интернет-магазина на CMS PrestaShop, написание модулей для PrestaShop. Большой опыт работы с CMS PrestaShop.
wasia
Новичок
Сообщений: 64
Регистрация: 05-10-2011
# 3
01-10-2015 21:57
У меня доставка зависит не от цены а от веса товара. мне нужен список перевозчиков с расчетом цены где статически устанавливается id_zone и id_country если нужно.
к примеру,
Код:
$shippingCost = $carrier->getDeliveryPriceByWeight($product->weight, 14);
Т.е. хочу сказать что мне не нужно для каждого клиента свои цены доставки в зависимости от адреса, а статически указать список перевозчиков и цен доставки по одной стране в карточке товара, где будут статически уазаны id_zone, id_country. Вот как теперь это реализовать.
Алекс
Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009
# 4
01-10-2015 23:23
Простой способ:
1. В файле
/controllers/front/ProductController.php
добавить подобный код:
Код:
if($this->product->weight)
{
$_car = array();
$carriers = Carrier::getCarriers($this->context->cookie->id_lang, true, false, 4, null);
foreach ($carriers as &$carrier)
{
$_carrier = new Carrier((int)$carrier['id_carrier']);
if($_carrier->shipping_method == Carrier::SHIPPING_METHOD_WEIGHT)
{
if($price = $_carrier->getDeliveryPriceByWeight($this->product->weight, 7))
{
$_car[$_carrier->id]['price'] = $price;
$_car[$_carrier->id]['name'] = $_carrier->name;
}
}
}
if(sizeof($_car))
$this->context->smarty->assign('carriers', $_car);
}
2. В шаблоне
product.tpl
разобрать
{$carriers}
.
Правильно это сделать отдельным модулем и не трогать ядро / контроллеры.
Оказываю услуги по администрированию интернет-магазина на CMS PrestaShop, написание модулей для PrestaShop. Большой опыт работы с CMS PrestaShop.
wasia
Новичок
Сообщений: 64
Регистрация: 05-10-2011
# 5
06-10-2015 02:27
это частично решает мою проблему но к сожалению выводит все доступные способы доставки и даже те которые недоступны по весу.
wasia
Новичок
Сообщений: 64
Регистрация: 05-10-2011
# 6
08-10-2015 21:24
неужели нету решения?
dvs@
Новичок
Сообщений: 1
Регистрация: 15-04-2017
# 7
15-04-2017 16:31
Подскажите по выводу доставки по условию в карточке.
Например:
if вес равен между 0.01 и 0.1 выводить цена доставки 100 рублей
if вес равен между 0.1 и 0.2 выводить цена доставки 200 рублей
и так далее.
Как кодом это прописать в шаблоне?
ruleoffdv
Cпециалист
Сообщений: 209
Регистрация: 05-05-2013
# 8
19-04-2017 09:52
Есть модули которые делают это на аддонсах
По себе скажу лучше делать оплату за доставку при получении ( а в магазине указывать беспал но )
На Главную форума
Найти
FaQ
Панель управления
Кто он-лайн
Общие форумы (prestashop v1.7.x)
-- Общий форум
-- Установка, Настройка, Обновление
-- Модули, плагины
-- Дизайн, шаблоны
-- Песочница
Общие форумы (prestashop v1.6.x)
-- Общий форум
-- Установка, Настройка, Обновление
-- Модули, плагины
-- Дизайн, шаблоны
-- Песочница
Общие форумы (prestashop v1.5.x)
-- Общий форум
Общие форумы (prestashop v1.4.x)
-- Новости и объявления
-- Общий форум
-- Установка, Настройка, Обновление
-- Дизайн, шаблоны
-- Модули, плагины
-- Песочница
-- Прочее
Общие форумы (prestashop v1.3.x)
-- Общий форум
-- Установка, Настройка, Обновление
-- Дизайн, шаблоны
-- Модули, плагины
---- Платные модули и хаки
-- Песочница
Другое
-- Корзина
---- Хостинг
---- Каталог магазинов
---- Общий форум
---- Прием багов