Здравствуйте, друзья. Нужно реализовать следующее: допустим человек указал кол-во товара 4 и нажал добавить в корзину. Это добавит 4шт. А если потом изменит кол-во на 5 и обратно нажмёт добавить в корзину тот же товар, то второй товар складывается к первому, итого 9. Нужно сделать чтобы при повторном клике предыдущее значение обнулялось, чтобы в корзине было только 5 товаров. Это же относится и при двукратном нажатии на "добавить в корзину". Нужно чтобы последующие значение перезаписывали предыдущие. Может придётся немного править модуль корзины, но в этом я не силён, поэтому обратился к сообществу..
Спасибо за внимание.
Комментарии
Логика доавления правильная. Если Вы хотите менять, вам придется хукнуть функциою добавления в корзину убера, стоит ли овчинка выделки решать Вам.
Клиент требуется, поэтому надо сделать. Думаю над реализацией.. Небольшой опыт в разработке модулей есть. Тут спрашивал на тот случай, если кто либо уже сталкивался с подобной задачей и предложит удачное решение.
hook_uc_add_to_cart
получить айдишник и кол-во добавленного товара.
если такой товар есть в корзине, вычесть кол-во.
Для восьмерки есть хук:
<?php
function hook_uc_add_to_cart($nid, $qty, $data) {
if ($qty > 1) {
$result[] = array(
'success' => FALSE,
'message' => t('Sorry, you can only add one of those at a time.'),
);
}
return $result;
}
?>
Вопрос: Как проверить "если такой товар есть в корзине"
В общем сделал вот что: просто закоментировал одну строчку (в моём случае 1203-я) в файле uc_cart.module . Вот эту //$qty += $item_entity->qty;
Согласен, решение не очень.. При обновлении модуля перезапишется