Bitrix ошибка проверки доступного количества товара

Столкнулся с проблемами обмена после обновления интернет-магазина БУС с 17 версии на 19-ю и 1С с УТ 10 на УТ 11. Там в общем комбо всех проблем на сайте — компонент импорта каталога был кастомизирован, навешаны обработчики на On(Before|After)(IBlockElement|IBlockSection|Price)(Update|Add), шаблоны и компоненты каталога кастомизированы (еще в 14-15 версии БУС), компонент оформления заказа тоже кастомизирован. В общем никому не пожелаю такого ада — по-возможности избегайте такой работы. Я еще не до конца все проблемы разгреб, но те, что разгреб и еще пока живы в памяти — опишу — может, кому поможет, кто столкнется с чем-то похожим.

1. Не знаю как это работало раньше в прежней версии БУС / УТ 10, но после обновления пришлось поставить галочку в настройках обмена с 1С на сайте «Цены только в инфоблоке торговых предложений» — потому что кастомизированные компоненты и шаблоны каталога не способны были работать с товарами без торговых предложений. В этом случае 1С передает товар без характеристик как товар, а Битрикс делает сам ему торговое предложение.

2. Бизнес-процесс торговли был устроен так:
— на сайте клиент делает заказ
— заказ выгружается в 1С
— в 1С к заказу добавляется доставка с ценой
— заказ выгружается назад на сайт и там в том числе (если выбрана оплата картами) клиент может его оплатить.
И вот выгрузка доставки сломалась — в 1С доставку добавляют — на сайте она не появляется, да еще и существующая удаляется. Несколько дней копания в коде классов обмена с 1С в БУС и я кое-как понял, что оказывается код услуги доставки в 1С должен быть ORDER_DELIVERY. И в xml доставка должна обязательно передаваться следующим образом:
<Ид>ORDER_DELIVERY</Ид> — только так — стандартный обмен битрикс завязан прям на этот код ORDER_DELIVERY — он по нему дополняет документ заказа фиктивной «отгрузкой» и тогда отгрузки из заказа на сайте не удаляются.
И вот это важно:
<ЗначениеРеквизита>
<Наименование>ТипНоменклатуры</Наименование>
<Значение>Услуга</Значение>
</ЗначениеРеквизита>
если тип номенклатуры = услуга, то цену этого «товара» из документа битрикс добавляет в поле «стоимость доставки» заказа на сайте.
Потом гуглом по ключевому слову ORDER_DELIVERY битрикс я нашел уже, что я не первый, кто с этим столкнулся, но пока я это сам не раскопал гугл мне никак не помог. А в техподдержку я обычно не обращаюсь, так как ни разу она мне еще ничем не помогла в таких вопросах.

3. Вроде бы обмен заказами наладился, но я рано обрадовался — оказалось, что не все заказы обновляются из 1С на сайте. А в логах вижу сообщения
Ответ сервера: success
Ошибка проверки доступного количества товара «Товар 1»
Ошибка проверки доступного количества товара «Товар 2»
Причем не по каждому заказу. Прошло некоторое время, пока я наконец понял закономерность — ошибки появляются у тех товаров, у которых только одно торговое предложение. Несколько дней раскопок в коде обмена и я смог лучше локализовать ошибку: При выгрузке товаров из 1С на сайт товары без характеристик, получается, в соответствии с настройками («Загружать торговые предложения (характеристики) в отдельный инфоблок» и «Цены только в инфоблоке торговых предложений»), дублируются в инфоблок торговых предложений как предложение с ценой и доступным количеством, и у них с элементом в инфоблоке «Товаров» прописывается одинаковый «Внешний код». И потом, при обмене заказами, битрикс при проверке доступного количества берет по «внешнему коду» не «торговое предложение», а «товар» и выдает ошибку. Я долго пытался понять где именно он это делает и даже написал в техподдержку, но от техподдержки за несколько дней переписки удалось добиться лишь подтверждения того, что я нашел, но не помощи в решении проблемы — цитирую:

Цитата
Также проверьте, возможно что у вас на сайте и товар и торговые предложение имеют одинаковый внешний код, если это так, то это не корректно, при обмене 1С и сайт, у торговых предложений товара внешний код должен быть вида  через символ # <внешний код товара>#<внешний код предложения> и такой внешний код должен быть у товара в корзине заказа и передаваться из 1С.

Это стандартная логика, при отмеченной опции «Цены только в инфоблоке торговых предложений» у торгового предложения для простого товара будет внешний код основного товара. Для того чтобы изменить такое поведение требуется кастомизация обмена.

В рамках работы службы техподдержки мы можем проконсультировать вас только по стандартному механизму обмена, вопросы по кастомизации существующего функционала вы можете задать на нашем форуме в специализированной ветке https://dev.1c-bitrix.ru/support/forum/, либо обратиться к одному из наших партнеров специализирующихся в данной области https://www.1c-bitrix.ru/partners/

Пока переписывался с поддержкой продолжал копать исходный код. В итоге нашел
Bitrix\Sale\Exchange\Entity\OrderImport::getProduct()
/bitrix/modules/sale/lib/exchange/entity/orderimport.php:398 (

https://bxapi.ru/src/?module_id=sale&name=OrderImport::getProduct

)
Править файлы ядра не хорошо, но в моем случае, боюсь, это единственный вариант — добавил дополнительный фильтр по IBLOCK_ID в array(«=XML_ID» => $code, «ACTIVE» => «Y», «CHECK_PERMISSIONS» => «Y»),

Гость, здравствуйте.

Во-первых, если вы используете компонент bitrix:catalog.section, вместо него нужно использовать grain:iiko.section.

Во-вторых, в настройках модуля торгового каталога должна стоять опция, разрешающая покупку при отсутствии товара (т.к. доступное количество товара из iiko не передается).


  1. WebWorking

    WebWorking
    WebWorking
    Житель

    Регистрация
    20 май 2017
    Сообщения
    55
    Симпатии
    45
    Баллы
    31
    Пол
    Мужской
    Род занятий
    Web Working
    Интересы:
    Bitrix

    54635070eb451.PNG

    Задаем вопросы / получаем ответы / делимся проблемами / рассказываем секреты / мутим фишечки / ломаем Битрикс /
    и т.п.

    Не стесняемся !!!

    Навигация:
    — ИМ на Битрикс + 1С

    Последнее редактирование: 18 сен 2017


  2. semen787

    semen787
    Новичок
    Зарегистрирован

    Регистрация
    7 окт 2017
    Сообщения
    9
    Симпатии
    1
    Баллы
    1
    Пол
    Мужской
    Интересы:
    Bitrix

    Подскажите пожалуйста в чем может быть проблема
    после завершения заказа нажав на кнопку оформить заказ ничего не происходит т.е. не перекидывает на страницу о том что заказ создан.
    сам заказ создается и на почту информация приходит
    проблема наблюдается в хроме и яндекс браузере, в мозиле и опере все нормально
    в консоле вот такая ошибка
    template_bfc8329249a4381acc4ed6dbe8d894fc.js?1509045280319774:296 TypeError: Cannot read property ‘top’ of undefined
    at checkStickyFooter (template_bfc8329249a4381acc4ed6dbe8d894fc.js?1509045280319774:296)
    at HTMLDocument.initFull (template_bfc8329249a4381acc4ed6dbe8d894fc.js?1509045280319774:294)
    at l (jquery-1.8.3.min.js?150904322293636:2)
    at Object.fireWith [as resolveWith] (jquery-1.8.3.min.js?150904322293636:2)
    at Function.ready (jquery-1.8.3.min.js?150904322293636:2)
    at HTMLDocument.A (jquery-1.8.3.min.js?150904322293636:2)
    checkStickyFooter @ template_bfc8329249a4381acc4ed6dbe8d894fc.js?1509045280319774:296
    initFull @ template_bfc8329249a4381acc4ed6dbe8d894fc.js?1509045280319774:294
    l @ jquery-1.8.3.min.js?150904322293636:2
    fireWith @ jquery-1.8.3.min.js?150904322293636:2
    ready @ jquery-1.8.3.min.js?150904322293636:2
    A @ jquery-1.8.3.min.js?150904322293636:2
    template_bfc8329249a4381acc4ed6dbe8d894fc.js?1509045280319774:295 Uncaught TypeError: Cannot read property ‘top’ of undefined
    at checkScrollToTop (https://site.ru/bitrix/cache/js/s1/…acc4ed6dbe8d894fc.js?1509045280319774:295:195)
    at https://site.ru/bitrix/cache/js/s1/…1acc4ed6dbe8d894fc.js?1509045280319774:295:67
    at dispatch (https://site.ru/bitrix/js/main/jquery/jquery-1.8.3.min.js?150904322293636:2:38053)
    at u (https://site.ru/bitrix/js/main/jquery/jquery-1.8.3.min.js?150904322293636:2:33916)
    at Object.trigger (https://site.ru/bitrix/js/main/jquery/jquery-1.8.3.min.js?150904322293636:2:36647)
    at https://site.ru/bitrix/js/main/jquery/jquery-1.8.3.min.js?150904322293636:2:44416
    at Function.each (https://site.ru/bitrix/js/main/jquery/jquery-1.8.3.min.js?150904322293636:2:14543)
    at init.each (https://site.ru/bitrix/js/main/jquery/jquery-1.8.3.min.js?150904322293636:2:11217)
    at init.trigger (https://site.ru/bitrix/js/main/jquery/jquery-1.8.3.min.js?150904322293636:2:44392)
    at init.v.fn.(anonymous function) [as scroll] (https://site.ru/bitrix/js/main/jquery/jquery-1.8.3.min.js?150904322293636:2:45189)


  3. andrej_07

    andrej_07
    Новичок
    Зарегистрирован

    Регистрация
    15 сен 2017
    Сообщения
    24
    Симпатии
    8
    Баллы
    6
    Пол
    Мужской
    Интересы:
    Bitrix

    Прекрасно установился, причем даже на бесплатный аккаунт hostiman. Разворачивал как восстановление.


  4. amor

    amor
    Новичок
    Зарегистрирован
    Житель

    Регистрация
    9 авг 2017
    Сообщения
    17
    Симпатии
    1
    Баллы
    6
    Пол
    Мужской

    подскажите какой именно Битрикс устанавливали?


  5. andrej_07

    andrej_07
    Новичок
    Зарегистрирован

    Регистрация
    15 сен 2017
    Сообщения
    24
    Симпатии
    8
    Баллы
    6
    Пол
    Мужской
    Интересы:
    Bitrix


  6. amor

    amor
    Новичок
    Зарегистрирован
    Житель

    Регистрация
    9 авг 2017
    Сообщения
    17
    Симпатии
    1
    Баллы
    6
    Пол
    Мужской

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


  7. R-TRY

    R-TRY
    Новичок
    Зарегистрирован
    Житель

    Регистрация
    31 окт 2017
    Сообщения
    1
    Симпатии
    0
    Баллы
    1
    Пол
    Мужской
    Интересы:
    Bitrix

    Добрый день. Подскажите как починить. Битрикс24, корпоративный портал 17.0.5. Нет возможности выставить крайний срок выполнения задачи из основного меню создания задачи. Поле тупо не активно. Кто-нибудь сталкивался?

    И еще вопрос. Установил демку, а она не обновляется. Кнопка «установить обновления» не активна и все тут. Пробовал и в виртуальной машине и в вебокружении. Все одна фигня. Может кто-че подскажет?

    Только не принимайте за спам. Еще один глюк выловил. Корпоративный портал, версия 17.0.5. Не работает опрос. Он создается, но результаты голосования не учитываются, не сохраняются

    Прошу прощения. Сам дурак, надо было принять лицензионное соглашение. Остальные два вопроса актуальны.

    Последнее редактирование модератором: 1 ноя 2017


  8. andrej_07

    andrej_07
    Новичок
    Зарегистрирован

    Регистрация
    15 сен 2017
    Сообщения
    24
    Симпатии
    8
    Баллы
    6
    Пол
    Мужской
    Интересы:
    Bitrix

    Я уже писал выше: hostiman.ru

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

    Последнее редактирование модератором: 2 ноя 2017


  9. rpg2009

    rpg2009
    Новичок
    Зарегистрирован

    Регистрация
    21 дек 2017
    Сообщения
    1
    Симпатии
    0
    Баллы
    1
    Интересы:
    Разное

    да можно вроде. 30 дней не прошло но отсчет редактируется пробовал уронить в блокировку и поднять его


  10. Zheleznij_DpoBocek

    Zheleznij_DpoBocek
    Новичок
    Зарегистрирован

    Регистрация
    30 ноя 2017
    Сообщения
    4
    Симпатии
    1
    Баллы
    1
    Пол
    Мужской
    Интересы:
    Bitrix

    Привет. Нужен совет. Глупая ситуация — имеем сервер без доступа к интернету, на котором развернут BitrixVM, но на этапе загрузки сетапа Битрикса с сервера возникает ошибка.
    Warning: fsockopen(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/bitrix/www/bitrixsetup.php on line 774

    Warning: fsockopen(): unable to connect to www.1c-bitrix.ru:80 (php_network_getaddresses: getaddrinfo failed: Name or service not known) in /home/bitrix/www/bitrixsetup.php on line 774

    Как ее обойти?
    Подключение сервера к интернету не предлагать. Можно ли просто файлы скопировать с рабочей машины?

    Вложения:

    • bit.png

      bit.png
      Размер файла:
      36,1 КБ
      Просмотров:
      3


  11. Oleg Nizamov

    Oleg Nizamov
    Новичок
    Зарегистрирован

    Регистрация
    30 июл 2017
    Сообщения
    16
    Симпатии
    9
    Баллы
    6
    Пол
    Мужской

    Привет, если я правильно понял, то:
    $request .= «HEAD «.$strRealUrl.» HTTP/1.0\r\n»;
    $request .= «Host: $hostname\r\n»;
    if ($proxyUserName)
    $request .= «Proxy-Authorization: Basic «.base64_encode($proxyUserName.»:».$proxyPassword).»\r\n»;

    У тебя тут вылетает ошибка. Глупый вопрос — как без интернета ты хочешь через setup установить файлы?

    Самое простое решение — сделать бекап, и развернуть бекап. На версии сервера без интернета поставь Для разработки.

    Уверен так же, что если ты проверишь сервер bitrix_server_test.php, то у тебя вылезит кучу ошибок. Поэтому лучше сначала проверь через bitrix_server_test.php, а потом разверни через бекап

    Последнее редактирование модератором: 28 апр 2018


  12. Zheleznij_DpoBocek

    Zheleznij_DpoBocek
    Новичок
    Зарегистрирован

    Регистрация
    30 ноя 2017
    Сообщения
    4
    Симпатии
    1
    Баллы
    1
    Пол
    Мужской
    Интересы:
    Bitrix

    Спасибо, развернул через бэкап

    BitrixVM.
    Ошибка при сохранении файла скрипта. Изменения не сохранены.
    ошибку получаю при копировании шаблона компонента.

    Последнее редактирование модератором: 28 апр 2018


  13. Oleg Nizamov

    Oleg Nizamov
    Новичок
    Зарегистрирован

    Регистрация
    30 июл 2017
    Сообщения
    16
    Симпатии
    9
    Баллы
    6
    Пол
    Мужской

    Новое
    BitrixVM.
    Ошибка при сохранении файла скрипта. Изменения не сохранены.
    ошибку получаю при копировании шаблона компонента.

    Вероятнее всего ты авторизован под root. А bitrix использует своего пользователя. Посмотри настройки файла, под каким пользователем файл создан


  14. Zheleznij_DpoBocek

    Zheleznij_DpoBocek
    Новичок
    Зарегистрирован

    Регистрация
    30 ноя 2017
    Сообщения
    4
    Симпатии
    1
    Баллы
    1
    Пол
    Мужской
    Интересы:
    Bitrix

    Авторизован под администратором. Речь идет про меню, как посмотреть под кем оно создано? :)


  15. Oleg Nizamov

    Oleg Nizamov
    Новичок
    Зарегистрирован

    Регистрация
    30 июл 2017
    Сообщения
    16
    Симпатии
    9
    Баллы
    6
    Пол
    Мужской

    Нет, зайти под ftp через WinSCP.

    У файла когда есть такое поле Владелец. Если ты просто копировал, авторизовавшись под root у тебя будет там root.

    Ошибка при сохранении файла скрипта. — 1С-Битрикс Разработчикам — Ошибка при сохранении файла.

    так же /bitrix/admin/site_checker.php?lang=ru вкладка Проверка доступа. Там будут файлы с таким косяком


  16. epicsd

    epicsd
    Новичок
    Зарегистрирован

    Регистрация
    14 апр 2020
    Сообщения
    2
    Симпатии
    0
    Баллы
    1
    Пол
    Мужской
    Интересы:
    Bitrix

    Доброе время суток! Может кто-нибудь сможет помочь или направить меня. Ситуация такая: есть битрикс, в нём ранее один знакомый программист что-то сделал и в результате продукт b2b-магазин от Сотбит стал считаться купленным(чего не должно быть), но когда ты его устанавливаешь, то получаешь демо-период. Вопрос такой, как я могу сбросить демо-режим? И как я могу скрыть установленную версию шаблона от сервиса Битрикс?


  17. demin97sergey

    demin97sergey
    Новичок
    Зарегистрирован

    Регистрация
    20 июл 2020
    Сообщения
    3
    Симпатии
    1
    Баллы
    1
    Пол
    Мужской
    Интересы:
    Разное

    Добрый день. Помогите с нахождение работающего шаблона под cs-cart мультивендор с версией 4.11.4 желательно nulled)


  18. demin97sergey

    demin97sergey
    Новичок
    Зарегистрирован

    Регистрация
    20 июл 2020
    Сообщения
    3
    Симпатии
    1
    Баллы
    1
    Пол
    Мужской
    Интересы:
    Разное

    Добрый день. Помогите с нахождение работающего 1c предприятие 8.3 синхронизации с опенкарт . Версия 3. )

Поделиться этой страницей

Ibazh Модули, Шаблоны, Скрипты, Складчина, все для WEB-мастеров

Еще одна проблема, с которой регулярно встречаются пользователи ЦМС Битрикс не добавляются товары в корзину.
Причин может быть множество: от неправильного программного кода, до неправильно выставленных прав на типы цен.
Рассмотрим основные причины, почему данная проблема возникает:
Перейдем в настройки торгового каталога (настройки – модули – торговый каталог):
Здесь мы видим настройки Включить количественный учет и Разрешить покупку при отсутствии товара (включая разрешение отрицательного количества товара). Если первая включена а вторая выключена, а количество товара равно 0, то возникнет ошибка Битрикс: не добавляются товары в корзину.

Рассмотрим еще одну причину ошибки битрикс не добавляются товары в корзину. Известно, что в модуле интернет-магазина битрикса существует такая сущность как тип цен. Для того, чтобы пользователь мог добавить товар в корзину он должен состоять в группе, обладающей соответствующими правами. Если их не хватает, товар не добавится в корзину.
Эта настройка располагается: магазин – цены – типы цен, далее выбираем соответствующий тип:

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

которая является надстройкой над:

или не подключен модуль интернет-магазина (CModule::IncludeModule(«sale»))
Также имеют место быть случаи, когда модуль интернет-магазина не установлен, или установлен неправильно. При этом также возможно возникновение ошибки добавления товара в корзину в битриксе

Столкнулся с такой проблемой: при вызове Add2BasketByProductID(8907, 1, $arProp); часть товаров нормально добавляется в корзину, а часть вообще не добавляется: «Ошибка проверки доступного количества товара».

Проблема появилась после установки последних обновлений, версия Битрикса 19.0.325. Техподдержка думала примерно сутки и написали следующее:
«Добрый день!
Извините за ожидание.

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

С уважением,
инженер отдела технической поддержки»
чем изрядно меня повеселили. Т.е. косяк настолько серьёзный, что аж целого страшного инженера привлекут. Подожду, но если вы столкнулись с такой же проблемой, то можно попробовать провернуть чукотский трюк: выгрузить все товары в xml, удалить и импортировать. Теоретически товары создадутся нормально. Но это гипотеза.

В моём случае ошибка была из-за того, что некоторые торговые предложения не были привязаны к товарам, а были привязаны к другим торговым предложениям. Пришлось переделывать и привязывать к товарам.

Здравствуйте! Я — Андрей Панёвин и занимаюсь профессиональной разработкой сайтов на платформе 1С-Битрикс (исключительно программирование). Есть вопросы по статье? Могу подсказать и помочь по скайпу (andrey.panevin.ru), WhatsApp (+7-911-091-0670) или перепиской в ВК.
1000 р./час.

Помогла статья? На поездку на море (Охотское):

  • Интернет-магазины
  • Аспро: Максимум
  • Аспро: Next
  • Аспро: Интернет-магазин
  • Аспро: Крутой шоп
  • Аспро: Маркет
  • Аспро: Оптимус
  • Аспро: Шины и диски 2.0
  • Аспро: Шины и диски, интернет-магазин
  • Корпоративные сайты
    • Аспро: Приорити
    • Аспро: Корпоративный сайт 2.0
    • Аспро: Digital-компания
    • Аспро: Корпоративный сайт
    • Аспро: Корпоративный сайт современной компании
    • Аспро: Корпорация
    • Аспро: Курорт
    • Аспро: Ландшафт
    • Аспро: Медицинский центр 2.0
    • Аспро: Сайт медицинского центра
    • Аспро: Стройка
    • Модули
      • Аспро: Кредитный калькулятор
      • Аспро: Универсальный импорт
      • Аспро: Шинный калькулятор
      • 1С-Битрикс
        • Общее
        • Индикатор количества на складе не совпадает с доступным количеством товара

          Рассмотрим проблему на конкретном примере. На одной из карточек товара вкладка «Наличие на складе» (отметка «Нет в наличии») не «дружит» с доступным количеством (иконка «Много»):

          Проверяем настройки товара на вкладке «Торговый каталог».

            Переходим на вкладку «Склады» и проверяем информацию, которую можно задать вручную или выгрузить из 1С.

          Переходим на вкладку «Параметры» и видим, что доступное количество не соответствует суммарным данным по складам. Такое может произойти, к примеру, из-за ошибки выгрузки. Редактируем информацию и сохраняем изменения.

          Дело не в правах скрипта (.access.php), а в физических правах на директорию.
          Например в Bitrix Env есть linux пользователь bitrix (UID:600), из-под которого выполняются все операции, но многие неквалифицированные разработчики работают из-под root-доступов.

          В папку созданную root пользователем нельзя скопировать файлы из-под пользователя bitrix, если ей не установить соответствующие права.

          Ознакомьтесь с соответствующей статьей в документации: https://dev.1c-bitrix.ru/learning/course/index.php…

          Благодаря Андрею разобрался в проблеме! Дело в том что сайт битрикса работает под пользователем «bitrix». А я загружал папку local через FileZilla под пользователем root. У root прав больше чем у bitrix, поэтому сайт битрикса не мог скопировать компонент в папку local. Как только я загрузил файлы через FileZilla с пользователя bitrix, все заработало!

          Понравилась статья? Поделить с друзьями:

          Интересное по теме:

        • Bitrix ошибка при загрузке файла
        • Black desert ошибка 200 при скачивании
        • Bitrix ошибка отсутствуют цены
        • Black desert ошибка 104 mobile
        • Bitrix ошибка обновления err доступ запрещен

        • 0 0 голоса
          Рейтинг статьи
          Подписаться
          Уведомить о
          guest

          0 комментариев
          Старые
          Новые Популярные
          Межтекстовые Отзывы
          Посмотреть все комментарии