Мне достался тут сайт
//Онлайн интеграция заказов с сайтом - отправка из 1С
ПараметрыОбмена = "";
ПараметрыОбмена = ПараметрыОбмена + "KEY="+"DN9MBPQP7680";
ПараметрыОбмена = ПараметрыОбмена + "&NUMBER="+Номер;
ПараметрыОбмена = ПараметрыОбмена + "&DATE="+Дата;
ПараметрыОбмена = ПараметрыОбмена + "&KLIENT="+Контрагент;
ПараметрыОбмена = ПараметрыОбмена + "&PHONE="+ТелефонКлиента;
ПараметрыОбмена = ПараметрыОбмена + "&EMAIL="+Контрагент.Email;
ПараметрыОбмена = ПараметрыОбмена + "&STATUS="+Статус;
ПараметрыОбмена = ПараметрыОбмена + "&STATUSORDER="+СтатусОбработки;
ПараметрыОбмена = ПараметрыОбмена + "&STORES="+Подразделение;
ПараметрыОбмена = ПараметрыОбмена + "&TOTAL="+СтрЗаменить(СуммаДокументаПолная, Символы.НПП, "");
Массив = 0;
Для Каждого ТекСтрокаЗаказТЧ Из ЗаказТЧ Цикл
ПараметрыОбмена = ПараметрыОбмена + "&CART"+"["+Массив+"][id]="+ТекСтрокаЗаказТЧ.Товар.КодУТ;
ПараметрыОбмена = ПараметрыОбмена + "&CART"+"["+Массив+"][sections]="+ТекСтрокаЗаказТЧ.Товар.Родитель;
ПараметрыОбмена = ПараметрыОбмена + "&CART"+"["+Массив+"][item]="+ТекСтрокаЗаказТЧ.Товар;
ПараметрыОбмена = ПараметрыОбмена + "&CART"+"["+Массив+"][quantity]="+ТекСтрокаЗаказТЧ.Количество;
ПараметрыОбмена = ПараметрыОбмена + "&CART"+"["+Массив+"][price]="+СтрЗаменить(ТекСтрокаЗаказТЧ.Цена, Символы.НПП, "");
Массив = Массив+1;
КонецЦикла;
WinHttp=Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
WinHttp.Option(2,"Windows-1251");
WinHttp.Open("GET","https://mysite.com/api/1c.php?"+ПараметрыОбмена,0);
WinHttp.SetRequestHeader("Accept-Language", "ru");
WinHttp.SetRequestHeader("Accept-Charset","Windows-1251");
WinHttp.setRequestHeader("Content-Language", "ru");
WinHttp.setRequestHeader("Content-Charset", "Windows-1251");
WinHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=Windows-1251");
WinHttp.Send();
Сообщить(WinHttp.ResponseText());
<? $ar_res = CCatalogProduct::GetByID($arResult[ID]);
echo "<br>На складе: ";
print_r($ar_res['QUANTITY']);
echo " шт."; ?>
Можно и самому написать, но это будет велосипед, наверняка данная задача решалась неоднократно.
use Bitrix\Main\Context,
Bitrix\Currency\CurrencyManager,
Bitrix\Sale\Order,
Bitrix\Sale\Basket,
Bitrix\Sale\Delivery,
Bitrix\Sale\PaySystem;
global $USER;
Bitrix\Main\Loader::includeModule("sale");
Bitrix\Main\Loader::includeModule("catalog");
// Допустим некоторые поля приходит в запросе
$request = Context::getCurrent()->getRequest();
$productId = $request["PRODUCT_ID"];
$phone = $request["PHONE"];
$name = $request["NAME"];
$comment = $request["COMMENT"];
$siteId = Context::getCurrent()->getSite();
$currencyCode = CurrencyManager::getBaseCurrency();
// Создаёт новый заказ
$order = Order::create($siteId, $USER->isAuthorized() ? $USER->GetID() : 539);
$order->setPersonTypeId(1);
$order->setField('CURRENCY', $currencyCode);
if ($comment) {
$order->setField('USER_DESCRIPTION', $comment); // Устанавливаем поля комментария покупателя
}
// Создаём корзину с одним товаром
$basket = Basket::create($siteId);
$item = $basket->createItem('catalog', $productId);
$item->setFields(array(
'QUANTITY' => 1,
'CURRENCY' => $currencyCode,
'LID' => $siteId,
'PRODUCT_PROVIDER_CLASS' => '\CCatalogProductProvider',
));
$order->setBasket($basket);
// Создаём одну отгрузку и устанавливаем способ доставки - "Без доставки" (он служебный)
$shipmentCollection = $order->getShipmentCollection();
$shipment = $shipmentCollection->createItem();
$service = Delivery\Services\Manager::getById(Delivery\Services\EmptyDeliveryService::getEmptyDeliveryServiceId());
$shipment->setFields(array(
'DELIVERY_ID' => $service['ID'],
'DELIVERY_NAME' => $service['NAME'],
));
$shipmentItemCollection = $shipment->getShipmentItemCollection();
$shipmentItem = $shipmentItemCollection->createItem($item);
$shipmentItem->setQuantity($item->getQuantity());
// Создаём оплату со способом #1
$paymentCollection = $order->getPaymentCollection();
$payment = $paymentCollection->createItem();
$paySystemService = PaySystem\Manager::getObjectById(1);
$payment->setFields(array(
'PAY_SYSTEM_ID' => $paySystemService->getField("PAY_SYSTEM_ID"),
'PAY_SYSTEM_NAME' => $paySystemService->getField("NAME"),
));
// Устанавливаем свойства
$propertyCollection = $order->getPropertyCollection();
$phoneProp = $propertyCollection->getPhone();
$phoneProp->setValue($phone);
$nameProp = $propertyCollection->getPayerName();
$nameProp->setValue($name);
// Сохраняем
$order->doFinalAction(true);
$result = $order->save();
$orderId = $order->getId();
propertysort_<PROPERTY_CODE>
- по индексу сортировки варианта значения свойства. Только для свойств типа Список.$data_for_write ='
{
"type": "FeatureCollection",
"metadata": {
"name": "Карта торгового центра",
"creator": "SWP",
"description": ""
},
'.
while($ob = $res->GetNextElement()){
$arFields = $ob->GetFields();
$arProps = $ob->GetProperties();
.'
"features": [{
$data = array('items' =>array(
array(
'description' => $description,
'category_id' => $category_id,
'name' => 'Карта торгового центра',
'offer_id' => $offer_id,
'price' => $price,
'old_price' => $old_price,