Перейти к содержанию
Официальный форум поддержки Simpla

Рекомендуемые сообщения

Всем привет!

Как можно реализовать вывод цены, даже если товара нет в наличии?

Уверен что вопрос решается парой строчек, не подскажете куда копать?

Ссылка на сообщение
Поделиться на другие сайты

и вообще не понятно, почему в движке сделана вот такая вот ерунда, что цена исчезает при отсутствующем товаре, это очень глупый ход со стороны разработчиков

Ссылка на сообщение
Поделиться на другие сайты

Всем привет!

Как можно реализовать вывод цены, даже если товара нет в наличии?

Уверен что вопрос решается парой строчек, не подскажете куда копать?

Напишите в личку или скайп.

Ссылка на сообщение
Поделиться на другие сайты

Убрать ограничение на вывод отсутствующих товаров можно убрав фильтр '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.

Ссылка на сообщение
Поделиться на другие сайты

Корс, чего ты прикопался с шаблону? Ты хочешь сказать, что твой уникальный код работает и с радиокнопками и с селектом?

Ссылка на сообщение
Поделиться на другие сайты
  • 3 недели спустя...

Убрать ограничение на вывод отсутствующих товаров можно убрав фильтр '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, В Вашем последнем небольшом посте легко увидеть массу ошибок.

1. Вы пишете, что "Полное решение в посте #5". И тут же зачем-то добавляете какой-то код. Для чего это нужно, если полное решение уже дано ранее? Возможно, имеете в виду, что полное решение - это пост #5 плюс написанная Вами добавка.

2. Теперь перейдем к обсуждению существа Вашего предложения. С ходу видно полное безобразие: при предлагаемом изменении тег </form> иногда выводится на странице, иногда нет. Легко придумать ситуацию, когда он выводиться не будет. Поскольку на странице может быть несколько подобных форм, то ошибка в формировании одних форм может приводить к ошибкам в работе и других форм, в том числе и правильно сформированных...

3. В Вашем условии используется {if $v->stock}. В данном контексте $v означает последний вариант товара. Следовательно, это далеко не то условие, по которому надо определять, отсутствует товар в наличии или нет. Опять-таки несложно придумать ситуацию, когда проявится грубая ошибка.

4. Судя по вышеизложенному, Вы писали свое предложение на ходу, небрежно, и совсем не проверяли даже простейшие ситуации. Не самый лучший стиль работы для программиста...

то есть способ работает...... :lol:

Ссылка на сообщение
Поделиться на другие сайты
  • 1 месяц спустя...

Предложенный здесь способ проверял. Получается.

то есть способ работает...... :lol:

 

Подскажите как сие продублировать в админке?

Ссылка на сообщение
Поделиться на другие сайты
  • 4 недели спустя...

 

Теперь у нас в товарах выводятся отсутствующие варианты, но они активны для заказа, хотя их положить туда нельзя, т.к. нулевой остаток. 

 

Как сделать чтоб при нулевом остатке всетаки можно было добавить в корзину?

Ссылка на сообщение
Поделиться на другие сайты

Как сделать чтоб при нулевом остатке всетаки можно было добавить в корзину?

В api/Cart.php убрать ограничение

			// Не дадим больше чем на складе
			$amount = min($amount, $variant->stock);

Но потом надо и на странице корзины доработать...

Ссылка на сообщение
Поделиться на другие сайты

Не думаю что данная доработка стоит 700 руб, при условии что практически все сделано. Спасибо.

 

В api/Cart.php убрать ограничение

			// Не дадим больше чем на складе
			$amount = min($amount, $variant->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 $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}

В итоге, если товар отсутствует, выводится цена и надпись "Нет в наличии" :)

Ссылка на сообщение
Поделиться на другие сайты

В api/Cart.php убрать ограничение

			// Не дадим больше чем на складе
			$amount = min($amount, $variant->stock);

Но потом надо и на странице корзины доработать...

Стесняюсь спросить, что именно на странице корзины доработать?

Ссылка на сообщение
Поделиться на другие сайты

Поправить выбор количества.

 

Я сделал ограничение в 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 шт, добавив товар со страницы товара, но это мелочи.

Ссылка на сообщение
Поделиться на другие сайты

Поправить выбор количества.

 

Я сделал ограничение в 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 шт, добавив товар со страницы товара, но это мелочи.

Сделал немного по другому, но этот вариант то же обязательно попробую. Спасибо.

Ссылка на сообщение
Поделиться на другие сайты
  • 1 месяц спустя...

нужно дорабатывать, так как заказы сделаные на товары с количеством 0, потом ведут себя не корректно. Когда количество появляется, при переносе из новых в принятые или выполненные  количество не отнимается, зато если обратно, добавляется 1 штука.

если удалять, добавляется 1 шт.

 

Так же нельзя добавить товар в заказ через админку если количество 0

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...