Drupal 7.x

Drupal commerce - 從代碼建立訂單


Drupal commerce 己經成為 Drupal 電子商務應用的主流了,ubercart 落伍了

Ubercart 是一個源自 Drupal5.x 世代的方案
而為了使用 Drupal7 方便的 entities,和令電子商務方案使用一個「弱品牌化」的名字,Drupal commerce 誕生了

但因為 Drupal commerce 龐大的代碼量,為了方便分散工作,代碼都打散到不同的模組,各自有他們的維護者
再加上為數不少的 dependencies 令上手的難度過大
所以 Drupal commerce kickstart 便將一個完整的電子商務網站包裝起來
只需要下載安裝,匯入範例便可以立即使用了

這次的開發和前一次類似,從代碼建立將貨物放到訂單:

Create Drupal commerce order programatically


Drupal commerce had become the major implementation of all-in-one ecommerce solution, from ubercart.

Ubercart was long from Drupal5.x era
To work with entities that build-in Drupal7, and also make Drupal's commerce solution brand-less, Drupal commerce was born.

Custom feeds tamper plugin

feeds tamper module can map multiple columns inside a CSV to the same field as multiple value
But there is a constraint, each field can only "rewrite" once
For example, convert
abc.jpg
to
sites/default/files/abc.jpg
and then multiple them into
sites/default/files/abc.jpg,sites/default/files/def.jpg
Two rewrite is needed in this case
There is no solution from feeds tamper module, you can only use a full path inside the CSV to skip the first rewrtie

客製自定義 feeds tamper plugin

feeds tamper 是一個可以將多個 CSV column map 到同一個多值欄位 (multiple value) 的 module
但問題是使用 "rewrite" 只可以在一個 column 使用
例如要將:
abc.jpg
變為
sites/default/files/abc.jpg
再變為多值
sites/default/files/abc.jpg,sites/default/files/def.jpg
就需要在 image 欄位使用兩次 rewrite
feeds tamper 無辦法解決,只可以在 CSV 上直接使用 full path

但把心一橫,自己寫一個對應 list 的 prefixer 都不是太難

abc.jpg,def.jpg
變為
sites/default/files/abc.jpg,sites/default/files/def.jpg
就只需要一次 rewrite 了

Hong Kong Economic Journal Forum revamp

It has been a while since my last post on this blog
Since we just have this project finished, and slowing moving to maintenance mode
This will be a great time to write something about the porject, before I forget everything

Snapshot: 

信報論壇 revamp

都有一段時間忙得要死,沒有更新這個 blog 了
這次的 project 總算順利完成,穩定進入維護階段的同時
花點時間寫一寫這次使用 Drupal 的經驗好了

這個在三月中開始版面設計的網站,當然是使用 Drupal7 開發
結構上不算太複雜,只有首頁,文章內頁,用戶頁,「著名博主」頁
但因為用戶可以自行編寫文章,node edit form 都需要使用客製化的 theme
而且那個 form 需要一定程度的簡化,令一般使用者可以比較容易上手

在網站也使用了 responsive web design 的版面設計
令手機的使用者可以使用一個比較簡單的版面
但 js based 的 responsive 有反應慢,需要等待 js 執行的問題
有機會再和大家分享這方面的心得

Snapshot: 

自定義 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 給客人選擇
完美解決客人和管理者的易用性問題

Customize Drupal commerce checkout flow

Commerce is the new born from ubercart developers For Drupal 7.x

Background information

ubercart had long been the e-commerce solution for Drupal 6.x
but it is some what different from other modules, it existed away from Drupal.org (www.ubercart.org)
So Drupal community is trying to merge back to Drupal.org and some conflicts happens
Some developers decided to start from scratch and build a new e-commerce solution for Drupal 7.x
and hence the born of commerce module

Custom Rules action example

The actions being used inside rules and actions in trigger is not the same
But we can still take code example from rules/modules/*.rules.inc
and you will see lots of "core - optional" module rules

Rules action example module:

自定義 Rules action 例子

Rules 內的 action 原來和 trigger 使用的,Drupal 原生的 action 是不相同的
大家可以參考 rules/modules/*.rules.inc 便會看到很多 core - optional 的 module 的 rules

我寫一個 rules action 的 example module:

Pages

Google