• Как оформить страницу "Новинки"?

    но умный фильтр можно вывести так как и catalog.section, просто компонентом и комплексный не нужен
    Написано
  • Ошибка резервного копирования Битрикс, как исправить?

    kikher
    @kikher Автор вопроса
    в том то и проблема, крон запускается, копия создается, места много, права есть.
    он отрабатывает 2-3 раза и потом проблема, получается мастер запускатся создает копию и не завершается, висит, поэтому и пишет что
    "Запущен процесс автоматического резервного копирования С момента запуска прошло ..."
    Написано
  • Как добавить запуск своего класса/метода агентом в 1с-Битрикс?

    kikher
    @kikher Автор вопроса
    да, я изменил финкцию на
    public static function someMethod()
        {
            AddMessage2Log(' агент по крону / с данными ');
             return "someMethod();";
        }


    других init.php нет
    Написано
  • Как изменить сумму заказа битрикс после применения доставки?

    это же реализовано в штатном компоненте корзины, разве нет?
    Написано
  • Почему не работает компонент "умный фильтр"?

    Octric, верно, а у вас комплексный компонет, и перед ним подкючаете. Зайдите в его шаблон, и ищите в нем вызов дефолтного филтра и замените своим. Это и будет перед компонентом new.list
    Написано
  • Почему не работает компонент "умный фильтр"?

    Octric, не увидел, свой фильтр вставьте к компонент списка новостей а не перед комплексным компонентом. Тут у вас еще нет данных, они вне компонента news
    Написано
  • Почему не работает компонент "умный фильтр"?

    Octric,
    заполниет в 2х компанентах:
    "FILTER_NAME" => "",
    Написано
  • Как в корзине Битрикс добавить чекбокс и передать зачение с заказом?

    kikher
    @kikher Автор вопроса
    Айнур Валиев, мне нужна возможность менять значение в корзине. и именно изменение не могу отловить
    Написано
  • Битрикс заглавные буквы в sitemap.xml?

    JastaFly, так измените там и все, проблема то на вашей стороне, а не у битрикса, вы сами задете верхний регистр но хотие что бы вывел в ниженем
    Написано
  • Битрикс заглавные буквы в sitemap.xml?

    начните с проверки символьного кода "молчуна"
    Написано
  • Как отловить событие изменения остатка у товара?

    kikher
    @kikher Автор вопроса
    Максим Ткачев, спасибо. А не знаете как понять какой товар изменился после обмена?
    Написано
  • Почему возникает JSON error: Syntax error [4]?

    kikher
    @kikher Автор вопроса
    все проще, ссылка была на http а сайт на https
    Написано
  • Почему возникает JSON error: Syntax error [4]?

    kikher
    @kikher Автор вопроса
    Алексей Уколов, в том то и прикол, все JSON валидаторы пишут что все ок, php json_last_error тоже пишет что ок
    Написано
  • Как получить значение объекта CML2_ARTICLE и REGION_1?

    kikher
    @kikher Автор вопроса
    просто есть 2 свойства типа список, и одно работает, другое нет
    Написано
  • Как получить значение объекта CML2_ARTICLE и REGION_1?

    kikher
    @kikher Автор вопроса
    Алексей Емельянов, хм, а почему тогда если записать свойсто через +.ITEM к примеру свойсво COLOR, пишем как COLOR.ITEM и он работает, дает нужный цвет, а это свойство и список, а строка CML2_ARTICLE не катит

    $elements = \Bitrix\Iblock\Elements\ElementCatalogTable::getList([
        'select' => ['ID', 'NAME','IBLOCK_SECTION_ID', 'REGION_1', 'IBLOCK_SECTION_ID',  'CML2_ARTICLE', 'BRAND_REF', 'COUNTRY', 'CML2_BAR_CODE', 'COLOR.ITEM'],
        'filter' => ['=ACTIVE' => 'Y', 'ID' => 25050],
    ])->fetchCollection();
    
    foreach ($elements as $element) {
        echo $element->getColor()->getItem()->getValue(); // дает нужный ццет
    }


    за мысль спасибо!
    Написано
  • Как поулчить XML выгрузку на Битрикс с вложенными атрибутами?

    kikher
    @kikher Автор вопроса
    думал проще есть вариант, спасибо! реализовал что нужно!
    Написано
  • Как расчитать цену по купону?

    kikher
    @kikher Автор вопроса
    Алексей Емельянов, нет, там post запрос.

    история проще чем я думаю, но пока не могу понять.
    Есть код, где я в тупую ставлю все ID.

    $coupon = array("CUPON");
    $externalUserIdArray = ['3','4','8','2'];
    $prices = CCatalogProduct::GetOptimalPrice(1099647, 1, $externalUserIdArray, 'N', '', SITE_ID, $coupon);
    echo "<h3> СО СКИДКОЙ ".$prices['DISCOUNT_PRICE']."</h3>";


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

    не пойму в чем дело блин :/
    Написано
  • Как расчитать цену по купону?

    kikher
    @kikher Автор вопроса
    Алексей Емельянов, не получатеся

    дописал ваш код в конец, убрал добавления купонов, оставил в одном месте

    $order = Order::create($siteId, $userID);
        $order->setPersonTypeId(4);
        //$order->setField('PRICE_DELIVERY', 770);
        $order->setField('CURRENCY', $currencyCode);
    
        // содаем корзину
        $basket = Bitrix\Sale\Basket::create($siteId);
        // применяем купон
      //  Bitrix\Sale\DiscountCouponsManager::add('CUPON');
    
        foreach ($products as $k => $product) {
    
        
            $item = $basket->createItem('catalog', $product['id']);
    
    
            $item->setFields([
                'QUANTITY' => $product['quantity'],
                'CURRENCY' => \Bitrix\Currency\CurrencyManager::getBaseCurrency(),
                'LID' => \Bitrix\Main\Context::getCurrent()->getSite(),
    
                'PRODUCT_PROVIDER_CLASS' => 'CCatalogProductProvider',
            ]);
    
        }
        $order->setBasket($basket);
    
        // Создаём одну отгрузку и устанавливаем способ доставки
        $shipmentCollection = $order->getShipmentCollection();
        $shipment = $shipmentCollection->createItem(
            \Bitrix\Sale\Delivery\Services\Manager::getObjectById($deliveryID)
        );
        $shipmentItemCollection = $shipment->getShipmentItemCollection();
    
        // наполняем корзину
        foreach ($order->getBasket() as $item) {
            $shipmentItem = $shipmentItemCollection->createItem($item);
            $shipmentItem->setQuantity($item->getQuantity());
        }
    
    // Создаём оплату
        $paymentCollection = $order->getPaymentCollection();
        $payment = $paymentCollection->createItem();
        $paySystemService = PaySystem\Manager::getObjectById($paymentID);
        $payment->setFields(array(
            'PAY_SYSTEM_ID' => $paySystemService->getField("PAY_SYSTEM_ID"),
            'PAY_SYSTEM_NAME' => $paySystemService->getField("NAME"),
        ));
    
        \Bitrix\Sale\DiscountCouponsManager::add('CUPON');
        $discount = $order->getDiscount();
    
        \Bitrix\Sale\DiscountCouponsManager::clearApply(true);
        \Bitrix\Sale\DiscountCouponsManager::useSavedCouponsForApply(true);
    
        $discount->setOrderRefresh(true);
        $discount->setApplyResult(array());
    
        /** @var \Bitrix\Sale\Basket $basket */
        $basket = $order->getBasket();
    
        $saveOrderResult = $basket->refresh(
            \Bitrix\Sale\Basket\RefreshFactory::create(
                \Bitrix\Sale\Basket\RefreshFactory::TYPE_FULL
            )
        );
    
        if (!$saveOrderResult->isSuccess()) {
            var_dump($saveOrderResult->getErrors());
        }
    
    
        $saveOrderResult = $discount->calculate();
        if (!$saveOrderResult->isSuccess()) {
            var_dump($saveOrderResult->getErrors());
        }
        $order->doFinalAction(true);
        foreach ($basket as $basketItem) {
            echo $basketItem->getField('NAME') . ' - ' . $basketItem->getQuantity() . '  цена ' . $basketItem->getPrice() . " итого " . $basketItem->getFinalPrice() . ' <br />';
        }
        
    }

    В вардампе ничего нет, ошибок нет : /
    Написано
  • Как расчитать цену по купону?

    kikher
    @kikher Автор вопроса
    Роман Грицук,
    Убрал вообще цену из наполнения корзины.
    Проубю применить купон в раных местах, не выходит

    $order = Order::create($siteId, $userID);
        $order->setPersonTypeId(4);
        $order->setField('CURRENCY', $currencyCode);
    
        // содаем корзину
        $basket = Bitrix\Sale\Basket::create($siteId);
        // проубю тут применянить купон
        Bitrix\Sale\DiscountCouponsManager::add('CUPON');
    
        foreach ($products as $k => $product) {
    
           $optimalPrice = CCatalogProduct::GetOptimalPrice($product['id'], $product['quantity'], 8, 'N', '', SITE_ID,
                $promocode);
            $item = $basket->createItem('catalog', $product['id']);
    
            $item->setFields([
                'QUANTITY' => $product['quantity'],
                'CURRENCY' => \Bitrix\Currency\CurrencyManager::getBaseCurrency(),
                'LID' => \Bitrix\Main\Context::getCurrent()->getSite(),
    // тут убрал цену
                'PRODUCT_PROVIDER_CLASS' => 'CCatalogProductProvider',
            ]);
    
               }
        $order->setBasket($basket);
    
        // Создаём одну отгрузку и устанавливаем способ доставки
        $shipmentCollection = $order->getShipmentCollection();
        $shipment = $shipmentCollection->createItem(
            \Bitrix\Sale\Delivery\Services\Manager::getObjectById($deliveryID)
        );
        $shipmentItemCollection = $shipment->getShipmentItemCollection();
    
        // проубю тут применянить купон
        // инициирую и добавляю промокод
        Bitrix\Sale\DiscountCouponsManager::init();
        Bitrix\Sale\DiscountCouponsManager::add($promocode);
    
        // наполняем корзину
        foreach ($order->getBasket() as $item) {
            $shipmentItem = $shipmentItemCollection->createItem($item);
            $shipmentItem->setQuantity($item->getQuantity());
        }
    
    // Создаём оплату
        $paymentCollection = $order->getPaymentCollection();
        $payment = $paymentCollection->createItem();
        $paySystemService = PaySystem\Manager::getObjectById($paymentID);
        $payment->setFields(array(
            'PAY_SYSTEM_ID' => $paySystemService->getField("PAY_SYSTEM_ID"),
            'PAY_SYSTEM_NAME' => $paySystemService->getField("NAME"),
        ));
    
    
    /*
    // получаем объект скидок для корзины
        $oDiscounts = Bitrix\Sale\Discount::loadByBasket($basket);
    
    // обновляем поля в корзине
        $basket->refreshData(['PRICE','COUPONS']);
    
    // пересчёт скидок для корзины
        $oDiscounts->calculate();
    
    // получаем результаты расчёта скидок для корзины
        $result = $oDiscounts->getApplyResult();*/
    
    
    // хочу посмотреть товары со скидкой
        // проубю тут применянить купон
        \Bitrix\Sale\DiscountCouponsManager::init(
            \Bitrix\Sale\DiscountCouponsManager::MODE_ORDER,
            [
                "userId" => "78215"
            ]
        );
        \Bitrix\Sale\DiscountCouponsManager::add('CUPON');
        $discounts = $order->getDiscount();
        $discounts->calculate();
    
        foreach ($basket as $basketItem) {
            echo $basketItem->getField('NAME') . ' - ' . $basketItem->getQuantity() . '  цена ' . $basketItem->getPrice() . " итого " . $basketItem->getFinalPrice() . ' <br />';
        }
    
        $order->doFinalAction(true);


    но на выходе все так же
    Написано