Форма быстрого заказа

Раздел форума: 

Добрый день! Возможно ли в commerce реализовать "Форму быстрого заказа", чтобы товар добавлялся в корзину при вводе артикула. 

На странице быстрого заказа поля для заполнения:

Артикул | Количество

Внизу страницы кнопочки "Добавить строки" и "Добавить в корзину"

Например:

 

Добавить комментарий

Войти, используя Loginza Google Account Yandex Mail.ru Vkontakte Facebook

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
Прикрепить
Максимальный размер файла: 128 МБ.
Разрешённые типы файлов: txt doc docx rar zip xls xlsx pdf odf odt jpg jpeg gif png psd rtf.

Частично решил с помощью

Частично решил с помощью блока 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;
}