Commerce 止痛藥:Product Display Manager 與 Commerce VBO Views

由於 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 這個模組主要是用來連結產品和產品顯示兩者,減少連結過程中的操作步驟,並提供整體性的連結資訊,讓你可以一目了然所有產品與產品顯示連結的現況,減少不必要的茫然和誤解。

圖1安裝好了 PDM,你會在管理選單中的 Commerce -> Produce 底下找到 Display manager 這個項目,點選會進入 Commerce 商品列表管理頁中由模組所新增的頁籤 "DISPLAY MANAGER" 。在這個頁籤中,你會看到你所建立的所有產品項目,而如果這些產品已經被「裝配」到某個產品顯示裡頭的話,就可以看到「產品顯示 - 產品」的從屬關係,如右圖 1 所示。在圖 1 中可以看到「南瓜」這個產品顯示下方只有一個「南瓜」產品,而「地瓜」下方則有三種不同品種的地瓜產品。(如果你的商店裡頭沒有複雜、多階層的品項分類,那麼這一頁中的產品內容應該都會像這裡的「南瓜」一樣,產品和產品顯示具有同樣的名稱)

圖 2如果有些產品尚未被「裝配」到產品顯示中,你就會在頁籤的底部看到這些產品被放在 "Product not assigned to any display node" 的區域,如左圖 2 所示。你可以直接拖拉產品前方的十字圖示,將它們「裝配」到上方任一個現有的產品顯示中,按下「儲存」即可。

圖 3圖 4而如果該產品沒有合適的產品顯示可供裝配,你可以點選產品右方的「編輯」連結,進入產品編輯頁。在產品編輯表單下方,你會看到 PDM 模組所新增的 "Referenced by" 欄位區,如右圖 3 所示。在這個區段中,你可以按下 "New display node" 直接替這個產品新增一個產品顯示節點標題,如右圖 4 所示。按下「儲存商品」按鈕之後,系統會自動建立一個擁有此標題的產品顯示節點,並將兩者透過 product reference 欄位連結起來。

圖 5

或者你可以點選圖 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)" 的字樣。

圖 6用過或熟悉 VBO 模組的人應該都了解這些頁面是由 Views 所建置的,所以可透過變更對應 view page 的設定來客製化相關的管理項目。比較特別的是,VBO 6.x 的相關選項是在 view display 裡頭做設定,但是在 VBO 7.x 裡頭則變成一個欄位項目,所以要從 filed 裡頭拉出來放在表格中。CVV 只是替你省了一些設定上的功夫,幫你預先裝好與產品有關的露出過濾器 (exposed filter),方便你可以快速過濾想要編輯的產品,同時利用 VBO 提供的批次變更功能,讓你可以一次變更多個產品的某個或多個欄位值。你可以根據需求改裝這些 view page,做成你想要的商品管理頁。如右圖 6 所示。

圖 7CVV也預裝了一個 "PRODUCT DISPLAY (VBO)"的頁籤,目的應該是用來處理產品與產品顯示的連結。不過這一頁預設的管理介面和內容管理差不多,所以你得手動變更相關設定來達到連結的功能。主要的訣竅就在於先用過濾器過濾出「產品顯示」類型的節點,並啟用 VBO 欄位中的 "Modify entity values" 項目,選取「產品顯示」中的 "Product" (也就是 product reference)欄位。如此就可以在一個管理頁面中,在上方的 product 欄位中選取多個產品,再勾選下方所欲裝配的某個產品顯示節點,做批次性的變更。如左圖 7。透過這樣的方式,你也可以將同一個產品一次裝配到不同的產品顯示節點中,端看你要怎麼配置兩者的組合。

進階影片:

結語

任何的學習過程都有艱難的一面,而學習 Commerce 的難處之一就在於如何克服產品與產品顯示兩者的煩冗連結流程。希望透過介紹 PDM 與 CVV 這兩劑止痛藥,可以讓你攀爬 Commerce 陡峭的學習曲線時少痛苦一些、多一點創作的樂趣。

Area: