День добрый, товарищи.
Быть может, кто подскажет, как реализовать небольшой функционал. Есть товары на сайте, которых в наличии больше нуля. Здесь все понятно, а есть товары -- которых нет в наличии. Так вот, для таких товаров (нет в наличии) нужно реализовать возможность сделать предзаказ именно по вот такому алгоритку:
- человек кликает на кнпоку добавления товара в корзину, но, товар НЕ должен попадать в корзину, а должен создаться заказ с статусом "предзаказ" и выбранный товар должен пойти в этот заказ.
Сам заказ сгенерить не проблема, а проблема подключить товар в этот самый заказ. Если делать вот так (через корзину):
Данный код работает, но посредством того, что товар ложиться в корзину. Проблема в том, что если в корзине уже были товары, которые есть в наличии, то все они, вместе с товаром, которого нет, пойдут в заказ и корзина очиститься.
Порывшись в документации, нашел другой класс -- CSaleOrder. Думал, может с ним получиться создать заказ, без использования корзины. Но не нашел как можно программно добавить товар в заказ.
Считывать товары с корзины, удалять все, кроме товара, который нужно добавить в предзаказ, а потом возвращать товары обратно -- как-то некошерно. Может есть други решения?
Спасибо
Быть может, кто подскажет, как реализовать небольшой функционал. Есть товары на сайте, которых в наличии больше нуля. Здесь все понятно, а есть товары -- которых нет в наличии. Так вот, для таких товаров (нет в наличии) нужно реализовать возможность сделать предзаказ именно по вот такому алгоритку:
- человек кликает на кнпоку добавления товара в корзину, но, товар НЕ должен попадать в корзину, а должен создаться заказ с статусом "предзаказ" и выбранный товар должен пойти в этот заказ.
Сам заказ сгенерить не проблема, а проблема подключить товар в этот самый заказ. Если делать вот так (через корзину):
Код |
---|
// Создаем заказ $order_id = CSaleOrder::Add( array( "LID" => SITE_ID, "PERSON_TYPE_ID" => 1, "PAYED" => "N", "CANCELED" => "N", "STATUS_ID" => "B", "PRICE" => 100, "CURRENCY" => "RUB", "USER_ID" => IntVal($USER->GetID()), "PAY_SYSTEM_ID" => 1, "USER_DESCRIPTION" => "Предзаказ" ) ); // Добавляем товар CSaleBasket::Add( array( 'PRODUCT_ID' => $selected_id, 'PRICE' => 100, 'LID' => SITE_D ) ); // Связываем товары корзины с заказом CSaleBasket::OrderBasket($order_id); |
Данный код работает, но посредством того, что товар ложиться в корзину. Проблема в том, что если в корзине уже были товары, которые есть в наличии, то все они, вместе с товаром, которого нет, пойдут в заказ и корзина очиститься.
Порывшись в документации, нашел другой класс -- CSaleOrder. Думал, может с ним получиться создать заказ, без использования корзины. Но не нашел как можно программно добавить товар в заказ.
Считывать товары с корзины, удалять все, кроме товара, который нужно добавить в предзаказ, а потом возвращать товары обратно -- как-то некошерно. Может есть други решения?
Спасибо