Помогите настроить дополнительную кнопку "Купить в один клик" (точнее в два) для Drupal Commerce

Главные вкладки

Аватар пользователя kolotunbobo kolotunbobo 6 сентября 2015 в 17:01

Предварительно ознакомился с модулями Express Checkout и Buy One Click и One Click Buy.
Они немного не подходят.

А что хочется настроить.
1. Оставить кнопку "Добавить в корзину" и добавить "Купить в один клик". Расположить их рядом, в разных дивах.
2. При нажатии на кнопку "Купить в один клик" сразу переходим в checkout, где пользователь может выбрать метод оплаты, заполнить личные данные.
3. После нажатия кнопки "Продолжить оформление" попадаем сразу в платежные системы, т.е. пропускаем проверку заполненных данных.

Спасибо.

Комментарии

Аватар пользователя Nikit Nikit 7 сентября 2015 в 4:09

Корзина - это Views - там можно добавить ссылку на Купить в один клик, ссылка в тот же checkout, но с параметром ?buynow=1
Черех Rules проверяй этот параметр, и если есть, то после checkout перекидывай на payment...

Аватар пользователя mozh mozh 1 октября 2015 в 15:58

Установил модуль [module=commerce_express_checkout]
в файле .module есть функция commerce_express_checkout_generate_checkout_button строка 157 забираем содержимое (меняем return на print)
<?php print '<span style="display: inline-block; padding: 10px; border: 1px solid #CCCCCC; border-radius: 20px; background-color: #EEEEEE;"><a href="'.url("commerce-express-checkout/".$product_id.'/'.drupal_hmac_base64($product_iddrupal_get_private_key().drupal_get_hash_salt()), array('absolute' => TRUE)).'" style="text-decoration: none; font-weight: bold; color: #666688">'.t('Express Checkout').'</a></span>';?>
далее создаем шаблон node.tpl.php для типа материалов товара (у меня node--cards.tpl.php)
в этом шаблоне выводим php dpm($content); ?> (установите сначала модуль devel) и ищем откуда мы можем получить product_id
умен получилось так

<?php
if(isset($content['field_categorey']['#object']->field_card['und'][0]['product_id'])){
    
$product_id $content['field_categorey']['#object']->field_card['und'][0]['product_id'];
    print 
'<span style="display: inline-block; padding: 10px; border: 1px solid #CCCCCC; border-radius: 20px; background-color: #EEEEEE;"><a href="'.url("commerce-express-checkout/".$product_id.'/'.drupal_hmac_base64($product_iddrupal_get_private_key().drupal_get_hash_salt()), array('absolute' => TRUE)).'" style="text-decoration: none; font-weight: bold; color: #666666">'.t('Express Checkout').'</a></span>';
}
?>

вывел этот код под кнопкой корзины
корзины выводится так print render($content['field_card']);
скрин типа контента

и кстати виджет на Express checkout link НЕ МЕНЯЕМ!
результат