Приветствую коллеги, сегодня я вам расскажу о "забавном" поведении всего перечисленного в заголовке. Итак что мы имеем, обмен товарами с 1с, выгрузка товаров остаток = остаток товаров - резерв, на сайте стоит "Резервирование товаров при оформлении заказа" До последних обновлений все круто работает, и работало бы если бы Битриксу не взбрело в голову добавить в обмен еще один флаг "Заказ отгружен" и только по этому флагу списывать резерв. [spoiler] Флаг этот разумеется в установленном дополнении от Битрикс нет, и когда выпустят новое дополнение с этим флагом никто не знает, цитата из ответов тех. поддержки
я: Модулем обмена (дополнением от Битрикс) данный флаг предусмотрен?
ТП: Нет, в данный момент этот флаг не выгружается
я: И когда ситуация изменится?
ТП: Реализация стоит в плане работ, по срокам не смогу сориентировать, они неизвестны.
Короче все как всегда.
Что мы имеем после обновлений, пример:
например у нас 4 единицы товара, мы оформляем два заказа, имеем на сайте остаток 4, резерв 2 и соответственно 2 еще можно купить, далее шаманство, мы обрабатываем на стороне 1с эти два заказа, по складу 1с остаток 4 резерв 2 на сайт при обмене выгружается остаток 2.
вот она моя прелесть:
у нас на сайте остаток 2, резерв 2 и купить товар нельзя, хотя фактически у нас есть две единицы которые можно продать, пока все логично обработали заказы, их оплатили, заказы имеют статус "Выполнено", вроде все хорошо резерв должен списаться, а вот нет, Битрикс считает иначе, и добавляет новый флаг, "Заказ отгружен", и без этого флага резерв не списывается, а этот супер флаг не выгружается из 1с.
Такие дела коллеги, не наступайте не те же грабли.
PS: Для клиента решил проблему написанием обработчика сбрасывающий резерв после обмена товарами с 1с, других вариантов не нашел.
UPD: Обработчик для сброса резерва товаров Внимание коллеги, данный обработчик рассчитан на небольшое количество товаров в каталоге, если товаров большое количество вы можете доработать обработчик по методуНейман Андрей и разбить его на шаги.
Волошин Юрий, тогда почему на сайте при выключенном резервировании и настроенной интеграции с 1С в истории изменения заказов появляются строки :
26.06.2014 16:40
Резервирование заказа
Отмена резервирования заказа
26.06.2014 16:40
Проблема с заказом
Описание проблемы: Ошибка резервирования. Товар #165737 не найден Товар #172200 не найден Товар #172200 не найден Товар #172200 не найден Товар #1...
Кол.-во товара на сайте уменьшается при оформлении товара. Как я понял "отмену резервирования заказа " делает агент CSaleOrder::ClearProductReservedQuantity(); ? И его надо отключать при отключении резервирования на сайте?
Сибилев Василий, Спустя полгода столкнулся с такой же проблемой как у вас...заглянул в код агента и увидел что он дергает и отменяет все заказы по фильтру: отменен-нет зарезервирован-да оплачен-нет оплачен-нет доставка разрешена-нет
т.е. на статус заказа ему как бы пофигу тут либо отлавливать заказ на OnSaleBeforeReserveOrder и проверять статус заказа или при создании ставить флаг "доставка разрешена"...Ну или удалить агент к чертям
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».