Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
- use Bitrix\Main\Loader;
- use Bitrix\Sale\Internals\BasketTable;
- use Bitrix\Sale\Order;
- use Bitrix\Sale;
- global $USER;
- \Bitrix\Main\Loader::includeModule("catalog");
- \Bitrix\Main\Loader::includeModule("sale");
- $ID = 520747;
- $phone = '8(123)321-22-33';
- $name = 'Илья';
- $message = 'Комментарий - Тест';
- $email = 'email@mail.ru';
- $price = CPrice::GetBasePrice($ID)['PRICE'];
- $arSelect = Array('NAME');
- $arFilter = Array("IBLOCK_ID"=>142, "ACTIVE"=>"Y", "ID"=>$ID);
- $res = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>50), $arSelect);
- if($ob = $res->GetNextElement())
- {
- $arFields = $ob->GetFields();
- $NAME = $arFields['NAME'];
- }
- $products = array(
- array(
- 'PRODUCT_ID' => $ID,
- 'NAME' => $NAME,
- 'PRICE' => (int)$price,
- 'CURRENCY' => 'RUB',
- 'QUANTITY' => 1
- )
- );
- $basket = Bitrix\Sale\Basket::create(SITE_ID);
- foreach ($products as $product)
- {
- $item = $basket->createItem("dress_catalog", $product["PRODUCT_ID"]);
- unset($product["PRODUCT_ID"]);
- $item->setFields($product);
- }
- /* TODO: оформить текущую корзину */
- //$basket = Sale\Basket::loadItemsForFUser(Sale\Fuser::getId(), Bitrix\Main\Context::getCurrent()->getSite());
- /* ----------------- */
- $order = Bitrix\Sale\Order::create(SITE_ID, 1);
- $order->setPersonTypeId(1);
- $order->setBasket($basket);
- $shipmentCollection = $order->getShipmentCollection();
- $shipment = $shipmentCollection->createItem(
- Bitrix\Sale\Delivery\Services\Manager::getObjectById(1)
- );
- $shipmentItemCollection = $shipment->getShipmentItemCollection();
- foreach ($basket as $basketItem)
- {
- $item = $shipmentItemCollection->createItem($basketItem);
- $item->setQuantity($basketItem->getQuantity());
- }
- $paymentCollection = $order->getPaymentCollection();
- $payment = $paymentCollection->createItem(
- Bitrix\Sale\PaySystem\Manager::getObjectById(1)
- );
- $collection = $order->getPropertyCollection();
- if ($nameProp = $collection->getProfileName()) {
- $nameProp->setValue($name);
- } else {
- $nameProp = $collection->createItem([
- 'ID' => 1,
- 'NAME' => 'FIO',
- 'TYPE' => 'STRING',
- 'CODE' => 'PROP_FIO',
- ]);
- $nameProp->setField('VALUE', $name);
- }
- if ($phoneProp = $collection->getPhone()) {
- $phoneProp->setValue($phone);
- } else {
- $phoneProp = $collection->createItem([
- 'ID' => 3,
- 'NAME' => 'PHONE',
- 'TYPE' => 'STRING',
- 'CODE' => 'PROP_Phone',
- ]);
- $phoneProp->setField('VALUE', $phone);
- }
- if ($emailProp = $collection->getUserEmail()) {
- $emailProp->setValue($email);
- } else {
- $emailProp = $collection->createItem([
- 'ID' => 3,
- 'NAME' => 'EMAIL',
- 'TYPE' => 'STRING',
- 'CODE' => 'PROP_Email',
- ]);
- $emailProp->setField('VALUE', $email);
- }
- $payment->setField("SUM", $order->getPrice());
- $payment->setField("CURRENCY", $order->getCurrency());
- $order->setField('USER_DESCRIPTION', $message);
- $propertyCollection = $order->getPropertyCollection();
- foreach ($propertyCollection as $property) {
- if ($property->getField('CODE') == 'ONCLICK_ORDER') $property->setValue('Да');
- }
- $result = $order->save();
- if (!$result->isSuccess())
- {
- $result->getErrors();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement