Перейти к содержимому


Отображение сообщений об остатках: "в наличии", "под заказ"


  • Вы не можете ответить в тему
Сообщений в теме: 6

#1 SoVA

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 66 сообщений
Репутация: 0
Начинающий
  • ГородКраснодар

Отправлено 13 July 2012 - 10:39 PM

Может, кому окажется полезно, ну а нет - сносите и извиняйте за флуд :)


В блоках product_brief.tpl.html и product_detailed.tpl.html я для того, чтобы позволить заказывать товары, которых нет на остатках, изменил стандартное условие отображения надписей "есть на складе" и "под заказ": если товара на остатке больше 10 - выводится сообщение "есть", иначе - "под заказ". При этом учет остатков в настройках у меня включен, а отображение посетителям реальных остатков - выключено.

		    {if $smarty.const.CONF_CHECKSTOCK == '1'}{$smarty.const.IN_STOCK}: <b>{if $product_info.in_stock > 10}<span class="oki">{if $smarty.const.CONF_EXACT_PRODUCT_BALANCE == '1'}{$smarty.const.ANSWER_YES}{else}{$smarty.const.ANSWER_YES}{/if}</span>{else}<span class="error1">{if $product_info.in_stock <= 10}{$smarty.const.STOCK_TRAIN_GO}{else}{$smarty.const.STOCK_TRAIN_GO}{/if}</span>{/if}</b><br>

Сейчас потребовалось добавить еще один вариант сообщений об остатке: образно говоря, "есть в наличии", "под заказ за 1 день" и "под заказ более 5 дней". То есть, предположим, более 10 штук на остатке - "есть", от 5 до 10 - "заказ за 1 день", менее 5 - "более 5 дней"
Сначала хотел запостить сюда вопрос, как это правильно реализовать. Потом немного погуглил, почитал вот это
http://www.smarty.ne...age.function.if
и накарябал такое изменение в код:

		    {if $smarty.const.CONF_CHECKSTOCK == '1'}{$smarty.const.IN_STOCK}: <b>{if $product_info.in_stock > 10}<span class="oki">{if $smarty.const.CONF_EXACT_PRODUCT_BALANCE == '1'}{$smarty.const.ANSWER_YES}{else}{$smarty.const.ANSWER_YES}{/if}</span>{else}<span class="error1">{if $product_info.in_stock <= 10 and $product_info.in_stock > 5}{$smarty.const.STOCK_TRAIN_GO1}{else}{$smarty.const.STOCK_TRAIN_GO}{/if}</span>{/if}</b><br>

Само собой, в файл russian.php добавил константу STOCK_TRAIN_GO1 со значением "под заказ за 1 день".
  • 0
Make love, not work!

#2 fluor

    Пользователь

  • Пользователи
  • PipPip
  • 12 сообщений
Репутация: 0
Начинающий

Отправлено 21 July 2012 - 02:55 PM

Спасибо! Очень полезная штука. Только подскажите, что и куда прописать, чтобы кнопка в корзину отображалась при любом значении
  • 0

#3 busmark

    Новичок

  • Пользователи
  • Pip
  • 3 сообщений
Репутация: 0
Начинающий

Отправлено 21 July 2012 - 06:12 PM

Полез подправить шаблон и обнаружил, что разработчики уже предусмотрели вывод записи наличия " под заказ " при указании отрицательного остатка товара. Возможно для кого-то (как и для меня) это будет открытием!
  • 0

#4 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 21 July 2012 - 07:26 PM

Полез подправить шаблон и обнаружил, что разработчики уже предусмотрели вывод записи наличия " под заказ " при указании отрицательного остатка товара. Возможно для кого-то (как и для меня) это будет открытием!


да, но толку от этой надписи добавить товар в корзину то не дает.
  • 0

#5 busmark

    Новичок

  • Пользователи
  • Pip
  • 3 сообщений
Репутация: 0
Начинающий

Отправлено 21 July 2012 - 08:14 PM

да, но толку от этой надписи добавить товар в корзину то не дает.


Согласен. Без дальнейшего допиливания толку мало. А дальше, либо изменить условия вывода кнопки "в корзину", либо добавить "заказать" с функционалом корзины без списания остатков.

Но есть и преимущество - не нарушается начальная логика разработчика
  • 0

#6 fluor

    Пользователь

  • Пользователи
  • PipPip
  • 12 сообщений
Репутация: 0
Начинающий

Отправлено 22 July 2012 - 11:10 AM

Попыталась подставить по аналогии 4 значения, где
ANSWER_YES - есть на складе
STOCK_TRAIN_GO - нет нет на складе
STOCK_TRAIN_GO1 - под заказ за 7 дней
STOCK_TRAIN_GO2 - под заказ от 3х недель

Но ничего не работает. В чем может быть причина?

И еще не могу понять где здесь условие вывода кнопки "в корзину" , чтобы задать ее отображение при всех, кроме STOCK_TRAIN_GO - нет на складе

{if $smarty.const.CONF_CHECKSTOCK == '1'}{$smarty.const.IN_STOCK}: <b>{if $product_info.in_stock >= 1}<span class="oki">{if $smarty.const.CONF_EXACT_PRODUCT_BALANCE == '1'}{$smarty.const.ANSWER_YES}{else}{$smarty.const.ANSWER_YES}{/if}</span>{else}<span class="error1">{if $product_info.in_stock = 0 and $product_info.in_stock <= -1 and $product_info.in_stock <= -10}{$smarty.const.STOCK_TRAIN_GO}{else}{$smarty.const.STOCK_TRAIN_GO1}{else}{$smarty.const.STOCK_TRAIN_GO2}{/if}</span>{/if}</b><br>

Сообщение отредактировал fluor: 22 July 2012 - 11:11 AM

  • 0

#7 Dbus

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 1116 сообщений
Репутация: 174
Мастер
  • ГородОдесса

Отправлено 22 July 2012 - 12:28 PM

Проще оперировать с положительными диапазонами кол-ва товаров в наличии, тогда и функционал корзины сохраняется, и вмешательство в код минимально.
  • 0
502 Bad Gateway