由於 8月嘉義小聚討論情況熱烈,本來準備花個一小時做簡介的 Drupal 7 Commerce 得延到 9 月嘉義小聚講,多了一點時間可以把講題做的充實一點。今天 google 一下 Drupal Commerce 的中文資料時發現一些相關討論,比方說 Drupal Commerce 中文化,以及 Drupal Commerce模块使用指南。在討論中一個常見的抱怨就是「為什麼新增產品的流程這麼複雜?」、「把產品與產品顯示分離的意義何在?」。而我在 Drupal Commerce 概念架構 這篇文章也有提過說,如果 1. 你熟悉 ubercart 的架構與操作模式,與 2. 你不了解 Commerce 的概念架構,或者 3. 你的商務網站很單純、不需要多層次的分類方式,那麼你就很容易對 Commerce 有這種負面看法。
我想對很多人來說,任何的概念架構與操作習慣的轉換都是很痛苦的一件事。只有預先看到改變能夠帶來什好處或希望,人們才願意接受眼前短暫的痛苦而一步步做出變革。Drupal Commerce 概念架構 一文我已經略提過 Commerce 的新設計可以帶來什麼樣的彈性與發揮空間,大家也可以到官方網站上去看看一些應用案例,了解一下 Commerce 實際上能夠做到什麼樣地步。這篇文章的目的是要介紹一些好用的模組,提供一些「止痛藥」(不是「解藥」),減輕一些 Commerce 使用者在變革或學習過程中承受的痛苦。
Product Display Manager
第一個模組是 Product Display Manager (以後簡稱 PDM)。PDM 這個模組主要是用來連結產品和產品顯示兩者,減少連結過程中的操作步驟,並提供整體性的連結資訊,讓你可以一目了然所有產品與產品顯示連結的現況,減少不必要的茫然和誤解。
安裝好了 PDM,你會在管理選單中的 Commerce -> Produce 底下找到 Display manager 這個項目,點選會進入 Commerce 商品列表管理頁中由模組所新增的頁籤 "DISPLAY MANAGER" 。在這個頁籤中,你會看到你所建立的所有產品項目,而如果這些產品已經被「裝配」到某個產品顯示裡頭的話,就可以看到「產品顯示 - 產品」的從屬關係,如右圖 1 所示。在圖 1 中可以看到「南瓜」這個產品顯示下方只有一個「南瓜」產品,而「地瓜」下方則有三種不同品種的地瓜產品。(如果你的商店裡頭沒有複雜、多階層的品項分類,那麼這一頁中的產品內容應該都會像這裡的「南瓜」一樣,產品和產品顯示具有同樣的名稱)
如果有些產品尚未被「裝配」到產品顯示中,你就會在頁籤的底部看到這些產品被放在 "Product not assigned to any display node" 的區域,如左圖 2 所示。你可以直接拖拉產品前方的十字圖示,將它們「裝配」到上方任一個現有的產品顯示中,按下「儲存」即可。
而如果該產品沒有合適的產品顯示可供裝配,你可以點選產品右方的「編輯」連結,進入產品編輯頁。在產品編輯表單下方,你會看到 PDM 模組所新增的 "Referenced by" 欄位區,如右圖 3 所示。在這個區段中,你可以按下 "New display node" 直接替這個產品新增一個產品顯示節點標題,如右圖 4 所示。按下「儲存商品」按鈕之後,系統會自動建立一個擁有此標題的產品顯示節點,並將兩者透過 product reference 欄位連結起來。
或者你可以點選圖 3 中的 "Existing node display" 連結,透過輸入節點標題來查找現有的產品顯示節點 ID,而將產品連結到該節點。如右圖 5 所示。
透過 PDM,我們可以免去「先建立產品、再建立產品顯示節點、然後在產品顯示中的 product reference 欄位中查找對應產品」這樣繁複的步驟與流程,快速地在產品建立/編輯表單中就完成建立與連結產品顯示的工作。也可以在一目了然的列表頁籤中,清楚看出兩者之間的關聯。是不是非常方便呢?
相關影片:
Commerce VBO Views
另一個本文要介紹的模組是 Commerce VBO Views(之後簡稱CVV),從名稱看大家應該就知道這是專門替 Commerce + Views設計的批次管理工具。安裝 CVV 模組之後(當然你得先裝好必要的 VBO 模組),它會自動覆寫掉 Commerce 透過 Views 模組所產生的管理頁籤內容,改成 CVV 預設的管理介面。你會看到 CVV 所改寫過或新增的管理頁籤後面都會加上 "(VBO)" 的字樣。
用過或熟悉 VBO 模組的人應該都了解這些頁面是由 Views 所建置的,所以可透過變更對應 view page 的設定來客製化相關的管理項目。比較特別的是,VBO 6.x 的相關選項是在 view display 裡頭做設定,但是在 VBO 7.x 裡頭則變成一個欄位項目,所以要從 filed 裡頭拉出來放在表格中。CVV 只是替你省了一些設定上的功夫,幫你預先裝好與產品有關的露出過濾器 (exposed filter),方便你可以快速過濾想要編輯的產品,同時利用 VBO 提供的批次變更功能,讓你可以一次變更多個產品的某個或多個欄位值。你可以根據需求改裝這些 view page,做成你想要的商品管理頁。如右圖 6 所示。
CVV也預裝了一個 "PRODUCT DISPLAY (VBO)"的頁籤,目的應該是用來處理產品與產品顯示的連結。不過這一頁預設的管理介面和內容管理差不多,所以你得手動變更相關設定來達到連結的功能。主要的訣竅就在於先用過濾器過濾出「產品顯示」類型的節點,並啟用 VBO 欄位中的 "Modify entity values" 項目,選取「產品顯示」中的 "Product" (也就是 product reference)欄位。如此就可以在一個管理頁面中,在上方的 product 欄位中選取多個產品,再勾選下方所欲裝配的某個產品顯示節點,做批次性的變更。如左圖 7。透過這樣的方式,你也可以將同一個產品一次裝配到不同的產品顯示節點中,端看你要怎麼配置兩者的組合。
進階影片:
結語
任何的學習過程都有艱難的一面,而學習 Commerce 的難處之一就在於如何克服產品與產品顯示兩者的煩冗連結流程。希望透過介紹 PDM 與 CVV 這兩劑止痛藥,可以讓你攀爬 Commerce 陡峭的學習曲線時少痛苦一些、多一點創作的樂趣。