Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

создание заказа и фильтрация по номеру заказа

00 голосов
4
данный код создает заказ, но не переносит в него товары из корзины (в админке они не видны)
в чем проблема?

Код
      $arrAttrs = array (
         "LID" => SITE_ID,
         "PERSON_TYPE_ID" => $_SESSION["order"]["person_type_id"],
         "PAYED" => "N",
         "CANCELED" => "N",
         "STATUS_ID" => "N",
         "PRICE_DELIVERY" => $nPriceDelivery,
         "PRICE" => $nPrice,
         "DISCOUNT_VALUE" => $nDiscount,
         "CURRENCY" => "RUR",
         "USER_ID" => IntVal ($USER->GetID()),
         "PAY_SYSTEM_ID" => $_SESSION["order"]["pay_system_id"],
         "DELIVERY_ID" => $_SESSION["order"]["delivery_id"]
         );
      
      $nId = CSaleOrder::Add ($arrAttrs);
      if ($nId === false) return $nId;
      
      $arrKeys = array_keys ($_SESSION["order"]["props"]);
      for ($i = 0; $i < sizeof ($arrKeys); $i++)
      {
         $arrFields = array (
            "ORDER_ID" => $nId,
            "ORDER_PROPS_ID" => $_SESSION["order"]["props"][$arrKeys[$i]]["id"],
            "VALUE" => $_SESSION["order"]["props"][$arrKeys[$i]]["value"]
            );
         CSaleOrderPropsValue::Add ($arrFields);
      }
      
      CSaleBasket::OrderBasket($nId);



а данный код почему-то не фильтрует товары по принадлежности к заказу
хотя индентификатор заказа указан корректный

Код
   function GetOrderItems ($nId, &$nSum)
   {
      CSaleBasket::Init();
   
      $arrOrder = array("NAME" => "ASC", "ID" => "ASC");
      $arrFilter = array (
         "FUSER_ID" => $_SESSION["SALE_USER_ID"],
          "LID" => SITE_ID,
          "ORDER_ID" => $nId
          );
      $res = CSaleBasket::GetList($arrOrder, $arrFilter);
      
      $arr = array ();
      $nSum = 0;
      while ($rec = $res->GetNext ())      
      {
         if ($rec["FUSER_ID"] != $_SESSION["SALE_USER_ID"]) continue;
         $nSum += $rec["QUANTITY"] * $rec["PRICE"];         
         $arr[] = $rec;         
      }   
      
      return $arr;
   }
спросил 01 Июль, 13 от selector (120 баллов)

4 Ответы

00 голосов
Вроде все правильно, дампите переменные, возможно какие-то значение пустые.
ответил 01 Июль, 13 от Kania (5,180 баллов)
00 голосов
Попробуйте перед
Код
CSaleBasket::OrderBasket($nId); 

вставить
Код
$nId = IntVal($nId);
ответил 06 Авг, 13 от cartmen (460 баллов)
00 голосов
Цитата
Kamil Rafikov пишет:
а данный код почему-то не фильтрует товары по принадлежности к заказу
хотя индентификатор заказа указан корректный

Уберите фильтр по FUSER_ID и по LID.
ответил 07 Ноя, 13 от Pomnep (13,960 баллов)
00 голосов
Цитата
Павел пишет:
22.03.2006 17:03:17
Цитата
Wincert пишет:
21.08.2008 17:42:42
С той поры прошло более полутора лет, а советы всё продолжали поступать.... :))))
ответил 14 Фев, 14 от sickmind (4,660 баллов)

Похожие вопросы

0 голосов
3 ответов
0 голосов
1 ответ
спросил 01 Янв, 14 от Titan91 (1,120 баллов)
0 голосов
1 ответ
спросил 22 Фев, 18 от аноним
0 голосов
2 ответов
спросил 03 Май, 14 от KeiDen (400 баллов)
0 голосов
2 ответов
спросил 02 Май, 14 от Mexx (140 баллов)