Предварительно ознакомился с модулями Express Checkout и Buy One Click и One Click Buy.
Они немного не подходят.
А что хочется настроить.
1. Оставить кнопку "Добавить в корзину" и добавить "Купить в один клик". Расположить их рядом, в разных дивах.
2. При нажатии на кнопку "Купить в один клик" сразу переходим в checkout, где пользователь может выбрать метод оплаты, заполнить личные данные.
3. После нажатия кнопки "Продолжить оформление" попадаем сразу в платежные системы, т.е. пропускаем проверку заполненных данных.
Спасибо.
Комментарии
Корзина - это Views - там можно добавить ссылку на Купить в один клик, ссылка в тот же checkout, но с параметром ?buynow=1
Черех Rules проверяй этот параметр, и если есть, то после checkout перекидывай на payment...
Установил модуль [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_id, drupal_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_id, drupal_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 НЕ МЕНЯЕМ!
результат