sergei5770 Опубликовано 28 июня, 2014 Жалоба Поделиться Опубликовано 28 июня, 2014 Всем привет!Как можно реализовать вывод цены, даже если товара нет в наличии?Уверен что вопрос решается парой строчек, не подскажете куда копать? Цитата Ссылка на сообщение Поделиться на другие сайты
sergei5770 Опубликовано 28 июня, 2014 Автор Жалоба Поделиться Опубликовано 28 июня, 2014 и вообще не понятно, почему в движке сделана вот такая вот ерунда, что цена исчезает при отсутствующем товаре, это очень глупый ход со стороны разработчиков Цитата Ссылка на сообщение Поделиться на другие сайты
mart Опубликовано 29 июня, 2014 Жалоба Поделиться Опубликовано 29 июня, 2014 Всем привет!Как можно реализовать вывод цены, даже если товара нет в наличии?Уверен что вопрос решается парой строчек, не подскажете куда копать?Напишите в личку или скайп. Цитата Ссылка на сообщение Поделиться на другие сайты
mart Опубликовано 29 июня, 2014 Жалоба Поделиться Опубликовано 29 июня, 2014 Убрать ограничение на вывод отсутствующих товаров можно убрав фильтр 'in_stock'=>true из выборки вариантов. Это одинаковая операция во всех ниэжеприведенных файлах (предвкушая ехидство со стороны Корса - я считаю, что это 1 строка кода)view/ProductsView.php строка 163 $variants = $this->variants->get_variants(array('product_id'=>$products_ids, 'in_stock'=>true));на $variants = $this->variants->get_variants(array('product_id'=>$products_ids));view/ProductView.php строка 36 foreach($this->variants->get_variants(array('product_id'=>$product->id, 'in_stock'=>true)) as $v)на foreach($this->variants->get_variants(array('product_id'=>$product->id)) as $v)view/View.php строки 187, 233, 278 $variants = $this->variants->get_variants(array('product_id'=>$products_ids, 'in_stock'=>true));на $variants = $this->variants->get_variants(array('product_id'=>$products_ids));Теперь у нас в товарах выводятся отсутствующие варианты, но они активны для заказа, хотя их положить туда нельзя, т.к. нулевой остаток. Поэтому в шаблонах напишем вторую строчку кода (это для счетчика Корса) - сделаем вместо <input id="product_{$v->id}" name="variant" value="{$v->id}" type="radio" class="variant_radiobutton" {if $product->variant->id==$v->id}checked{/if} {if $product->variants|count<2}style="display:none;"{/if}/>заменим на что-то типа {if $v->stock}<input id="product_{$v->id}" name="variant" value="{$v->id}" type="radio" class="variant_radiobutton" {if $product->variant->id==$v->id}checked{/if} {if $product->variants|count<2}style="display:none;"{/if}/>{/if}Конечно в каждом шаблоне есть свои особенности, но тут важно проверить $v->stock и не дать клиенту сделать заявку на товар, у которого $v->stock меньше 1. Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 29 июня, 2014 Жалоба Поделиться Опубликовано 29 июня, 2014 Корс, чего ты прикопался с шаблону? Ты хочешь сказать, что твой уникальный код работает и с радиокнопками и с селектом? Цитата Ссылка на сообщение Поделиться на другие сайты
mart Опубликовано 20 июля, 2014 Жалоба Поделиться Опубликовано 20 июля, 2014 А кто автор и что за способ? Если про мой пример, то при нуле выведите сообщение об отсутствии и все. Цитата Ссылка на сообщение Поделиться на другие сайты
Djep Опубликовано 20 июля, 2014 Жалоба Поделиться Опубликовано 20 июля, 2014 Убрать ограничение на вывод отсутствующих товаров можно убрав фильтр 'in_stock'=>true из выборки вариантов. Это одинаковая операция во всех ниэжеприведенных файлах (предвкушая ехидство со стороны Корса - я считаю, что это 1 строка кода)view/ProductsView.php строка 163 $variants = $this->variants->get_variants(array('product_id'=>$products_ids, 'in_stock'=>true));на $variants = $this->variants->get_variants(array('product_id'=>$products_ids));view/ProductView.php строка 36 foreach($this->variants->get_variants(array('product_id'=>$product->id, 'in_stock'=>true)) as $v)на foreach($this->variants->get_variants(array('product_id'=>$product->id)) as $v)view/View.php строки 187, 233, 278 $variants = $this->variants->get_variants(array('product_id'=>$products_ids, 'in_stock'=>true));на $variants = $this->variants->get_variants(array('product_id'=>$products_ids));Теперь у нас в товарах выводятся отсутствующие варианты, но они активны для заказа, хотя их положить туда нельзя, т.к. нулевой остаток. Поэтому в шаблонах напишем вторую строчку кода (это для счетчика Корса) - сделаем вместо <input id="product_{$v->id}" name="variant" value="{$v->id}" type="radio" class="variant_radiobutton" {if $product->variant->id==$v->id}checked{/if} {if $product->variants|count<2}style="display:none;"{/if}/>заменим на что-то типа {if $v->stock}<input id="product_{$v->id}" name="variant" value="{$v->id}" type="radio" class="variant_radiobutton" {if $product->variant->id==$v->id}checked{/if} {if $product->variants|count<2}style="display:none;"{/if}/>{/if}Конечно в каждом шаблоне есть свои особенности, но тут важно проверить $v->stock и не дать клиенту сделать заявку на товар, у которого $v->stock меньше 1.Все отлично работает. Даже если шаблон не дефолтный. Сделал так. {if $product->variant->price >0}<input type="submit" class="but_add to_cart" value="" data-result-text=""/>{/if} </form> {else} <div class="price"><i style='margin:0;' title='Нет на складе'><br />Нет в наличии</i></div> {/if} обернуть в {if $v->stock}.........{/if}, и получаем {if $v->stock}{if $product->variant->price >0}<input type="submit" class="but_add to_cart" value="" data-result-text=""/>{/if} </form> {else} <div class="price"><i style='margin:0;' title='Нет на складе'><br />Нет в наличии</i></div>{/if} {/if} В итоге, если товар отсутствует, выводится цена и надпись "Нет в наличии" Цитата Ссылка на сообщение Поделиться на другие сайты
Djep Опубликовано 20 июля, 2014 Жалоба Поделиться Опубликовано 20 июля, 2014 Полное Цитата Ссылка на сообщение Поделиться на другие сайты
Djep Опубликовано 20 июля, 2014 Жалоба Поделиться Опубликовано 20 июля, 2014 Интересно, пробовал кто-то предложенный здесь способ? Получается? Автор способа на мои вопросы-замечания не реагирует.ТС о результатах применения ничего не сообщает...Предложенный здесь способ проверял. Получается.Djep, В Вашем последнем небольшом посте легко увидеть массу ошибок.1. Вы пишете, что "Полное решение в посте #5". И тут же зачем-то добавляете какой-то код. Для чего это нужно, если полное решение уже дано ранее? Возможно, имеете в виду, что полное решение - это пост #5 плюс написанная Вами добавка.2. Теперь перейдем к обсуждению существа Вашего предложения. С ходу видно полное безобразие: при предлагаемом изменении тег </form> иногда выводится на странице, иногда нет. Легко придумать ситуацию, когда он выводиться не будет. Поскольку на странице может быть несколько подобных форм, то ошибка в формировании одних форм может приводить к ошибкам в работе и других форм, в том числе и правильно сформированных...3. В Вашем условии используется {if $v->stock}. В данном контексте $v означает последний вариант товара. Следовательно, это далеко не то условие, по которому надо определять, отсутствует товар в наличии или нет. Опять-таки несложно придумать ситуацию, когда проявится грубая ошибка.4. Судя по вышеизложенному, Вы писали свое предложение на ходу, небрежно, и совсем не проверяли даже простейшие ситуации. Не самый лучший стиль работы для программиста...то есть способ работает...... Цитата Ссылка на сообщение Поделиться на другие сайты
Maksclub Опубликовано 4 сентября, 2014 Жалоба Поделиться Опубликовано 4 сентября, 2014 Предложенный здесь способ проверял. Получается.то есть способ работает...... Подскажите как сие продублировать в админке? Цитата Ссылка на сообщение Поделиться на другие сайты
Booster Опубликовано 26 сентября, 2014 Жалоба Поделиться Опубликовано 26 сентября, 2014 Теперь у нас в товарах выводятся отсутствующие варианты, но они активны для заказа, хотя их положить туда нельзя, т.к. нулевой остаток. Как сделать чтоб при нулевом остатке всетаки можно было добавить в корзину? Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 27 сентября, 2014 Жалоба Поделиться Опубликовано 27 сентября, 2014 Как сделать чтоб при нулевом остатке всетаки можно было добавить в корзину?В api/Cart.php убрать ограничение // Не дадим больше чем на складе $amount = min($amount, $variant->stock); Но потом надо и на странице корзины доработать... Цитата Ссылка на сообщение Поделиться на другие сайты
Booster Опубликовано 27 сентября, 2014 Жалоба Поделиться Опубликовано 27 сентября, 2014 Это уже предзаказ товаров.Не думаю что данная доработка стоит 700 руб, при условии что практически все сделано. Спасибо. В api/Cart.php убрать ограничение // Не дадим больше чем на складе $amount = min($amount, $variant->stock); Но потом надо и на странице корзины доработать...Большое спасибо! Все получилось! Цитата Ссылка на сообщение Поделиться на другие сайты
Spax Опубликовано 30 сентября, 2014 Жалоба Поделиться Опубликовано 30 сентября, 2014 в каком файле вот это искать? Не могу не как найти. Цитата Ссылка на сообщение Поделиться на другие сайты
Spax Опубликовано 30 сентября, 2014 Жалоба Поделиться Опубликовано 30 сентября, 2014 Я не могу найти в каком файле это изменять? Все отлично работает. Даже если шаблон не дефолтный. Сделал так. {if $product->variant->price >0}<input type="submit" class="but_add to_cart" value="" data-result-text=""/>{/if} </form> {else} <div class="price"><i style='margin:0;' title='Нет на складе'><br />Нет в наличии</i></div> {/if} обернуть в {if $v->stock}.........{/if}, и получаем {if $v->stock}{if $product->variant->price >0}<input type="submit" class="but_add to_cart" value="" data-result-text=""/>{/if} </form> {else} <div class="price"><i style='margin:0;' title='Нет на складе'><br />Нет в наличии</i></div>{/if} {/if} В итоге, если товар отсутствует, выводится цена и надпись "Нет в наличии" Цитата Ссылка на сообщение Поделиться на другие сайты
Djep Опубликовано 1 октября, 2014 Жалоба Поделиться Опубликовано 1 октября, 2014 Я не могу найти в каком файле это изменять? Цитата Ссылка на сообщение Поделиться на другие сайты
Yu.Ka. Опубликовано 1 октября, 2014 Жалоба Поделиться Опубликовано 1 октября, 2014 В api/Cart.php убрать ограничение // Не дадим больше чем на складе $amount = min($amount, $variant->stock); Но потом надо и на странице корзины доработать...Стесняюсь спросить, что именно на странице корзины доработать? Цитата Ссылка на сообщение Поделиться на другие сайты
Booster Опубликовано 2 октября, 2014 Жалоба Поделиться Опубликовано 2 октября, 2014 Поправить выбор количества. Я сделал ограничение в 9 товаров указав loop=10 Тоесть нужно заменить в шаблоне cart.tpl {section name=amounts start=1 loop=$purchase->variant->stock+1 step=1} на {section name=amounts start=1 loop=10 step=1} Но в корзину можно добавить и более 9 шт, добавив товар со страницы товара, но это мелочи. Цитата Ссылка на сообщение Поделиться на другие сайты
Yu.Ka. Опубликовано 3 октября, 2014 Жалоба Поделиться Опубликовано 3 октября, 2014 Поправить выбор количества. Я сделал ограничение в 9 товаров указав loop=10 Тоесть нужно заменить в шаблоне cart.tpl {section name=amounts start=1 loop=$purchase->variant->stock+1 step=1} на {section name=amounts start=1 loop=10 step=1} Но в корзину можно добавить и более 9 шт, добавив товар со страницы товара, но это мелочи.Сделал немного по другому, но этот вариант то же обязательно попробую. Спасибо. Цитата Ссылка на сообщение Поделиться на другие сайты
tsybart Опубликовано 26 ноября, 2014 Жалоба Поделиться Опубликовано 26 ноября, 2014 нужно дорабатывать, так как заказы сделаные на товары с количеством 0, потом ведут себя не корректно. Когда количество появляется, при переносе из новых в принятые или выполненные количество не отнимается, зато если обратно, добавляется 1 штука.если удалять, добавляется 1 шт. Так же нельзя добавить товар в заказ через админку если количество 0 Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.