Изменение атрибутов товаров в корзине

Главные вкладки

Аватар пользователя simon_db simon_db 14 мая 2012 в 21:11

Привет.
Подскажите как можно менять атрибуты товаров в корзине. (drupal 6)
Пробовал использовать модуль "uc_attributes_in_cart" , работает почти отлично, но к сожалению, при использовании этого модуля невозможно изменить количество товаров в корзине.
Может, кто-то знает как еще можно реализовать изменение атрибутов товаров в корзине.
Спасибо.

Комментарии

Аватар пользователя sg85 sg85 18 июня 2012 в 1:57

решал похожую задачу, надо было прикрутить в корзину кнопки, при нажатии на которые менялись бы атрибуты товаров, там довольно все просто:
через hook_tapir_table_alter добавляем кнопку в таблицу корзины
hook_form_alter добавляем сабмит на эту кнопку в форму корзины
в сабмите выборка из таблицы {uc_cart_products}, меняем данные как нужно и запихиваем обратно

собственно сам пример сабмита в стиле апи уберкарта, да бы все было по фен шую

function my_module_cart_view_form_submit($form, $form_state){
  if (substr($form_state['clicked_button']['#name'], 0, 7) == 'change-')//Имена кнопки задавались аналогично штатным кнопкам на удаление
   if($item = db_fetch_object(db_query("SELECT * FROM {uc_cart_products} WHERE cart_item_id = %d AND cart_id = %d",$form['items'][(int)substr($form_state['clicked_button']['#name'], 7)]['cart_item_id']['#value'],uc_cart_get_id(FALSE)))){
    $item->data = unserialize($item->data);

    //Далее мучаем атрибуты как нужно
    $item->data['attributes'][1] = тут_номер_атрибута;

    drupal_write_record('uc_cart_products',$item,'cart_item_id');
  }
}

Итого буквально 10 строк кода в модуле