• Как вывести товары со скидками в корзине битрикс с помощью АПИ?

    @symply_rabbit Автор вопроса
    2 варианта ответа найдено: 1)
    <?$fuserId = CSaleBasket::GetBasketUserID();
    
    $dbBasketItems = CSaleBasket::GetList(
       array("ID" => "ASC"),
       array(
           "FUSER_ID" => $fuserId,
           "LID" => SITE_ID,
           "ORDER_ID" => "NULL",
           "DELAY"=>"N"
       ),
       false,
       false,
       array(
           "ID", "NAME", "CALLBACK_FUNC", "MODULE", "PRODUCT_ID", "PRODUCT_PRICE_ID", "QUANTITY", "DELAY", "CAN_BUY",
           "PRICE", "WEIGHT", "DETAIL_PAGE_URL", "NOTES", "CURRENCY", "VAT_RATE", "CATALOG_XML_ID",
           "PRODUCT_XML_ID", "SUBSCRIBE", "DISCOUNT_PRICE", "PRODUCT_PROVIDER_CLASS", "TYPE", "SET_PARENT_ID"
       )
    );
    
    
    while ($arBasketItems = $dbBasketItems->Fetch())
    {
       $allSum = ($arBasketItems["PRICE"] * $arBasketItems["QUANTITY"]);
       $allWeight = ($arBasketItems["WEIGHT"] * $arBasketItems["QUANTITY"]);
       $arResult[] = $arBasketItems;
    }
    
    $arOrder = array(
       'SITE_ID' => SITE_ID,
       'USER_ID' => $GLOBALS["USER"]->GetID(),
       'ORDER_PRICE' => $allSum, // сумма всей корзины
       'ORDER_WEIGHT' => $allWeight, // вес всей корзины
       'BASKET_ITEMS' => $arResult // товары сами
    );
    
    $arOptions = array(
       'COUNT_DISCOUNT_4_ALL_QUANTITY' => "Y",
    );
    
    $arErrors = array();
    
    CSaleDiscount::DoProcessOrder($arOrder, $arOptions, $arErrors);
    
    
    echo $arOrder["ORDER_PRICE"];?>


    2)
    <?$basket = \Bitrix\Sale\Basket::loadItemsForFUser(
      \Bitrix\Sale\Fuser::getId(),
      \Bitrix\Main\Context::getCurrent()->getSite()
    ); // текущая корзина
    $fuser = new \Bitrix\Sale\Discount\Context\Fuser($basket->getFUserId(true));
    $discounts = \Bitrix\Sale\Discount::buildFromBasket($basket, $fuser);
    $discounts->calculate();
    $result = $discounts->getApplyResult(true);
    $prices = $result['PRICES']['BASKET']; // цены товаров с учетом скидки
    print_r($prices);
    
    
    
    foreach ($prices as $price):
    
    //echo $price[PRICE];?><br>
    <?
    $summs[]=$price[PRICE];
    ?>
    <?endforeach;?>
    
    
    
    <?
    $a = array($summs);
    $summsss = array_sum($summs);
    echo $summsss;?>


    Об варианта рабочие
    Ответ написан
    Комментировать
  • Как сделать меню, как на yandex.market?

    Mi11er
    @Mi11er
    A human...
    Сразу чет вспомнил данную статью от 2013 года , она про amazon, но смысл такой же =)
    Ответ написан
    2 комментария
  • Как сделать, чтобы mySwiper слайдер крутился бесконечно и без остановок?

    @yourBadApple
    Ответ выше не помог, поэтому оставляю решение тут
    Ответ написан
    Комментировать
  • Что такое self в Python?

    @olegshv
    SysAdmin
    Объяснение self в python:

    dog‎: у котов внутри есть мурчалка
    dog‎: она реализована для всех котов в классе кот
    ‎dog‎: в объекте кот надо как то вызвать метод мурчало у класса кот
    ‎dog‎: как ты это сделаешь?
    dog‎: кот.мурчало()
    ‎dog‎: ежели ты вызовешь кот.мурчало(), муркнут сразу все коты на свете
    ‎dog‎: а ежели ты вызовешь self.мурчало(), муркнет только тот кот, на которого указывает self
    Ответ написан
    5 комментариев
  • Почему не передается бюджет сделки в Amocrm?

    @synapse_people
    там параметр переименовали, из cost (помоему) в price
    Ответ написан
    Комментировать
  • Как связать контакт и сделку в amoCRM?

    DeveloperKZ
    @DeveloperKZ
    Программист
    Если делаете все как в мануале но при этом привязка не работает, попробуйте в параметр 'linked_leads_id' добавить (int) перед значением, в файле contact_add.php

    fde63c5d6c2143669eb346b3a1e495c7.png
    Ответ написан
    Комментировать
  • Как отменить прокрутку страницы наверх при клике по пустой ссылке?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Это напрямую связано с тем, что ваши радио кнопки имеют такие стили:
    input[type="radio"] {
        position: absolute;
        top: -9999px;
        left: -9999px;
    }

    При клике на них, браузер пытается перевести окно к их положению.
    Задайте им примерно такие стили:
    .hidden-radio {
      position: absolute;
      left: 0;
      top: 0;
      opacity: 0;
      z-index: -9999;
    }

    Опасити спрячет кнопку визуально, отрицательный z-index сделает их некликабельными/неактивными для hover'а.
    Ответ написан
    1 комментарий
  • Как вывести товары, у которых изменилось доступное количество за последние две недели?

    AlexeyGfi
    @AlexeyGfi
    YouTube >>> Битриксоид из Колхоза
    Завести отдельное хранилище-лог, например хайлоадблок, куда сохранять показатель количества товара на складе при его изменении (отслеживать события товара). Выборка из этого хранилища с фильтром по дате даст нужные записи.
    Ответ написан
    Комментировать
  • Как решить проблему при обмене Битрикса с 1С УТ 11?

    @Sopwithcamel
    Project manager / Bitrix Developer
    Проблема в том, что на сайт стучится более одного обмена, и они начинают ломиться в одну и ту же таблицу (b_xml_tree).

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

    Помимо ошибок обмена бывают еще неприятные последствия на сайте, деактивация части каталога, например.
    Ответ написан
    Комментировать
  • Где искать клиентов на вёрстку?

    bootd
    @bootd
    Гугли и ты откроешь врата знаний!
    Вот так просто никто вам не скажет, где взять клиента))) Кто такие клады вам раскроет то))

    Связи, больше дружить с людьми из своей профессии и смежных тоже, показывать профессионализм.
    Устраиваться в фирмы, работать там, нарабатывать базу. Я никогда не был на биржах, сменил за жизнь около 3х фирм. С каждой я заимел друзей, знакомых, а потом друзей друзей, с которыми постоянно работаю и по сей день. В процессе, вы кого-то порекомендовали(например знакомого дизайнера), а он потом, порекомендует вас кому либо. Сарафанное радио короче говоря.
    Ответ написан
    Комментировать
  • Создал самоподписанный сертификат, но не получил https?

    CityCat4
    @CityCat4 Куратор тега Цифровые сертификаты
    Внимание! Изменился адрес почты!
    Здесь не один вопрос, а целых...три
    1. Зачем мне https
    2. Почему самоподписанный сертификат небезопасен
    3. Чем отличается самоподписанный сертификат от выданного доверенной организацией
    Итак.
    1. https, нужны только для того, чтобы хром не зажигал красный флажок (последние версии уже начали маркировать такие сайты) - это что-то типа установки Windows 10 pre-alpha - круто, потому что новое. Если шифровать нечего - не шифруйте и пофиг на флажок. Если сайт продающий и пофиг быть не может - убейте жабу и купите сертификат от УЦ. Влезть на елку и не поцарапать попу не получится
    2. Самоподписанный сертификат небезопасен потому что никто не гарантирует правдивость данных, которые в нем. Это все равно что взять бумажку и написать на ней "Паспорт" - написать никто не мешает. Верить никто не будет. Чтобы такому сертификату начали верить, он должен быть добавлен в хранилище корневых сертификатов - причем на всех компьютерах, которые будут на него заходить. Вот поэтому, если сайт продающий и Вы даже о флажке так печетесь - как будете обьяснять юзеру, чтобы он скачал себе Ваш сертификат и добавил его в корневые? Тем более, что например на Windows Mobile это сделать в принципе нельзя (на нерутованной)
    3. Сертификат выданный доверенной организацией отличается тем, что сертификат самой организации уже добавлен во все хранилища всех браузеров - и все сертификаты, выданные ею, считаются доверенными. В этом и заключается опасность бесплатных раздатчиков сертификатов - из сертификата может либо не оказаться, либо он будет "подозрительным". Еще раз - если сайт продающий - убейте жабу и купите нормальный сертификат от нормального УЦ. Экономия на бесплатных сертификатах может выйти боком.
    Ответ написан
  • Как решить проблему с отображением слайдера Slick?

    @PerfectLab
    Попробуйте инициализировать слайдер после клика на таб:
    $(".slider").slick('reinit');
    Ответ написан
    8 комментариев
  • Слик слайдер не инициализируется находясь во вкладке?

    @dranets13
    2 недели назад перелопатил кучу инфы, нашел в буржунете такой фикс, у меня работает:
    /* bootstrap hack: fix content width inside hidden tabs */
    .tab-content > .tab-pane, .pill-content > .pill-pane {
        display: block;    /* undo display:none          */
        height: 0;         /* height:0 is also invisible */
        overflow: hidden;  /* no-overflow                */
    }
    .tab-content > .active, .pill-content > .active {
        height: auto;      /* let the content decide it  */
    } /* bootstrap hack end */


    просто добавьте в свои стили (при условии, что используете Bootstrap)
    Ответ написан
    Комментировать
  • Как преобразовать одномерный массив в многомерный?

    fornit1917
    @fornit1917
    $result = [];
    foreach ($sourceArray as $key=>$value) {
     $dates = explode('-', $value);
     $numbers = explode('.', $dates[0]);
     $year = $numbers[2];
     if (!isset($result[$year])) {
      $result[$year] = [];
     }
     $result[$year][] = substr($dates[0], 0, 5) . '-' . substr($dates[0], 0, 5);
    }


    Демо sandbox.onlinephpfunctions.com/code/5102f544f69cf6...
    Ответ написан
    1 комментарий
  • Откуда появляется непонятная дробная часть при вычислениях?

    rockon404
    @rockon404
    Frontend Developer
    Математика в JavaScript

    Вообще забудьте о таких способах вычисления состояния:
    itemsAmount = itemsAmount - itemCoast; // из общей суммы корзины вычитаем стоимость товара

    Храните модель состояния и пересчитывайте сумму по ней при каждом ее изменении. Округляйте числа только после вычислений.
    Ответ написан
    Комментировать