Форма быстрого заказа
Добрый день! Возможно ли в commerce реализовать "Форму быстрого заказа", чтобы товар добавлялся в корзину при вводе артикула.
На странице быстрого заказа поля для заполнения:
Артикул | Количество
Внизу страницы кнопочки "Добавить строки" и "Добавить в корзину"
Например:
Частично решил с помощью блока Commerce direct buy
Буду дорабатывать!
Возник только один ламерский вопрос (что-то затупил))): как в представление впихнуть блок или только в ноду возможно?
Если есть готовые решения ткните носом куда копать пож.! Спасибо!
Если именно "впихнуть", то можно через шаблоны Views:
Темизация Drupal урок 6 Темизация Views slideshow и jcarousel
Спасибо за урок!
Скажите пож. а в модуле Commerce direct buy есть возможность сделать несколько одинаковых полей с одной кнопкой "оформить заказ"?
Я не знаю, вам проще сделать небольшую форму и на submit этой формы сделать небольшую обработку с добавлением товаров по артиклу в корзину через эту функцию:
commerce_cart_product_add()
http://drupalcontrib.org/api/drupal/contributions!commerce!modules!cart!commerce_cart.module/function/commerce_cart_product_add/7
здесь можно почитать подробнее:
http://drupal.org/node/1288414
Это чтобы начать писать модуль:
Создаем модуль на друпал, быстрый старт
Чтобы создать блок:
Drupal hook_block_info() и hook_block_view() выводим информацию в блоке
Чтобы вывести страницу:
Hook_menu drupal создание страниц через модуль
Это чтобы форму сделать:
Form API Drupal создание форм на Друпал
Это пример, чтобы добавить обработку формы на submit:
Добавление страницы:
function custom_menu(){ $items['admin/config/balloons'] = array( 'title' => "Разные настройки сайта", 'description' => t("На этой странице настраивается поиск."), 'position' => 'right', 'weight' => -5, 'access arguments' => array('administer site configuration'), 'page callback' => 'system_admin_menu_block_page', 'file' => 'system.admin.inc', 'file path' => drupal_get_path('module', 'system'), ); $items['admin/config/balloons/works'] = array( 'title' => 'Поиск Наши работы', 'description' => t('настройка цены для слайдера.'), 'page callback' => 'drupal_get_form', 'page arguments' => array('featured_works'), //функция создания формы 'file' => 'includes/works_settings.featured.inc', 'access arguments' => array('administer site configuration'), ); return $items; }
Создание формы:
function featured_works() { $works_price = _works_price_form_default_value(); $form['works_price_min'] = array( '#type' => 'textfield', '#size' => 10, '#maxlength' => 10, '#required' => TRUE, '#default_value' => $works_price['min'], '#title' => t('Минимальная цена'), '#description' => t('Нижняя граница фильтра.'), ); $form['works_price_max'] = array( '#type' => 'textfield', '#size' => 10, '#maxlength' => 10, '#required' => TRUE, '#default_value' => $works_price['max'], '#title' => t('Максимальная цена'), '#description' => t('Верхняя граница фильтра.'), ); $form['works_price_step'] = array( '#type' => 'textfield', '#size' => 10, '#maxlength' => 10, '#required' => TRUE, '#default_value' => $works_price['step'], '#title' => t('Шаг слайдера'), '#description' => t('Дискрет слайдера.'), ); $form['#submit'][] = 'submit_works_price'; //функция обработки на submit return system_settings_form($form); }
Функция обработки на submit формы:
function submit_works_price($form, $form_state) { variable_set('works_price_min', $form_state['input']['works_price_min']); variable_set('works_price_max', $form_state['input']['works_price_min']); variable_set('works_price_step', $form_state['input']['works_price_min']); }
Это функция вспомогательная, чтобы задать начальные значения формы:
function _works_price_form_default_value() { $works_price['min'] = variable_get('works_price_min', 2000); $works_price['max'] = variable_get('works_price_max', 100000); $works_price['step'] = variable_get('works_price_step', 1000); return $works_price; }