Вход • Регистрация

Резервирование товара

  • 15 июля 2016 г.
  • Здравствуйте, никак не могу понять, как же мне сделать резервирование товара при оформлении заказа? Что бы товар вычитался со склада, когда человек сделает заказ. Это очень нужно)
    • 15 июля 2016 г.
    • Здравствуйте
      Там галочка есть в статусах заказа, вычитать со склада. И "учитывать остатки на складах" тоже надо отметить, конечно.
      Но я не рекомендую минусовать при оформлении, так как товары с 0 количеством купить нельзя. То есть, чтобы обрушить работу Вашего магазина Вашим конкурентам достаточно просто оформить ложный заказ на все товары по 100 штук. Всё. Товары вычтутся со склада, и другие покупатели не смогут ничего купить.
      • 15 июля 2016 г.
      • Я понимаю про конкурентов и прочее, но мне надо. Поставил галочку на статусе "новый", но когда оформляют заказ все ровно вычет со склада не производится
      • 15 июля 2016 г.
      • и еще момент, что бы товар вернулся на склад, мне нужно сделать статус заказа "отменен"? или можно как-то настроить через удаление заказа
  • 15 июля 2016 г.
  • Я поставил эту галочку, но на новые заказы она не работает(
    • 16 июля 2016 г.
    • А на другом статусе работает?
      • 16 июля 2016 г.
      • На другом работает, когда новый заказ кидаю в обработку, то снимается со склада. Когда статусу "новый" делаю действие "оплата". То при оформлении заказа вообще статус не присваивается заказу
      • 16 июля 2016 г.
      • Пробовал разные варианты, либо со склада не снимается, либо просто новому заказу статус не присваивается. Можешь сам через демку попробовать, вчера делал, там тоже самое
        • 16 июля 2016 г.
        • А чего мне пробовать, я точно знаю, как это работает. Что-то не то и не там ставите, значит. Не видя Вашу админку и что Вы там ставите куда сложно что-то однозначное сказать. Пишите в ТП, давайте доступы, пусть смотрят, что не так
          • 16 июля 2016 г.
          • Ну чего ты мне рассказываешь? Почему так негативно сразу, я не идиот, я тоже понимаю, как это должно было бы работать, пройди в демо версию, через диафан и проверь, вот только что сделал, не вычитывает со склада. Как было 10 рюкзаков, так и осталось после оформления заказа. Хоть 100 раз оформляй на эти рюкзаки, заказы будут оформляться. Даже когда стоит галочка на статусах. А именно на статусе "новый"
            • 16 июля 2016 г. , редакция: 16 июля 2016 г.
            • Цитата
              Ferluc Lucievich (devilspharm) 6 минут назад
              Ну чего ты мне рассказываешь? Почему так негативно сразу, я не идиот, я тоже понимаю, как это должно было бы работать, пройди в демо версию, через диафан и проверь, вот только что сделал, не вычитывает со склада. Как было 10 рюкзаков, так и осталось после оформления заказа. Хоть 100 раз оформляй на эти рюкзаки, заказы будут оформляться. Даже когда стоит галочка на статусах. А именно на статусе "новый"

              Идем в демоверсию, далее в админку - раздел "Каталог", затем в настройки модуля "Каталог". Теперь отмечаем пункт "Учитывать остатки товаров на складе". После этого открываем карточку товара, например, Рюкзак «Контур 50» и напротив цен в поле количество ставим, например, 2, после чего сохраняем карточку товара. Теперь идем покупать Рюкзак «Контур 50» в количестве 2-х штук. Оформляем заказ. Теперь в админке, в разделе "Заказы" открываем этот заказ и отмечаем как "Выполнен", сохраняем. Идем обратно покупать Рюкзак «Контур 50» и видим, что его нет в продаже (в админке, в карточке того же товара видим количество 0). Итог: все работает.
              Резюме:
              Цитата
              Программисты постоянно соревнуются со Вселенной: они пытаются создать всё более идиотоустойчивые программы, а Вселенная создаёт всё более совершенных идиотов. Пока что Вселенная побеждает. (Rich Cook)
              • 16 июля 2016 г.
              • Мда... я это и так знал. У меня сабж изначально был другой. Как сделать так, что бы обойтись без этого пункта
                Цитата
                Теперь в админке, в разделе "Заказы" открываем этот заказ и отмечаем как "Выполнен"
                .
                Что бы при оформлении заказа, он автоматом снимал товар со склада! Читай внимательно. Я не хочу каждому заказу присваивать новый статус.

                Еще раз, хочу что бы когда человек нажал кнопку "оформить" 10 рюкзаков, со склада в этот же момент снималось 10 рюкзаков.
              • 16 июля 2016 г.
              • Цитата
                Программисты постоянно соревнуются со Вселенной: они пытаются создать всё более идиотоустойчивые программы, а Вселенная создаёт всё более совершенных идиотов. Пока что Вселенная побеждает. (Rich Cook)

                Цитата вообще не к месту. Глупость мне написал, которая к моему вопросу вообще не относится, еще и дураком назвал.
            • 16 июля 2016 г. , редакция: 16 июля 2016 г.
            • Цитата
              Я не хочу
              Остается или сделать самому, или заказать. Чтобы реализовать это, нужно всего лишь перенести функцию, которая минусует количество, на стадию оформления покупки. Практически копи-паст на пару минут. Так в чем сложность?
            • 16 июля 2016 г. , редакция: 16 июля 2016 г.
            • Цитата
              Что бы при оформлении заказа, он автоматом снимал товар со склада! Читай внимательно. Я не хочу каждому заказу присваивать новый статус.

              Один из вариантов решения:
              Берем cms.diafan 6.0.3.3. Далее редактором открываем файл shop.inc.order.php, находим строчку
              Код
              DB::query("UPDATE {shop_price} SET count_goods=%d WHERE price_id=%d", $count, $row_price["price_id"]);
              и комментируем ее вот так
              Код
              // DB::query("UPDATE {shop_price} SET count_goods=%d WHERE price_id=%d", $count, $row_price["price_id"]);
              Теперь находим вот эту строчку
              Код
              DB::query("UPDATE {shop_price} SET count_goods=%d WHERE price_id=%d", $row_price['count_goods'] + $row["count_goods"], $row_price["price_id"]);
              и комментируем ее вот так
              Код
              // DB::query("UPDATE {shop_price} SET count_goods=%d WHERE price_id=%d", $row_price['count_goods'] + $row["count_goods"], $row_price["price_id"]);
              Далее открываем файл cart.action.php редактором и находим вот эту функцию
              Код
              public function order()
              {
              ...
              }
              И в самом ее конеце дополняем следующим
              Код
              if($this->diafan->configmodules("use_count_goods", "shop"))
              {
              $rows = DB::query_fetch_all("SELECT * FROM {shop_order_goods} WHERE order_id=%d", $order_id);
              foreach ($rows as $row)
              {
              if ($row["count_goods"])
              {
              $params = DB::query_fetch_key_value("SELECT * FROM {shop_order_goods_param} WHERE order_goods_id=%d", $row["id"], "param_id", "value");
              $row_price = $this->diafan->_shop->price_get($row["good_id"], $params, false);
              $count = $row_price['count_goods'] > $row["count_goods"] ? $row_price['count_goods'] - $row["count_goods"] : 0;
              // уменьшаем количество товаров на складе
              DB::query("UPDATE {shop_price} SET count_goods=%d WHERE price_id=%d", $count, $row_price["price_id"]);
              }
              }
              }

              Ну что ж, все. Осталось проверить в действие. Ну это уж Вы сами.
              Успехов.
            • 17 июля 2016 г.
            • Корректировку проверил - работает без ошибок. Товар минусуется после оформления заказа пользователем.
              • 17 июля 2016 г.
              • Цитата
                Сочтете меня глупцом, но не получилось, все тоже самое.

                FERLUC LUCIEVICH, напишите уже Виталию в личку доступы, да заплатите рублей, он за минуту настроит всё, и всего делов. Дольше переписываться тут будете. Уже сколько переписываетесь

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум