Корзина + заказ

Недавно была задачка: собрать со станицы несколько товаров, забросить их в корзину и создать заказ.[spoiler]
ID-шники помещаем в срытые инпуты, например, или как будет удобно
if ($_POST['action']=="BUY"){
         CSaleBasket::DeleteAll(CSaleBasket::GetBasketUserID(), False); // обнулим корзину на всякий случай
   $i = count($_POST); //в этом посте мы получили несколько ID-шников товаров - посчитаем сколько их
   CModule::IncludeModule("sale"); // подключим модуль sale 
   foreach($_POST as $key => $item){
         if($key=='action'){break;}  // выходим из цикла если кончились товары (зная структуру массива мы можем вовремя остановиться - главное знать следующий за товарами ключ :))   

         Add2BasketByProductID( $_POST[$key], 1, $arRewriteFields = array(), $arProductParams = false); // забросим товары в корзину - по одному
   }
            // создадим заказ под гостем 

            $ORDER_ID = CSaleOrder::Add(array(
                     "LID"              => SITE_ID,  
                     "PERSON_TYPE_ID"   => 1,
                     "PAYED"            => "N",
                     "CANCELED"         => "N",
                     "STATUS_ID"        => "N",
                     "PRICE"            => $price,// добавить сумму заказа - можно посчитать заранее
                     "CURRENCY"         => "RUB",
                     "USER_ID"          => 2,
                     "PAY_SYSTEM_ID"    => 2,
                     "PRICE_DELIVERY"   => 0,
                     "DELIVERY_ID"      => 2,
                     "DISCOUNT_VALUE"   => 0,
                     "TAX_VALUE"        => 0.0,
                     "USER_DESCRIPTION" => "Заказ" 
                  ));

            // Связываем товары корзины с заказом

            CSaleBasket::OrderBasket($ORDER_ID); 
}