Ответить Новая тема Новый опрос 
 Как автоматом скрывать товары с нулевым остатком?
Chistota
Новичок
Сообщений: 9
Откуда: Норильск
Регистрация: 07-08-2014


10-05-2016 21:55
Есть ли с престе автоматическое отлючение товаров как только их остаток станет нулевым и включением как только остаток вновь сал больше нуля?
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
savvato11


Cпециалист
Сообщений: 289
Регистрация: 01-09-2012


10-05-2016 22:08
В модуле синхронизации который Вы приобретали у меня есть соотв. опция. Включите ее, если речь идет о банька -магазине.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Chistota
Новичок
Сообщений: 9
Откуда: Норильск
Регистрация: 07-08-2014


10-05-2016 23:12
Цитата:( savvato11 @ 10-05-2016 23:08 Смотреть сообщение )
В модуле синхронизации который Вы приобретали у меня есть соотв. опция. Включите ее, если речь идет о банька -магазине.

Спасибо, я эту опцию видел но подумал 1с пидётся переделывать, потому и не включал. Завтра попробую, а ваш модуль работает отлично.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


11-05-2016 02:14
Цитата:( Chistota @ 10-05-2016 22:55 Смотреть сообщение )
автоматическое отлючение товаров как только их остаток станет нулевым и включением как только остаток вновь сал больше нуля?

Файл /classes/stock/StockAvailable.php
после:
Код:
Hook::exec('actionUpdateQuantity',
   array(
    'id_product' => $id_product,
    'id_product_attribute' => $id_product_attribute,
    'quantity' => $stock_available->quantity
   )
  );

добавьте подобный код:
Код:
if(isset($stock_available->quantity))
{
    Db::getInstance()->execute('UPDATE '._DB_PREFIX_.'product p, '._DB_PREFIX_.'product_shop ps SET p.active='. (int)(!!$stock_available->quantity) .', ps.active = '. (int)(!!$stock_available->quantity) .' WHERE p.id_product=' . $id_product .' AND ps.id_product=' . $id_product);
}
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Chistota
Новичок
Сообщений: 9
Откуда: Норильск
Регистрация: 07-08-2014


11-05-2016 09:32
Цитата:( savvato11 @ 10-05-2016 23:08 Смотреть сообщение )
В модуле синхронизации который Вы приобретали у меня есть соотв. опция. Включите ее, если речь идет о банька -магазине.




Цитата:( Chistota @ 11-05-2016 00:12 Смотреть сообщение )
Цитата:( savvato11 @ 10-05-2016 23:08 Смотреть сообщение )
В модуле синхронизации который Вы приобретали у меня есть соотв. опция. Включите ее, если речь идет о банька -магазине.
Спасибо, я эту опцию видел но подумал 1с пидётся переделывать, потому и не включал. Завтра попробую, а ваш модуль работает отлично.

savvato11, спасибо, действительно работает в вашем модуле.
Алекс, вам тоже спасибо за помощь и быстрые ответы. Может ваш вариант кому и пригодится у кого модуля синхронизации нет.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Sergant
Новичок
Сообщений: 3
Откуда: Ростов
Регистрация: 07-07-2016


13-01-2017 16:39
Цитата:( Алекс @ 10-05-2016 22:14 Смотреть сообщение )
Цитата:( Chistota @ 10-05-2016 22:55 Смотреть сообщение )
автоматическое отлючение товаров как только их остаток станет нулевым и включением как только остаток вновь сал больше нуля?
Файл /classes/stock/StockAvailable.php
после:
Код:
Hook::exec('actionUpdateQuantity',
   array(
    'id_product' => $id_product,
    'id_product_attribute' => $id_product_attribute,
    'quantity' => $stock_available->quantity
   )
  );

добавьте подобный код:
Код:
if(isset($stock_available->quantity))
{
    Db::getInstance()->execute('UPDATE '._DB_PREFIX_.'product p, '._DB_PREFIX_.'product_shop ps SET p.active='. (int)(!!$stock_available->quantity) .', ps.active = '. (int)(!!$stock_available->quantity) .' WHERE p.id_product=' . $id_product .' AND ps.id_product=' . $id_product);
}
Попробовал и у меня не пошло...
Если кол-во убираешь в ноль, то статус остается "Вкл."
Подскажите, Алекс, для 1.6.1.4 это подходит?


Сообщение отредактировал Sergant (13-01-2017 12:42)
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Sergant
Новичок
Сообщений: 3
Откуда: Ростов
Регистрация: 07-07-2016


15-01-2017 22:54
Цитата:( Sergant @ 13-01-2017 12:39 Смотреть сообщение )
Цитата:( Алекс @ 10-05-2016 22:14 Смотреть сообщение )
Цитата:( Chistota @ 10-05-2016 22:55 Смотреть сообщение )
автоматическое отлючение товаров как только их остаток станет нулевым и включением как только остаток вновь сал больше нуля?
Файл /classes/stock/StockAvailable.php
после:
Код:
Hook::exec('actionUpdateQuantity',
   array(
    'id_product' => $id_product,
    'id_product_attribute' => $id_product_attribute,
    'quantity' => $stock_available->quantity
   )
  );

добавьте подобный код:
Код:
if(isset($stock_available->quantity))
{
    Db::getInstance()->execute('UPDATE '._DB_PREFIX_.'product p, '._DB_PREFIX_.'product_shop ps SET p.active='. (int)(!!$stock_available->quantity) .', ps.active = '. (int)(!!$stock_available->quantity) .' WHERE p.id_product=' . $id_product .' AND ps.id_product=' . $id_product);
}
Попробовал и у меня не пошло...
Если кол-во убираешь в ноль, то статус остается "Вкл."
Подскажите, Алекс, для 1.6.1.4 это подходит?
Прошу прощения, немного разобрался... В админке это работает (при обновлении количества товара), но как это сделать автоматически при покупке товара? То есть при покупке последнего товара, чтобы статус автоматически менялся на "Выкл" и соответственно не показывался в списке товаров для покупки.


Сообщение отредактировал Sergant (15-01-2017 19:03)
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос