親愛的,我們重新發明了購物車

陳昱安
Dcard Tech Blog
Published in
6 min readAug 18, 2022

大家好,我是 Dcard Frontend Team 的 Yuna,目前是屬於 EC Delivery Team 的開發成員,主要負責 Dcard「好物研究室」的 web 前端開發。

只是想給大家看看可愛的狗勾

最近好物研究室新增了購物車的功能,終於可以一次把想買的東西一起結帳了!👏👏👏 這個看似簡單的功能,實質卻花了 EC 團隊一整年的時間開發。這篇文章就來帶大家了解 EC 在這一年的架構升級,究竟做了些什麼改動,以及對後續的開發帶來什麼影響。

好物研究室

好物研究室 LOGO

好物研究室是 Dcard 自 2018 年中開始的電商專案,希望能透過 Dcard 上內容討論的趨勢、加上選品專員的選物眼光,找出 Dcard 使用者會喜歡的品項,並且在 Dcard 中透過文章去「燒」到使用者,創造討論,並藉由使用者們的討論、及購買人的真實回饋,建立起對於好物品質的信賴感,致力於「打造讓人購物不後悔的選物平台」。

因為好物研究室是新型態的社群電商,產品在過去的幾年內快速迭代新版本,不斷推出新功能到市場上驗證定位。為了因應功能的快速改動,到現在最新版本的 3.0 ,已經調整過兩次架構。

好物研究室 1.0

好物研究室始祖,使用 webview 及 iframe 將購物流程內嵌在 App 及 Web 中,是以現有的廣告活動擴充出來的簡單架構。在這個時候還沒有所謂 Product 的概念,庫存的所有屬性都是在 Campaign 上。當時是以 MVP 的形式開發,快速將產品推進市場中測試。

好物研究室 2.0

在驗證電商在 Dcard 上是可行的以後,原有的陽春架構已經沒辦法滿足越來越多樣化的營運需求,在 2020 年初 EC delivery team 正式成立,準備打掉重來開發新的架構。

架構擴充為幾個單位:供應商(Supplier)、活動(Campaign)、商品(Product)、最小庫存單位(SKU),並沿用原本活動綁文章的架構。 除此之外還將原本 webview 的購物流程改成 native ,讓使用者有更好的購物結帳體驗。

2.0 的問題

2.0 的架構在線上跑了一年多,漸漸還是遇到了一些問題,其中最難以解決的就是要實作購物網站最基本的「購物車」窒礙難行。Product 都被包在 Campaign 裡面,一些優惠、運費、分類等屬性還是綁在 Campaign 上,無法支援跨 Campaign 結帳,要湊免運費就比較困難。

後來營運夥伴們會將一些相似或同廠商的 Product 放到同個 Campaign 裡面來模擬購物車的概念,然而每篇文章主要還是介紹其中一個商品,在選擇商品規格的地方就會看起來有很多無關的東西在一起,讓人很困惑。

好物研究室 3.0

為了一勞永逸解決這些問題,好物團隊決定再做一次架構的改動,歷時一年的 3.0 專案就此開始。最核心的重點就是把 Campaign 這層多餘的架構拔掉,讓整體更簡單也更接近電商架構,並保有 Dcard 的文章特色,同時還優化了使用者與內部後台的使用介面。

3.0 專案的種種困難

乍看之下這個專案只是把 Campaign 層抽掉,那不是把所有屬性指回 Product 就好了嗎?為什麼需要花到一年的時間呢?

  1. 涉及範圍太廣
    Dcard 的架構是由多個 micro service 組成的,好物研究室也不例外,幾乎所有 service 都要因應這個改動重新確認每個 service 要怎麼設計,api endpoint 及帶的參數也要跟著調整。
  2. 前端 ui 改動
    除了 to c 端以外,肯定還有一個上架商品、設定優惠等的後台,因為有了 2.0 的開發經驗,這次在 UX 上有了十分大的改動,操作流程也改善了不少。對於前端來說除了小改 to c 介面以外,也重新做一個新的後台。
  3. 新舊系統並存
    因為 app 只要一 release 出去,扣有做什麼改動都需要使用者端主動更新,一定會有一部分的人不更新 app ,那就要考慮新舊系統要如何相容。而 web 前端甚至同時存在 2.0 與 3.0 的商品,在開發的時候就必須考慮各種狀況。
  4. 資料 migration
    好物研究室有上千樣商品,開發完新的系統後總不能叫營運夥伴一個一個上架,因此我們花了將近一個月的時間討論、規劃如何將原本的資料 migrate 到新系統,有新的欄位但舊資料沒有該如何解決等等問題都是很大的考驗。

好物研究室的下一步👣

在 3.0 的架構下,不僅完成了期待已久的購物車,使用體驗也更接近一般使用的電商平台。接下來的目標會放在建立給廠商使用的後台,讓使用者們能最快接觸到第一手新品。另外也正在建立最真實的商品回饋機制,延續 Dcard 用戶勇於分享的特性,幫助使用者做消費決策。

看到這裡還不手刀把購物車的商品打包帶走 👉 https://www.dcard.tw/goods

最後最後工商一下,Dcard 現在積極招募 Senior Frontend DeveloperFrontend Developer 喔!

--

--