Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- define('STOP_STATISTICS', true);
- require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');
- CModule::IncludeModule('catalog');
- CModule::IncludeModule('sale');
- //регистрация пользователя
- if ($USER->IsAuthorized()){
- $user = $USER->GetID();
- }
- else{
- $pass = crc32(time());
- $USER->Register($_REQUEST['email'], $_REQUEST['name'], "", $pass, $pass, $_REQUEST['email']);
- $user = $USER->GetID();
- $USER->Authorize($user);
- CEvent::Send("NEWREG", SITE_ID, array(
- "EMAIL" => $_REQUEST['email'],
- "LOGIN" => $_REQUEST['email'],
- "PASSWORD" => $pass,
- ));
- }
- //Получение корзины
- $fuser = CSaleBasket::GetBasketUserID();
- $dbBaket = CSaleBasket::GetList(
- array("NAME" => "ASC"),
- array("FUSER_ID" => $fuser, "LID" => SITE_ID, "ORDER_ID" => "NULL")
- );
- $arItems = array();
- while ($arBasket = $dbBaket->GetNext()){
- if ($arBasket["DELAY"]=="N" && $arBasket["CAN_BUY"]=="Y")
- {
- $arBasket["PRICE_FORMATED"] = SaleFormatCurrency($arBasket["PRICE"], $arBasket["CURRENCY"]);
- $tmp[$arBasket["ID"]] = $arBasket;
- }
- }
- //Стоимость заказа
- if (!empty($tmp) && CModule::IncludeModule("currency"))
- {
- $baseCurrency = CCurrency::GetBaseCurrency();
- foreach ($tmp as $arBasketItem)
- {
- if ($arBasketItem["CURRENCY"] != $baseCurrency)
- $arBasket["PRICE"] = CCurrencyRates::ConvertCurrency($arBasketItem["PRICE"], $arBasketItem["CURRENCY"], $baseCurrency);
- if ($arBasketItem["DISCOUNT_PRICE"] > 0)
- $totalSumDiscount += $arBasketItem["QUANTITY"] * $arBasketItem["DISCOUNT_PRICE"];
- else
- $totalSumDiscount += $arBasketItem["QUANTITY"] * $arBasketItem["PRICE"];
- }
- }
- //Создание заказа
- $arFields = array(
- "LID" => SITE_ID,
- "PERSON_TYPE_ID" => 1,
- "PAYED" => "N",
- "CANCELED" => "N",
- "STATUS_ID" => "N",
- "PRICE" => $totalSumDiscount,
- "CURRENCY" => "RUB",
- "USER_ID" => $user,
- "PAY_SYSTEM_ID" => 1,
- "DELIVERY_ID" => 1,
- "USER_DESCRIPTION" => $_REQUEST['comment']
- );
- $id = CSaleOrder::Add($arFields);
- CSaleBasket::OrderBasket($id, $fuser, SITE_ID);
- //свойства заказа
- $props = [
- '1' => 'name',
- '2' => 'company',
- '3' => 'phone',
- '4' => 'email',
- '5' => 'address',
- ];
- for ($i = 1; $i < 6; $i++){
- $arFields = array(
- "ORDER_ID" => $id,
- "NAME" => 'Имя',
- "ORDER_PROPS_ID" => $i,
- "VALUE" => $_REQUEST[$props[$i]]
- );
- CSaleOrderPropsValue::Add($arFields);
- }
- //E-mail для оповещений
- $res = CSite::GetList($by="sort", $order="desc", array('ACTIVE'=>'Y'));
- if($arSite = $res->Fetch()){
- $defaultEmail = $arSite['EMAIL'];
- }
- //оповещения для покупателя
- CEvent::Send("SALE_NEW_ORDER", SITE_ID, array(
- "ORDER_ID" => $id,
- "ORDER_DATE" => FormatDate('j F Y', time()),
- "ORDER_USER" => htmlspecialchars($_REQUEST['name']),
- "PRICE" => $totalSumDiscount,
- "EMAIL" => $_REQUEST['email'],
- "SALE_EMAIL" => $defaultEmail,
- "SITE_NAME" => 'mirmetizov.ru',
- "SERVER_NAME" => 'mirmetizov.ru',
- ));
- //оповещения для администрации
- CEvent::Send("NEWORDER", SITE_ID, array(
- "ORDER_ID" => $id,
- "ORDER_DATE" => FormatDate('j F Y', time()),
- "NAME" => htmlspecialchars($_REQUEST['name']),
- "COMPANY" => htmlspecialchars($_REQUEST['company']),
- "PRICE" => $totalSumDiscount,
- "EMAIL" => $_REQUEST['email'],
- "SALE_EMAIL" => $defaultEmail,
- "PHONE" => htmlspecialchars($_REQUEST['phone']),
- "ADDRESS" => htmlspecialchars($_REQUEST['address']),
- "COMMENT" => htmlspecialchars($_REQUEST['comment']),
- ));
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement