Цитата |
---|
Дмитрий пишет: Пишу скрипт, который принимает заказы с сайта-партнера. Он по самопальному API передает все данные о заказе, а скрипт должен заказ создать.
Вопрос как сделать это правильно? 1. Созздать пользователя. Присвоить ему группу 2. Набить товары в корзину (надо ли ее инициализировать сначала? Нужно ли авторизовываться под только что созданным пользователем?) 3. Создать заказ 4. Прикрепить корзину к заказу
Все ли верно? |
1. Пользователь будет один на все заказы с этого сайта?
Код |
---|
// создаем 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.
|
2. Создаем заказ:
Код |
---|
$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',
)
); |
3. Добавляем товар в корзину:
Код |
---|
$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);
|
4. Связываем товары и корзину
Код |
---|
CSaleBasket::OrderBasket($order_id, $FUSER_ID, 's1');
|
5. Заполняем свойства заказа (одни из N)
Код |
---|
$arFieldsPHONE = array(
"ORDER_ID" => $order_id,
"ORDER_PROPS_ID" => #,
"NAME" => "Телефон",
"CODE" => "PHONE",
"VALUE" => $tel
);
CSaleOrderPropsValue::Add($arFieldsPHONE); |
Достаточно подробно?!