бамп!
|
[QUOTE]Евгений Жуков написал:
Да. Вообще можно получить FUser по авторизованному пользователю и выполнять TransferBasket уже для него. Каким образом Вы новый FUSER получаете?[/QUOTE] вот сейчас как [CODE]$arAuthResult = $USER->Authorize($arUser['ID']); //Авторизация $newFuserId = CSaleBasket::GetBasketUserID(); //получаю новый f_userid $done = CSaleBasket::TransferBasket($fuser_id, $newFuserId); делаю трансфер CSaleUser::Update($newFuserId); [/CODE] |
|
|
|
|
|
[QUOTE]Евгений Жуков написал:
CSaleUser::Update(FUSER) после авторизации.[/QUOTE] FUSER - это новый f_userid в данном случае? |
|
|
|
|
|
[QUOTE]Евгений Жуков написал:
Нового FUser привяжите к авторизованному пользователю[/QUOTE] Извиняюсь за своё невежество, а как это сделать можно не подкажете? |
|
|
|
|
|
[QUOTE]Евгений Жуков написал:
Да[/QUOTE] Странно. Сейчас так делаю, но в корзине товары не появляются. Хотя CSaleBasket::TransferBasket возвращает true и старый fuser_id != новый fuser_id. |
|
|
|
|
|
[QUOTE]Евгений Жуков написал:
Нет. В таблице корзины товары остаются привязанными к старому FUSER_ID. Более того, таким хаком Вы можете породить массу трудноотлаживаемых спецэффектов. Вам нужен метод CSaleBasket::TransferBasket[/QUOTE] Значит порядок действий должен быть такой: 1. запомнить FUSER_ID неавторизованного пользователя 2. Авторизоваться 3. вызвать CSaleBasket::TransferBasket(старый fuser_id, новый fuser_id) Так? |
|
|
|
|
|
[QUOTE]Евгений Жуков написал:
Вы не перепривязываете корзину (видимо, FUSER_ID разный)[/QUOTE] А вот в этой строчке я разве не перепривязываю? Или вы что-то другое имеете в виду?[CODE] if ($fuser_id > 0) { $_SESSION["SALE_USER_ID"] = $fuser_id; }[/CODE] |
|
|
|
|