mart Posted August 23, 2013 Report Share Posted August 23, 2013 Копать надо API Products.php - а именно где идет обработчик $filter['sort'] == 'sklad' - там вторым данным добавить price ASC/DESC. Получится что-то типа if(!empty($filter['sort'])) switch ($filter['sort']) { case 'position': $order = 'p.position DESC'; break; case 'name': $order = 'p.name'; break; case 'created': $order = 'p.created DESC'; break; case 'price': //$order = 'pv.price IS NULL, pv.price=0, pv.price'; $order = '(SELECT pv.price FROM __variants pv WHERE (pv.stock IS NULL OR pv.stock>0) AND p.id = pv.product_id AND pv.position=(SELECT MIN(position) FROM __variants WHERE (stock>0 OR stock IS NULL) AND product_id=p.id LIMIT 1) LIMIT 1)'; break; case 'sklad': $order = '(SELECT pv.price FROM __variants pv WHERE (pv.stock IS NULL OR pv.stock>0) AND p.id = pv.product_id AND pv.position=(SELECT MIN(position) FROM __variants WHERE (stock>0 OR stock IS NULL) AND product_id=p.id LIMIT 1) LIMIT 1), p.sklad DESC'; break; } Quote Link to post Share on other sites
Danya Posted August 23, 2013 Report Share Posted August 23, 2013 Это если сортировать с помощью фильтра в шаблоне. У меня сейчас автоматом сортируется по цене от меньшей до высокой цены. Изменял файлик view/ProductsView.php - $filter['sort'] = 'price'; Если автоматически сортируется товар с положительным наличием с суммой от меньшей до высокой, а потом идут отсутствующие на складе с суммой от меньшей до высокой. Так возможно сделать? Quote Link to post Share on other sites
mart Posted August 23, 2013 Report Share Posted August 23, 2013 Тогда наоборот - сначала p.sklad DESC а потом сорт по цене. В MySQL есть приоритеты для позиций сортировки. Quote Link to post Share on other sites
Danya Posted August 23, 2013 Report Share Posted August 23, 2013 Спасибо Март! в файле api/Products.php добавить: case 'sklad': $order = 'p.sklad DESC, pv.price IS NULL, pv.price=0, pv.price'; break; в файле design/ваша тема/products.tpl добавить: <a {if $sort=='sklad'} class="selected"{/if} href="{url sort=sklad}">по складу</a> Quote Link to post Share on other sites
Jekas Posted October 11, 2013 Report Share Posted October 11, 2013 Целесообразнее делать не с товаром, а с вариантами товара, у себя так реализовал, так как у товара могут быть различные варианты :-) Quote Link to post Share on other sites
connectos Posted November 22, 2013 Report Share Posted November 22, 2013 Товарищи, а как сюда добавить еще варианты, к уже существующим есть на складе и нет на складе - Предзаказ (для новинок или редко поступаемых товаров), Под заказ (для товаров, которые есть только у поставщика на складе), Ожидается поступление на склад (тут и так понятно) ну и т.д. Quote Link to post Share on other sites
heyfor Posted December 11, 2013 Report Share Posted December 11, 2013 Целесообразнее делать не с товаром, а с вариантами товара, у себя так реализовал, так как у товара могут быть различные варианты :-)Мил человек, подскажи, как? Quote Link to post Share on other sites
SELECONICS Posted December 14, 2013 Report Share Posted December 14, 2013 странно, все вроде установил, но пока эффекта не видно в принципе, иконка Склад есть, а при нажатии на нее эффекта ноль, что вообще должно быть при установке данной доработки? Quote Link to post Share on other sites
GlaZZZ Posted January 26, 2014 Report Share Posted January 26, 2014 У меня работает, правда пришлось немного повозиться. Кода вывода в витрину я не увидел правильного(показывалось только значение с БД, т.е "1 или 0"), пришлось самому копать И в админке чуток подправил. Теперь сижу все товары выделяю и нажимаю есть на складе ) Quote Link to post Share on other sites
Dimon789 Posted January 27, 2014 Report Share Posted January 27, 2014 вот тутМил человек, подскажи, как? Quote Link to post Share on other sites
simpler Posted January 31, 2014 Report Share Posted January 31, 2014 вот тутничего из ссылки не понял. как это работает? если я хочу чтобы отображалось "на заказ" мне нужно в кол-ве 49 вводить? Объясните алгоритм работы Quote Link to post Share on other sites
Dimon789 Posted February 1, 2014 Report Share Posted February 1, 2014 ничего из ссылки не понял. как это работает? если я хочу чтобы отображалось "на заказ" мне нужно в кол-ве 49 вводить? Объясните алгоритм работы 1. Выставить максимальное кол-во товаров в настройках,2. в шаблоне товара, рядом с вариантами, вставить вот этот код, {$v->stock} шт {if $v->stock>49}на складе{else}в магазине{/if} 3. число 49 - это максимальное кол-во минус 1, для выполнения условия,4. в административной части следить за тем, чтобы у вариантов была бесконечность, бесконечность является значением "на складе". Quote Link to post Share on other sites
sergei5770 Posted April 9, 2014 Report Share Posted April 9, 2014 Есть у кого нибудь пример того, как это работает и что вообще из себя представляет? Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.