開發 WooCommerce 商品匯入暨自動產生工具

在 WooCommerce 與 OpenCart 的競速計畫 的進行過程中發現,目前網路上並沒有強大的 WooCommerce 隨機商品產生器,雖然有著為數不少的商品匯入外掛可以配合使用,但這類外掛通常設計複雜,若有需要修改調整,都不太好下手。

由於在社團上發佈了 WooCommerce 與 OpenCart 萬筆商品等級的網站,與網友分享討論,收到不少建議,其中有位商家委託我們協助轉入他的商品資料到 WooCommerce ,是一家擁有 86 萬筆商品的書店,這使得我們決定自行開發一個高效率的 WooCommerce 商品匯入工具,以處理當前這位商家的需求,以及為未來更多此類商家需求做好準備。

在這裡簡單分享基本的觀念與做法,首先,我們必須了解商品資料儲存在 WooCommerce 資料庫中的資料格式,最簡單的做法是,用內建的商品匯入功能,匯入單一筆商品資料,然後再查看資料庫中所新增的資料紀錄,以及資料的儲存格式,還有關聯資料紀錄 。

因為採用的方式是直接將商品資料寫入資料庫,而不是透過 WooCommerce 的機制,所以匯入程式必須設計好資料的檢核,或產生合理的資料紀錄,雖然必須耗費精神設計資料正確性的檢核問題,來替代 WooCommerce 內建的機制,但這部分也正是能加快速度的關鍵,否則依內建匯入功能的效率,應該很難處理萬筆以上的商品,更何況是面對近百萬筆商品的任務。

自行開發的這套匯入工具,並不負責產生多種圖片縮圖的工作,因為我們認為市面上有很多圖檔管理軟體可以提供這方面的作業,而且產生縮圖的速度也會比使用 Web 程式來得快,甚至有些軟體還提供優異的演算法,能產出不錯的縮圖品質,所以我們的匯入工具,只處理圖片檔名的紀錄,縮圖工作將交由圖檔管理軟體負責。

把資料來源的部分,改成以亂數方式隨機產生品名、所屬分類、數量、價格、圖片檔名,就可以將商品匯入改成商品資料產生器,由於跳過了 WooCommerce 繁複的資料檢核、縮圖產製,所以商品資料的產生速度極為理想,以低階的桌機(I3-6100 + 8GB RAM),產生10萬筆商品資料,大約需要45分鐘左右,雖然比不上我們自行開發的 OpenCart 商品產生器的產製速度,不過與之前使用 WooCommerce 內建的商品匯入功能相較,速度已大幅提升。