В блоках 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 день".