Quantcast
Channel: Drupal - commerce
Viewing all articles
Browse latest Browse all 344

Commerce "Добавить в корзину"или "Заказать" [РЕШЕНИЕ]

$
0
0

Сообщество добрый день.
Столкнулся с проблемой и кажется сам решил ее :-)

Интернет магазин на базе Commerce 7.x-1.13:
товар в наличии -> работает кнопка "Добавить в корзину"
товара нет в наличии -> работает кнопка "Заказать"

Что сделал. Скачал модуль Commerce Buy One Click 7.x-1.9

Этот модуль добавляет к форме добавления товара в корзину кнопку "Buy now with 1-Click" ("Купить в один клик"), по нажатию на которую во всплывающем окне (fancybox) выводится форма, в которую покупатель вводит свои данные. (Спасибо ссылке)

В итоге получилось 2 кнопки в одной форме "Добавить в корзину"и "Купить в один клик" ("Купить в один клик"переименовал в "Заказать").

Очень хотелось управлять статусом, т.е. кроме состояния 1- Активный и 0-Отключено добавить статус 2-Заказать.

Для этого внес изменения в код модулей:
commerce_product.forms.inc:57,

<?php
//Было
    
'#options' => array(
      
'1' => t('Active'),
      
'0' => t('Disabled'),

//Стало
    
'#options' => array(
      
'2' => t('Zakaz'),
      
'1' => t('Active'),
      
'0' => t('Disabled'),
?>

commerce_product.inline_entity_form.inc: 191

<?php
//Было
        
'#options' => array(=> t('Active'), => t('Disabled')),
//Стало       
       
'#options' => array(=> t('Zakaz'), => t('Active'), => t('Disabled')),
?>

inline_entity_form.module:153,

<?php
//Было   
return array(
    
=> t('Disabled'),
    
=> t('Active'),
  );

//Стало   
return array(
    
=> t('Disabled'),
    
=> t('Active'),
    
=> t('Zakaz'),
  );
?>

Итак, статус появился...

Далее разрешил выводить продукты со статусом 1 и 2, со статусом 0 - продукты по прежнему не выводятся.
commerce_cart.module: 1783

<?php
//Было   
$products commerce_product_load_multiple($product_ids, array('status' => 1));
//Стало (ввел новую переменную)
  
$cawa_arr['status'] = array(12);
  
$products commerce_product_load_multiple($product_ids$cawa_arr);
?>

Итак, все работает. Осталось разобраться с кнопками, чтобы одна появлялась. а другая исчезала.
Для этого в template.phpтемы добавил функцию:

<?php
function ТЕМА_form_alter(&$form, &$form_state$form_id) {
  if (
strpos($form_id"commerce_cart_add_to_cart_form") === 0) {
    if (isset(
$form['product_id']['#value'])) {
      
$product commerce_product_load($form['product_id']['#value']);
      if(
$product->status == '2'){
        unset(
$form['submit']);// т.е. "Заказ", удаляю кнопку "Добавить в корзину"
    
$form['commerce_buy_one_click_button']['#disabled'] = FALSE;
      } else {
        
$form['submit']['#disabled'] = FALSE;
    unset(
$form['commerce_buy_one_click_button']);// т.е.  "Добавить в корзину", удаляю кнопку "Заказ"
    
}}}}
?>

ИТОГО: Пока все работает... Кликаю "Заказать" - высвечивается форма обратной связи.
Далее - я по почте получаю извещение о заказе и ВАЖНО Заказ отражается у меня в заказах.

Версия Drupal: 
Тип материала: 
Ключевые слова: 
Модули и темы: 
0 Спасибо

Viewing all articles
Browse latest Browse all 344

Trending Articles