[QUOTE]
Дмитрий пишет:
Пишу скрипт, который принимает заказы с сайта-партнера.
Он по самопальному API передает все данные о заказе, а скрипт должен заказ создать.
Вопрос как сделать это правильно?
1. Созздать пользователя. Присвоить ему группу
2. Набить товары в корзину (надо ли ее инициализировать сначала? Нужно ли авторизовываться под только что созданным пользователем?)
3. Создать заказ
4. Прикрепить корзину к заказу
Все ли верно?
[/QUOTE]
1. Пользователь будет один на все заказы с этого сайта?
[CODE]// создаем ID пользователя для корзины
$userId = '#'; // ID пользователя
$FUSER_ID = CSaleUser::GetList(array('USER_ID' => $userId)); // получаем FUSER_ID, если покупатель для данного пользователя существует
if(!$FUSER_ID['ID']) // если покупателя нет - создаем его
{
$FUSER_ID = CSaleUser::_Add(array("USER_ID" => $userId));
}
$FUSER_ID = $FUSER_ID['ID']; // теперь переменную $FUSER_ID можно использовать для добавления товаров в корзину пользователя с $userId.
[/CODE]
2. Создаем заказ:
[CODE] $order_id = CSaleOrder::Add(
array(
'LID' => SITE_ID,
'PERSON_TYPE_ID' => 1,
'PAYED' => "N",
'CANCELED' => "N",
'STATUS_ID' => "N",
'ALLOW_DELIVERY' => 'N',
'DATE_ALLOW_DELIVERY' => $date_delivery,
'DELIVERY_DOC_DATE' => $date_delivery,
'PRICE' => $sum,
'CURRENCY' => "RUB",
'USER_ID' => $userId,
'PAY_SYSTEM_ID' => 5,
'DELIVERY_ID' => 1,
'USER_DESCRIPTION' => 'ЗАКАЗ от SITE.RU',
'ADDITIONAL_INFO' => 'ЗАКАЗ от SITE.RU',
)
); [/CODE]
3. Добавляем товар в корзину:
[CODE] $arFieldsItem = array(
'PRODUCT_ID' => $offer,
'PRICE' => $price,
'CURRENCY' => 'RUB',
'QUANTITY' => $quantity,
'LID' => 's1',
'NAME' => $name,
'ORDER_ID' => $order_id,
'DETAIL_PAGE_URL' => $link,
);
CSaleBasket::Add($arFieldsItem);
[/CODE]4. Связываем товары и корзину
[CODE] CSaleBasket::OrderBasket($order_id, $FUSER_ID, 's1');
[/CODE]
5. Заполняем свойства заказа (одни из N)
[CODE] $arFieldsPHONE = array(
"ORDER_ID" => $order_id,
"ORDER_PROPS_ID" => #,
"NAME" => "Телефон",
"CODE" => "PHONE",
"VALUE" => $tel
);
CSaleOrderPropsValue::Add($arFieldsPHONE); [/CODE]
Достаточно подробно?!