Может кто-то сталкивался с таким:
корзина - заказ оформляется через аякс(нажали появилось окошко с полями, которые заполнили и нажали кнопку отправить)
данные передаются через аякс на страницу обработчик в котором создается заказ и привязывается корзина. и вот тут странная ситуация пришло пару заказов на которые стоит скидка. в параметрах скидки никаких условий применимости нет - она для купонов, причем для 1 товара из заказа. купон есть 1.
как не пытаюсь воспроизвести покупку - ни я, ни другой администратор не можем. но факт тот что скидка назначена на все товары заказа, а не на 1 и указан купон . таких случаев 2, и оба в один день. купон по прежнему активен. до этого такого не было. если я пытаюсь его использовать, то купон не деактивируется, скидка применяется к 1 товару как и положено, не ко всем
вот код создания заказа
сначала проверки полей, создание пользователя..
[CODE]$dbBI = CSaleBasket::GetList(
array("ID" => "ASC"),
array(
'FUSER_ID' => CSaleBasket::GetBasketUserID(),
'LID' => SITE_ID,
'ORDER_ID' => 'NULL'
),
false,
false,
array("ID", "CALLBACK_FUNC", "MODULE", "PRODUCT_ID", "QUANTITY", "DELAY",
"CAN_BUY", "PRICE", "WEIGHT", "NAME", "CURRENCY", "CATALOG_XML_ID", "VAT_RATE",
"NOTES", "DISCOUNT_PRICE", "PRODUCT_PROVIDER_CLASS", "DIMENSIONS", "TYPE", "SET_PARENT_ID", "DETAIL_PAGE_URL"
)
);
$allS = 0;
$allW = 0;
$arIts = array();
while ($arBI = $dbBI->Fetch())
{
if (isset($arBI["SET_PARENT_ID"]) && intval($arBI["SET_PARENT_ID"]) > 0 && empty($arBI["TYPE"])){continue;}else{
$allS += ($arBI["PRICE"] * $arBI["QUANTITY"]);
$allW += ($arBI["WEIGHT"] * $arBI["QUANTITY"]);
$arIts[] = $arBI;
}
}
$arOrd = array(
'SITE_ID' => SITE_ID,
'USER_ID' => CSaleBasket::GetBasketUserID(),
'ORDER_PRICE' => $allS,
'ORDER_WEIGHT' => $allW,
'BASKET_ITEMS' => $arIts
);
$arErrors = array();
$d_sum = 0;
CSaleDiscount::DoProcessOrder($arOrd, array(), $arErrors);
foreach($arOrd['BASKET_ITEMS'] as $dit){
$d_sum += $dit["DISCOUNT_PRICE"]*$dit["QUANTITY"];
}
$a_sum = $allS-$d_sum;
$arFields = array(
"LID" => LANG,
"PERSON_TYPE_ID" => 1,
"PAY_SYSTEM_ID" => 1,
"PAYED" => "N",
"CANCELED" => "N",
"STATUS_ID" => "N",
"PRICE" => $a_sum,
"DISCOUNT_VALUE" => $d_sum,
"CURRENCY" => "RUB",
"USER_ID" => IntVal($USER->GetID()),
);
$ORDER_ID = CSaleOrder::Add($arFields);
$zakazok = CSaleBasket::OrderBasket($ORDER_ID, $_SESSION["SALE_USER_ID"], SITE_ID); [/CODE]
далее генерация и рассылка писем