Как это сделать?
30.04.2009 11:02:14
Как это сделать?
|
|
|
|
30.04.2009 21:01:03
При добавлении, выбрать все товары из корзины, посмотреть есть ли такой уже в корзине или нет, если есть то просто не добавлять).
|
|
|
|
30.04.2009 21:35:01
Да нет, я наверно не совсем точно выразился.
Добавлять нужно обязательно, у товаров с одним и тем же ID в корзине будут разные свойства. |
|
|
|
30.04.2009 23:48:50
Тогда лучше смотреть не в сторону добавления в корзину с помощью стандартный функций добавлнения типа
Add2Basket или Add2BasketByProductID. Эти функции просто обертки класса для работы с корзиной. Нужно работать непостредственно с классом CSaleBasket, конкретно примерно так
|
|||
|
|
01.05.2009 16:52:01
Я смотрю я поднял давно заежжаную тему, и как я понял нормального решения НЕТ.
Судя по форуму эту тему начали обсуждать еще в 2005 году, вот топик - И до сих пор все осталось без изменений??? Николай Гросу Подставлять к ID товара еще какие-то цифры - вариант извращенный (в моем случае). У меня 2 свойства которые товар может иметь в корзине и каждого свойства может быть по 30 значений, придется писать кучу некрасивого "кустарного" кода. |
|
|
|
02.05.2009 21:07:18
если не ошибаюсь "CAN_BUY" => "Y", обязательно должно присутствовать в массиве добавляемого в корзину товара.
|
|
|
|
03.05.2009 00:10:44
Вот блин блинский... Количество не добавлялось - это моя ошибка была.
Но вот то что товар ложится в корзину в "Отсутствуют в продаже" - это недопустимо. Из-за этого не работает изменение кол-ва товара в корзине и невозможно оформить заказ. Тут возможно могут помочь callback функции??? Расскажите как они (кэллбэк функции) работают? В документации толком ничего нету про них, в каких файлах они "живут" и как ими пользоваться? |
|
|
|
03.05.2009 00:58:11
Все получилось, тоже мой косяк был, только так и не понял где.
Про callback функции буду признателен если расскажите, или носом ткните, где про них подробно написано. Чувствую что нужны они мне... |
|
|
|
03.05.2009 12:05:28
тут думаю достаточно расписано про фнкции обратного вызова. Определить ее можно в init.php |
|
|
|
03.05.2009 13:58:43
Николай Гросу спасибо разобрался как они работают.
Но теперь мне непонятен их смысл, например "Функция обратного вызова для поддержки актуальности корзины" - Она вызывается только при добавлении товара в корзину (CSaleBasket::Add), зачем это надо??? Я при добавлении (CSaleBasket::Add) заношу параметры цены, кол-ва и прочие, так я наверно проверяю что заношу в корзину и товары которых нету там не окажутся, это можно делать и без кэллбэк функции. Меня больше интересуют функции или события при нажатии в корзине "Обновить" и "Оформить заказ", подскажите есть ли таковые? |
|
|
|
03.05.2009 14:47:50
из справочги, которую дал
Функция обратного вызова вызывается (если установлена) при каждом чтении корзины для обновления параметров содержащихся в корзине товаров. Например, если после добавления товара в корзину изменилась его цена или товар сняли с продажи, то использование функции обратного вызова позволяет соответственно обновить данные в корзине. Мне пока еще не совсем понятна задача, которую вы хотите решить. Что должно происходить с корзиной товаров при нажатии кнопки обновить в корзине? |
|
|
|
03.05.2009 20:38:43
Ага, разобрался, теперь точно разобрался ). Кароче такая ерунда... указываю callback функцию в CSaleBasket::Add и тогда товар попадает в корзину в "Отсутствуют в продаже", причем не важно есть эта функция в init.php или нет ее. Вот в этом вся и беда.
Моя задача: Нажатие обновить и оформить заказ забыли, мне показалось что callback функция вызывается только при добавлении товара. Она вызывается при каждом просмотре корзины, поэтому актуальность можно поддерживать, это мне и надо было. Осталась единственная проблема, уложить товары нормально в корзину НЕ в "Отсутствуют в продаже". Есть какие нибудь мысли как это сделать? |
|
|
|
04.05.2009 19:49:43
Проблема все еще актуальна...
Если добавляю товар с помощью CSaleBasket::Add и указываю в массиве $arFields параметр CALLBACK_FUNC, то товар попадает в корзину в "Отсутствуют в продаже". Это совсем недопустимо, как быть? |
|
|
|
20.07.2009 17:58:57
Та же самая проблема!
Гуру, подскажите хотя бы в каком направлении копать? |
|
|
|
26.08.2009 14:45:37
Ну подскажите же!! В чём может быть проблема??
Права все выставлены, количество на складе достаточное! Почему товар попадает в "Отсутствуют в продаже"? |
|
|
|
26.08.2009 15:18:06
Я так понимаю, что не работает стандартная функция CatalogBasketCallback?
Её вызов нужно самому прописывать или она вызывается самомтоятельно? |
|
|
|
28.08.2009 00:09:13
Разобралась.
Оказалось, что название стандартной функции в параметрах вызова CSaleBasket::Add указывать не нужно. |
|
|
|
09.06.2010 16:45:18
Возникла аналогичная проблема (как у Татьяны ОСтрецовой, Wincert,...) на редакции Бизнес 9.0. CSaleBasket::Add при изменении типа базовой цены перестал увеличивать количество товаров в корзине, если при добавлении товара не указать цену товара. Данная особенность "затрудняет" работу, если добавлять надо товар без цены. Кто-нибудь сталкивался с подобным ?
|
|
|
|
17.07.2013 13:00:49
Мой код:
$arFields = array( "PRODUCT_ID" => $PRODUCT_ID, "PRODUCT_PRICE_ID" => 0, "PRICE" => 3200, "CURRENCY" => "RUB", "WEIGHT" => 0, "QUANTITY" => 1, "LID" => LANG, "DELAY" => "N", "CAN_BUY" => 'Y', "NAME" => "Чемодан кожаный", "CALLBACK_FUNC" => "", "MODULE" => "catalog", "NOTES" => "", "ORDER_CALLBACK_FUNC" => "", "DETAIL_PAGE_URL" => "/".LANG."/detail.php?ID=51", "FUSER_ID" => CSaleBasket::GetBasketUserID() ; все работает - добавляет в корзину элемент в блок "Готовые к продаже" |
||||
|
|
|||