"Запущен процесс автоматического резервного копирования С момента запуска прошло ..."
$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(); // дает нужный ццет
}
$coupon = array("CUPON");
$externalUserIdArray = ['3','4','8','2'];
$prices = CCatalogProduct::GetOptimalPrice(1099647, 1, $externalUserIdArray, 'N', '', SITE_ID, $coupon);
echo "<h3> СО СКИДКОЙ ".$prices['DISCOUNT_PRICE']."</h3>";
$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 />';
}
}
$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);