Error message

User warning: The following theme is missing from the file system: responsive_green. For information about how to fix this, see the documentation page. in _drupal_trigger_error_with_delayed_logging() (line 1143 of /var/www/moscovie.com/includes/bootstrap.inc).

Как в Ubercart добавить товар в корзину с помощью AJAX

Пример добавления в корзину товара с nid 123.

Javascript:

// Посылаем AJAX запрос
$.post(Drupal.settings.basePath + 'ajax-add-to-cart', {nid:123}, function(response) {
response = Drupal.parseJson(response);

// Показываем сообщение если что-то пошло не так
if (!response.status) {
return alert(response.data);
}

// Обновляем блок с корзиной
$('#block-uc_cart-0 .content').html(response.data);
});

PHP:

/**
* Реализация hook_menu()
*/
function mymodule_menu() {
$items['ajax-add-to-cart'] = array(
'page callback' => 'mymodule_ajax_add_to_cart',
'access arguments' => array('access content'),
'type' => MENU_CALLBACK,
);
return $items;
}

/**
* Menu callback
*/
function mymodule_ajax_add_to_cart() {
if (!isset($_POST['nid'])) {
return;
}
// Добавляем товар в корзину
uc_cart_add_item((int)$_POST['nid'], 1, NULL, NULL, FALSE);
// Получаем содержимое блока корзины
$block = module_invoke('uc_cart', 'block', 'view', 0);
// Возвращаем содержимое блока корзины
drupal_json(array('status' => TRUE, 'data' => $block['content']));
}

Ubercart 6.x-2.x

Категория: 
The code has been tested and works
Мультитег: