Ответы пользователя по тегу API
  • Как изменить профиль покупателя в заказе с помощью Bitrix API?

    Профиль пользователя не сохраняется в заказе, во время оформления, из указанного профиля копируются данные в свойства заказа и всё. В админке если не менять пользователя, то выбрать профиль во время редактирования заказа нельзя, можно только поправить свойства заказа. Если меняем пользователя или создаём новый заказ, то выбрать профиль можно. Функция \Bitrix\Sale\Helpers\Admin\OrderEdit::saveProfileData() сохраняет сам профиль, а не свойства заказа.

    В вашем случае, нужно взять значения свойств из другого профиля и присвоить их вместо текущих.
    Ответ написан
  • Как правильнее реализовать сбор данных обработчиком для последующего запроса к api в php?

    Можно использовать - https://github.com/bandwidth-throttle/token-bucket
    Оно позволит ограничить кол-во запросов в секунду ко внешнему сервису. Получится так - приходит внешний запрос, вы его тут же пытаетесь проксировать в сервис. Перед запросом пробуете получить токен $consumer->consume(1);, если токен получен, значит ещё нет 3х в секунду, если не получен, то будет задержка до ближайшего возможного времени.
    Если же вам нужно ответить на запрос к вашему сервису максимально быстро, не дожидаясь ответа внешнего сервиса, то нужно использовать какой-нибудь сервис очередей. Внешний запрос добавит сообщение в очередь, а на вашем сервисе уже будет воркер, который его моментально попробует обработать.

    В этих вариантах не используется функция отправки по 10 запросов, но думаю что для 1000 запросов в час этого хватить.
    Ответ написан
    1 комментарий