自定義 Drupal commerce 付款流程

Commerce 是 Drupal 7.x 電子商務的最新模組

背景資料

ubercart 一直為 Drupal 6.x 電子商務的指定模組
但它和其他的模組有一點點的不同,它的主站並不設在 Drupal.org (www.ubercart.org)
所以 Drupal 社區嘗試將它移回 Drupal.org 的時候就發生了一些磨擦
有一些開發者便決定為 Drupal 7.x 的電子商務重新出發
所以便誕生了 commerce 模組了

最近的更新

Commerce 模組已經開發了一年以上,而且各方面都越加成熟了

Variations

那 "display node" 的易用性的問題已經用一個全新的 "variations" 概念完美的解決了
你可以建立一個產品然後增加那個產品的 "Color variations","Size variations" 等等
它們會在同一個頁面顯示,而 variations 會化為一組 dropdown 給客人選擇
完美解決客人和管理者的易用性問題

Commerce kickstart

Commerce kickstart 是一個包括了很多模組的 Drupal "Profile"
它安裝的時候有更多的預設的設定令你建立一個電子商務的網站更加容易
你還可以匯入一些商品範例,體驗一下真實的情況之下網站的設定和流程
令你可以在數分鐘之內開始評估網站對你的適用性
這絕對是學習曲線的一大進步

自定 Checkout 流程

checkout 流程可以在 "Checkout Settings" 中定義
拖曵去修改流程中的每一步的每一組表單
所以如果你知道修改/增加步驟的方法
便可以實現一個完全客製的流程了

代碼

最重要的兩個 functions 是 hook_commerce_checkout_page_info()hook_commerce_checkout_pane_info()
可以定義 "步" 和 "表單"

<?php
/**
 * hook_commerce_checkout_page_info()
 */
function custom_checkout_commerce_checkout_page_info() {
 
$checkout_pages = array();

 
$checkout_pages['custom_checkout'] = array(
   
'title' => t('Custom Step'),
   
'weight' => 6,
  );

  return
$checkout_pages;
}

/**
 * hook_commerce_checkout_pane_info()
 * @param  string $value [description]
 * @return [type]        [description]
 */
function custom_checkout_commerce_checkout_pane_info($value='')
{
 
$checkout_panes = array();

 
$checkout_panes['custom_checkout'] = array(
   
'title' => t('Custom Checkout'),
   
'page' => 'custom_checkout',
   
'weight' => 2,
   
'review' => TRUE,
   
'callbacks' => array(
     
'checkout_form' => 'custom_checkout_pane_checkout_form',
    ),
  );

  return
$checkout_panes;
}
?>

Easy easy!

Google