• Каким образом в Битриксе назначать стоимость доставок при синхронизации?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Давайте разберем чуть подробнее ваш фрагмент кода и представим гипотетическую ситуацию: у вас на сайте создана 1 отгрузка, а после обмена из вашей системы прилетает 2 новые отгрузки, вместо 1 существовавшей.

    Начнем с того что в:
    // создаём отгрузки
    $shipmentCollection = $orderBx->getShipmentCollection();


    Вы получаете коллекцию отгрузок. Коллекция отгрузок представляет из себя набор, состоящий из системной отгрузки + созданных системой или пользователем.
    При обработке существующего заказа с одной отгрузкой вам вернется коллекция (объект) с содержимым в 2 отгрузки: системная + ваша.

    Далее, вы производите итерацию по пришедшим отгрузкам
    foreach (importJson['Shipments'] as $importOrderShipment)

    Т.е. получается вам пришло 2 отгрузки и соответственно вы 2 раза зайдете в ваш цикл.

    Фрагмент:
    $shipment = $shipmentCollection->createItem();
    Создаст еще одну отгрузку. Иными словами после выполнения фрагмента в коллекции отгрузок у вас будет уже 4 отгрузки: системная, исходная (которая была на сайте), а так же две новых отгрузки, которые вы создали при итерировании по импортируемым отгрузкам.

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

    2) Добавить маркер и по нему обновлять существующие отгрузки - менять стоимость тип и т.п.
    Это будет сложнее, но при этом чище с точки зрения событий в системе.

    P.S. И насколько я помню, цена доставки PRICE_DELIVERY из order это вроде как сумма PRICE_DELIVERY (?CUSTOM_PRICE_DELIVERY) из всех не системных отгрузок, так что задавать его бесполезно.
    Ответ написан
    1 комментарий
  • Почему не работает autoplay в html5 video в хроме?

    Get-Web
    @Get-Web Куратор тега HTML
    Front-End Developer
    Можно запустить только без звука

    <video id="video_background" preload="auto" no-controls autoplay loop playsinline muted >
          <source src="video/bt-1400.mp4" type='video/mp4' />
        </video>
    Ответ написан
    4 комментария
  • Как в ВК API можно узнать, можно ли оставлять комментарии под фото пользователя?

    @StockholmSyndrome
    отправьте запрос методом photos.getById с extended=1
    у каждой фотографии будет поле can_comment
    Ответ написан
    Комментировать
  • Как составить mysql запрос оптимальнее?

    @ghostiam
    На Go писатель, серверов пинатель.
    WHERE 
    (
        `phone1` IN ('83519025115','87051036787', '88142531260', ...) 
      OR
        `phone2` IN ('83519025115','87051036787', '88142531260', ...)
    )
    Ответ написан
    3 комментария
  • Запуск скрипта php в консоли через сайт?

    @VadimKholodilo
    Да, как выше сказали, можно через exec(), а можно допилить скрипт таким образом, чтоб он при запуске понимал в каком режиме его запустили cli или к нему сделали http запрос. Ну, а дальше уже дело техники.
    Ответ написан
    Комментировать
  • Как получить access token vk без привязки к ip?

    Нужно делать авторизацию с правами offline, тогда access_token не будет привязан к ip и будет бессрочным.

    Разумеется такой access_token не вечный. Он перестанет работать, если пользователь сменит пароль или же запретит приложению доступ в настройках.
    Ответ написан
    Комментировать