Commerce

Програмное создание заказа (Commerce Drupal7)

global $user;

$product_id = 2;
// Create the new order in checkout; you might also check first to
// see if your user already has an order to use instead of a new one.
$order = commerce_order_new($user->uid, 'checkout_checkout');
// Save the order to get its ID.
commerce_order_save($order);

// Link anonymous user session to the cart
if (!$user->uid) {
commerce_cart_order_session_save($order->order_id);
}

The code has been tested and works

Перезагрузка форм на AJAX в Drupal 7

На примере панели в уберкарт


function mymodule_uc_order_pane() {
$panes['payment_asd'] = array(
'title' => t('textfield'),
'class' => 'pos-left-text',
'callback' => 'mymodule_pane_callback',
'weight' => 6,
'desc' => '23242',
'show' => array('view'),
);

return $panes;
}

The code has been tested and works

Выбор диапазона значений в раскрытом фильтре Views с помощью виджета jQuery UI Slider

1. Добавляем один или несколько раскрытых фильтров (в примере это фильтр по Nid) и в качестве оператора выбираем Is between:

2. Реализуем хук hook_form_views_exposed_form_alter() в котором подключаем jQuery UI Slider, скрипт инициализации слайдера, стиль и экстра разметку:

The code has been tested and works

Как в 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:

The code has been tested and works

Массовое редактирование полей материалов с помощью Views и Editable Fields

Ситуация — на сайте есть каталог товаров. Каждый товар содержит поле Цена. И нам в срочном порядке нужно изменить цены у всех или части товаров.

Решение в лоб (найти товар, открыть форму редактирования, изменить цену, сохранить) не устраивает большими временными затратами (да и скучно это).

На помощь приходит модуль Editable Fields, который добавляет для полей новый форматтер, позволяющий изменять значения с помощью AJAX прямо в представлении.

The code has been tested and works

Модуль Basic cart — функционал корзины

Модуль Basic cart предоставляет функции корзины на вашем сайте без необходимости устанавки полноценных e-commerce систем вроде Ubercart или Commerce:

 

 

В корзину можно добавлять любые типы материалов, указанных в настройках модуля. После оформления заказа, на e-mail администратора придёт вся информация о покупателе со списком товаров и итоговой ценой.

 

Модуль имеет интеграцию с Views и позволяет выводить кнопку "Add to cart" в представлениях.

The code has been tested and works

Плюсы и минусы Drupal Commerce

Минусы

  1. Не коробочное решение
    Commerce позиционируется как фреймворк. Это значит, что вам придётся самостоятельно продумывать архитектуру магазина, создавать тему, делать каталог, ставить множество дополнительных модулей. Это конечно не совсем минус, но большинство последующих минусов вытекает именно из этого пункта.

  2. Запутанная структура
    Достаточно сложно разобраться во внутренней структуре коммерца и понять как это всё между собой работает. Без практики и дебагера никак.

The code has been tested and works

Создание фасетной навигации с помощью Search API

Инструкция по созданию фасетной навигации с логикой работы как в большинстве интернет магазинов.

Предполагается что Search API уже настроен и создан Views по индексу.

  1. Включаем модуль Search facets из состава Search API.

  2. Добавляем в индекс поля, по которым будет осуществляться фасетная навигация. Например тип материала и теги:

The code has been tested and works
Subscribe to RSS - Commerce