Drupal Commerce

Как перевести "Order total" в Drupal Commerce

В Drupal Commerce имеется очень неприятная проблема, с которой приходится сталкиваться каждый раз при создании очередного магазина. Проблема тянется очень давно. Почитать начало можно тут, там же ссылки, по которым можно перейти и почитать ишью. Решение, которое предлагается, мне не нравится, потому что ставить дополнительные модули, несущие громоздкий функционал для перевода пары строк - помоему маразм, патчить модули - тоже не интересно, каждый раз при выходе новой версии модуля - тратить время на патч модуля мне как то не интересно.

Какие же есть решения?

Первое решение...

Benya

Большие цены в Drupal Commerce

В Drupal Commerce имеется одна неприятная особенность, с которой может столкнуться каждый. Проблема заключается в том, что в базе данных у цен размер равен int(11). Но существует ряд стран, например Беларусь, где цена 30 000 000.00 и больше - вполне нормальное явление. И тут начинаются проблемы, при попытке оформить заказ с такой ценой - система безотказно будет информировать нас о том, что цена выходит за границы размера поля.

Чтобы исправить эту проблему, имплементируем хук hook_field_create_field():

<?php

/**
 * Implements hook_field_create_field().
 */
function...
Benya

Как вывести способы оплаты в виде таблицы в Drupal Commerce

Для того, чтобы вывести доступные способы оплаты заказа в виде таблицы в Drupal Commerce, необходимо добавить следующий код в свой модуль:

/**
 * Implements hook_form_FORM_ID_alter().
 */
function example_form_commerce_checkout_form_review_alter(&$form, &$form_state) {
  $header = array(
    'payment' => t('Payment'),
    'description' => t('Description'),
  );
  
  $checkout_pane = commerce_checkout_pane_load('commerce_payment');
  foreach ($form['commerce_payment']['payment_method']['#options'] as $key => $option) {  
    $method_info = $form['commerce_payment']['...
Benya

Как создать дополнительную страницу в оформлении заказа в Drupal Commerce

Для начала имплементируем хук hook_commerce_checkout_page_info, в нем нам необходимо добавить информацию о создаваемой странице. Список возможных свойств страницы:

  • page_id - машинное имя страницы, допускается использование строчных букв и цифр, а так же символов "-", "_"
  • title - название страницы, используемое при оформлении заказа
  • name - переводимое название страницы, используемое в административных страницах, а так же соответствует статусу заказа на данной странице, если не указано, то по умолчанию используется название страницы
  • help - переводимый текст, который будет показан...
Benya

Делаем красивое уведомление при добавлении товара в корзину в Drupal Commerce

Сегодня я расскажу о том, как сделать красивое уведомление, в котором будет показываться информация об добавляемом товаре после добавления товаров в корзину в Drupal Commerce с помощью Ctools modal API.

Для начала, создадим вьюз, который будет принимать аргумент добавляемого товара и выводить информацию о нем. Это придаст гибкости и в случае необходимости изменения информации о товаре нам не надо будет лезть в код. Показывать сам вьюз я не буду - это будет маленькое домашнее задание.

После того, как создали вьюз, первым делом создаем модуль, который поможет решить поставленную...

Benya

Как создать панель для оформления заказа в Drupal Commerce

Первым делом имплементируем хук hook_commerce_checkout_pane_info, в нем нам необходимо добавить информацию о создаваемой панели. Полный список свойств панели:

  • pane_id - машинное имя панели, допускается использование строчных букв и цифр, а так же символов "-", "_"
  • title - название панели
  • name - имя панели, используемое при отображении на административных страницах, если не указано, используется title
  • page - page_id на странице оформления заказа на которой панель должна появиться по умолчанию; по умолчанию checkout
  • collapsible - будет ли панель сворачиваемая; по умолчанию FALSE
  • ...
Benya