Под заказ
#1
Отправлено 27 July 2011 - 09:23 AM
#2
Отправлено 27 July 2011 - 02:27 PM
#3
Отправлено 27 July 2011 - 03:03 PM
или можно вообще написать < 0
#4
Отправлено 27 July 2011 - 05:08 PM
#5
Отправлено 27 July 2011 - 05:24 PM
а если по первому пункту, то отключить в настройках "Не показывать товары которых нет на складе"
#6
Отправлено 28 July 2011 - 11:16 AM
---------- Сообщение объединено ----------
Может есть какие то константы в функциях которые за это отвечают или в базе?
#7
Отправлено 28 July 2011 - 12:09 PM
я пробовал, у меня отображается кнопка.
#8
Отправлено 28 July 2011 - 12:23 PM
#9
Отправлено 28 July 2011 - 12:47 PM
$smarty.const.CONF_CHECKSTOCK==0поставь
#10
Отправлено 28 July 2011 - 02:39 PM
---------- Сообщение объединено ----------
Решил проблему
Dbus, спасибо за помощь...за форму поставил и все стало отображаться странно конечно но работает)))
#11
Отправлено 28 July 2011 - 02:59 PM
#12
Отправлено 28 July 2011 - 03:29 PM
#13
Отправлено 26 September 2011 - 06:45 PM
#14
Отправлено 28 January 2012 - 01:01 PM
#15
Отправлено 28 January 2012 - 02:21 PM
#16
Отправлено 28 January 2012 - 09:21 PM
тоже долго мучался , и получается что в поле in_stock не может быть отрицательное число. в момент списания товара . поэтому в корзину не добавляется.
а решение нашел?
#17
Отправлено 28 January 2012 - 10:19 PM
#18
Отправлено 05 February 2012 - 03:49 PM
выложишь решение для народа?Решил проблему
#19
Отправлено 19 February 2012 - 02:46 PM
product_brief.tpl.html
product_detailed.tpl.html
Делал, как там было написано, но не особо заморачиваясь и не вдумываясь - результат, что называется, был немного предсказуем - не работало Отложил на время эту заморочку. На днях вот вернулся к ней, искал-искал - не нашел уже ту ветку с решением, но саму суть помнил. Полез в указанные файлы (для начала в локальной копии магазина под Денвером, заранее рабочие копии файлов забэкапил, есессна). Посмотрел пристально, понял что к чему, подправил: все стало как хотелось.
На всякий случай выкладываю свое решение - может, кому окажется полезно (версия скрипта ShopCMS 3.1.2 Vip, я юзаю шаблон Rapala - в других шаблонах, я уж не знаю, могут ли быть отличия в коде за счет другой верстки и хз еще по какой причине).
Итак:
product_brief.tpl.html
Ищем строку
{if $smarty.const.CONF_CHECKSTOCK == '1'}{$smarty.const.IN_STOCK}: <b>{if $product_info.in_stock > 0}<span class="oki">{if $smarty.const.CONF_EXACT_PRODUCT_BALANCE == '1'}{$product_info.in_stock}{else}{$smarty.const.ANSWER_YES}{/if}</span>{else}<span class="error">{if $product_info.in_stock < 0}{$smarty.const.STOCK_TRAIN_GO}{else}{$smarty.const.ANSWER_NO}{/if}</span>{/if}</b>Закомментируем ее:
{* {if $smarty.const.CONF_CHECKSTOCK == '1'}{$smarty.const.IN_STOCK}: {if $product_info.in_stock > 0}{if $smarty.const.CONF_EXACT_PRODUCT_BALANCE == '1'}{$product_info.in_stock}{else}{$smarty.const.ANSWER_YES}{/if}{else}{if $product_info.in_stock < 0}{$smarty.const.STOCK_TRAIN_GO}{else}{$smarty.const.ANSWER_NO}{/if}{/if}
*}
И вставим сразу за ней ее же, но слегка модифицированную:
{if $smarty.const.CONF_CHECKSTOCK == '1'}{$smarty.const.IN_STOCK}: <b>{if $product_info.in_stock > 0}<span class="oki">{if $smarty.const.CONF_EXACT_PRODUCT_BALANCE == '1'}{$product_info.in_stock}{else}{$smarty.const.ANSWER_YES}{/if}</span>{else}<span class="error">{if $product_info.in_stock < 0}{$smarty.const.STOCK_TRAIN_GO}{else}{$smarty.const.STOCK_TRAIN_GO}{/if}</span>{/if}</b>
Это у нас, невзирая на нулевое или отрицательное значение остатка товара, будет выводиться надпись "Под заказ" ({$smarty.const.STOCK_TRAIN_GO}).
И далее в этом же файле:
Следующие строки
{if $smarty.const.CONF_SHOW_ADD2CART eq 1 && ( $smarty.const.CONF_CHECKSTOCK==0 || $product_info.in_stock > 0 ) }
аналогично комментируем {* *} и после вставляем их моды:
{if $smarty.const.CONF_SHOW_ADD2CART eq 1}
-------------------
{if $smarty.const.CONF_SHOW_ADD2CART eq 1 && ( $smarty.const.CONF_CHECKSTOCK==0 || $product_info.in_stock > 0 ) }
{if $smarty.const.CONF_SHOW_ADD2CART eq 1}
-------------------
{if $smarty.const.CONF_SHOW_ADD2CART eq 1 && ( $smarty.const.CONF_CHECKSTOCK==0 || $product_info.in_stock > 0 ) }
{if $smarty.const.CONF_SHOW_ADD2CART eq 1}
-------------------
-------------------
product_detailed.tpl.html
{if $smarty.const.CONF_SHOW_ADD2CART eq 1 && ( $smarty.const.CONF_CHECKSTOCK==0 || $product_info.in_stock > 0 ) }
{if $smarty.const.CONF_SHOW_ADD2CART eq 1}
-------------------
{if $smarty.const.CONF_SHOW_ADD2CART eq 1 && ( $smarty.const.CONF_CHECKSTOCK==0 || $product_info.in_stock > 0 ) }
{if $smarty.const.CONF_SHOW_ADD2CART eq 1}
-------------------
{if $smarty.const.CONF_SHOW_ADD2CART eq 1 && ( $smarty.const.CONF_CHECKSTOCK==0 || $product_info.in_stock > 0 ) }
{if $smarty.const.CONF_SHOW_ADD2CART eq 1}
Это мы включаем кнопку "Добавить в корзину", несмотря на нулевое или отрицательное количество товара на складе.
Не забываем после модификации шаблонов очистить кэш - локально или на сервере, где Вы будете испытывать изменения.
-------------------
-------------------
Конечно, я не кодер, и решение, вероятно, получилось довольно корявым, но уж как смог
Эта часть работает. Но, несмотря на наличие кнопки "Добавить в корзину", товар с отрицательным или нулевым количеством в корзину не добавляется: думал - где-то еще, по-видимому, проверяется наличие товара на складе перед тем, как собственно добавлять его в корзину по включенной кнопке. Вот это я пока найти не смог - а оно вон как оказывается:
тоже долго мучался , и получается что в поле in_stock не может быть отрицательное число. в момент списания товара . поэтому в корзину не добавляется.
Как бы и где это пофиксить, чтобы скрипт не сопротивлялся при добавлении в корзину товара с остатком <=0. Оно, конечно, понятно, что при включенном учете остатков каждый заказ должен отнимать от существующего остатка кол-во, указанное в заказе, и это как бы защита от отрицательных остатков. Но если уж все равно скрипт изначально допускает существование отрицательных остатков, объясняя это явление как "под заказ", то какая уже разница, почему бы и нет
Правда, тут товарищ на форуме shopcms решил вопрос по-другому
Форум ShopCMS • Просмотр темы - Добавление в корзину товара отсутствующего на складе.
Правда, на мой взгляд не очень удобно: получается, сперва нужно прописать положительные остатки товаров в базе, потом отключить учет остатков, а пользователям будет вместо надписей Есть или Нет или Под заказ, показываться занесенный когда-то остаток товара (который при этом еще и не меняется). Выходит, если нужно сделать товар "Под заказ", нужно опять включать учет остатков в настройках, менять кол-во в нужном товаре на, скажем, 0, а потом опять выключать. Или при выключенном учете, но так же занесенных заранее остатках прописывать в шаблоне, чтобы при отрицательном или нулевом остатке пользователю показывалась строка "под заказ". Это, в принципе, тоже вариант, но опять же, хотелось бы, все-таки использовать учет товара, а не извращаться с переключениями.
Так как же все-таки разрешить при включенном учете остатков разрешить добавление в корзину товары с кол-вом <0 или =0 ?
#20
Отправлено 19 February 2012 - 02:54 PM
Так как же все-таки разрешить при включенном учете остатков разрешить добавление в корзину товары с кол-вом <0 или =0 ?
проблема решена!!! (движок 3.1.2)