← Back to writing
Writing · shopify plus

Shopify Plus Checkout Extensibility cho B2B: Cái gì thực sự ship được năm 2026

By Leo Nguyen · Jul 7, 2026 · 8 min read
Shopify Plus Checkout Extensibility cho B2B: Cái gì thực sự ship được năm 2026
Jump to section

#Câu trả lời ngắn

Năm 2026, một customization checkout Shopify Plus B2B không phải một thứ — mà là stack ba primitive: checkout UI extensions cho phần buyer nhìn thấy và nhập, Shopify Functions cho behavior của cart/payment/shipping, và checkout branding API cho phần surface trông thế nào. File checkout.liquid mà đa số store Plus cũ dùng để hack logic B2B vào đã bị bỏ ở các bước information, shipping, payment, và stack extensibility này chính là cái thay thế (Shopify checkout customization docs).

Đa số store Plus chúng tôi audit qua 50+ dự án bỏ sót cùng một chuyện khi migrate: họ nghĩ theo "feature nào cần build lại" thay vì "primitive nào cần compose". Những customization B2B ship ổn định năm 2026 đều là một UI extension cộng với một Function chạy chung — cặp đôi đó chính là chỗ có leverage.

#Stack B2B checkout 2026

  1. Checkout UI extensions — thêm field, banner, inline logic tại các target ở information/shipping/payment/Thank-you/Order-status.
  2. Shopify Functions — thay đổi behavior cart, payment option, delivery option, hoặc discount, dựa trên cart, buyer, hoặc value đã capture từ extension.
  3. Checkout branding API — style surface đồng bộ với storefront, không đụng layout.
  4. Checkout UI extension targets — các slot cụ thể extension có thể render (trước/sau payment, trong order summary, trên Thank-you, v.v.).

Mọi thứ bạn build cho B2B checkout năm 2026 là composition của bốn cái trên, cộng với B2B primitive đã native trong Shopify Plus — companies, locations, catalog gated, price lists, payment terms.

#Vì sao checkout B2B là nơi deal enterprise mắc kẹt

Retail checkout là shape đã được giải quyết. Cart, address, shipping, payment, xong. B2B checkout là shape mà mọi operation cũ đều có chi tiết bespoke retail flow không capture: số purchase order finance bắt buộc phải có trên hóa đơn, ngày giao warehouse commit, tax-exempt certificate on file, buyer notes cho team nhận hàng, phương thức net-30 không được hiện cho retail shopper, rule order trên ngưỡng phải approve trước khi thanh toán.

Store Plus cũ code hết logic này trong checkout.liquid — file không còn tồn tại ở những bước đó. Failure pattern chúng tôi thấy nhiều nhất trên B2B migration là team spend cả năm build customization checkout trong liquid, phát hiện muộn trong migration window rằng liquid không còn ở checkout, rồi cố nhét cùng logic vào UI extension one-to-one. Không map sạch, vì UI extensions scope theo surface theo thiết kế còn Functions scope theo behavior. Mental model phải đổi.

#5 customization B2B ship ổn định

Đây là các pattern chúng tôi thấy compose phổ biến nhất qua các store B2B Plus nghiêm túc năm 2026. Mỗi cái là một UI extension pair với một Function.

#1. Capture số PO với rule theo ngưỡng

Field PO bắt buộc ở bước information, chỉ render cho B2B buyer. Dưới ngưỡng cart total, PO tùy chọn; trên ngưỡng, PO bắt buộc và checkout block progression tới khi điền. UI extension capture value và attach vào checkout attributes; Function đọc cart total và buyer segment để quyết có enforce không.

#2. Delivery date picker và window

Calendar hoặc delivery window selector ở bước shipping, chỉ show ngày warehouse commit được. Extension capture slot đã chọn; delivery customization Function optional filter shipping method compatible với ngày đã chọn. Fulfillment integration đọc ngày captured từ order — mảnh này team hay quên wire.

#3. Gating phương thức net-terms

Net 15, net 30, net 60, và due-on-fulfillment là payment method native của Shopify B2B (payment terms trong B2B), gated chỉ hiện cho buyer mà company location có template terms tương ứng. Payment customization Function ẩn khỏi retail và khỏi B2B buyer chưa được duyệt credit. Đây là customization bảo vệ team finance khỏi lỗi nhiều nhất.

#4. Tax-exempt certificate upload và validation

UI extension render file-upload widget hoặc field số certificate ở bước information cho buyer flag exempt. Upload attach vào order như metadata; validation banner surface nếu certificate hết hạn hoặc thiếu. Downstream, ERP integration đọc reference certificate cùng order.

#5. Buyer notes và delivery instructions

Field buyer-notes có cấu trúc — một cho accounts receivable, một cho warehouse — thay vì một textarea free-form không downstream system nào parse được. Mỗi notes field là extension target riêng với label và validation riêng; order export chia thành field riêng cho ERP và warehouse management system.

#Shopify Functions unlock gì ngoài checkout surface

Nhóm Function đa số B2B operation kết thúc dùng — ngoài những cái đã thấy ở trên — là:

  • Discount functions, cho volume break và contract price layer trên catalog gated.
  • Cart-transform functions, cho bundled line item, sample-with-order rule, hoặc automatic add-on theo shape cart.
  • Delivery customization functions, reorder, ẩn, hoặc đổi tên shipping option theo buyer hoặc cart.
  • Payment customization functions, như đã đề cập, gating payment method theo segment buyer hoặc cart total.

Mỗi Function được deploy như WebAssembly module compiled chạy trong Shopify infrastructure, nên latency có bound và behavior deterministic. Đó là lý do dùng ở checkout an toàn, nơi mỗi mili-giây latency thêm vào lộ ra ngay ở conversion.

#Đường migrate từ checkout.liquid

Shopify đã document migration từ checkout cũ sang checkout extensibility như upgrade path bắt buộc cho store Plus (checkout customization docs). Riêng cho B2B store, migration không phải lift-and-shift — mà là re-modeling exercise. Từng mảnh logic trong checkout.liquid được sort vào một trong ba bucket:

  1. Surface logic (render field, show banner, capture input) → UI extension ở target đúng.
  2. Behavior logic (đổi payment option, reshape delivery, apply discount) → Function loại phù hợp.
  3. Assisted-selling logic (build order thay buyer, thương lượng giá) → ở lại trong draft-order flow trong admin, không phải checkout tí nào.

Team mắc kẹt ở migration hầu như luôn cố ép bucket 3 logic vào bucket 1 hoặc 2. Self-service checkout không phải chỗ đúng cho assisted selling. Tách hai flow ra thì mỗi nửa trở nên xử lý được.

#Cái gì extensibility vẫn chưa cover

Hai pattern vẫn route qua native draft-order flow, không qua extensibility:

  1. Assisted selling và negotiated quote. Khi sales rep build order thay buyer — giá bespoke không trong catalog rule, order mixed sample và paid, quote cần sign-off trước payment — draft order trong Shopify admin là công cụ đúng. Extensibility là cho self-service path.
  2. Một số flow pre-order và reservation. Payment future-dated cho item chưa fulfill, phổ biến ở wholesale seasonal buying, thường vẫn sạch hơn khi là draft order kèm terms hơn là customization checkout.

Cả hai đều nằm trong B2B feature set native — sai lầm là cố build chúng vào self-service checkout thay vì.

#Failure mode chúng tôi thấy nhiều nhất

  • UI extension capture field, không Function nào act on. Buyer nhập ngày giao. Order ship khi warehouse pull. Field captured là data point, không phải behavior — Function phải đóng loop.
  • Function viết ra nhưng không scope cho B2B buyer. Payment customization ẩn net-terms cho wholesale như định, nhưng cùng Function chạy trên retail cart và ẩn valid retail method. Mỗi Function cần buyer-segment check explicit ở đầu.
  • Extension build cho buying path, admin draft-order flow để nguyên. Rep xử một nửa order qua admin, không cái nào thấy customization. Draft-order flow cần review riêng trong migration, dù customization chỉ ship ở checkout buyer-facing.
  • Không có pre-launch test matrix. Mọi customization checkout B2B nghiêm túc cần walkthrough buyer-by-buyer trước cutover — một representative buyer mỗi pricing tier, mỗi cấu hình payment-terms, mỗi flag exempt. Bỏ matrix là lý do phổ biến nhất một migration đúng kỹ thuật vẫn tạo ra tuần đầu bừa bộn.

#Kết luận

Shopify Plus B2B checkout 2026 không phải file checkout.liquid có nhiều chỗ để hack hơn. Nó là stack primitive — UI extensions cho surface, Functions cho behavior, native B2B cho structure — compose thành mọi customization một wholesale operation thực sự cần. Team ship sạch là team ngừng cố rebuild checkout.liquid và bắt đầu compose stack platform đang cung cấp.

Nếu bạn đang giữa migration và không chắc một customization cũ thuộc extension, Function, hay draft-order flow, một giờ sort đó là giờ leverage cao nhất bạn có thể spend trước khi đụng code.

#Sources

Frequently asked
Shopify Plus năm 2026 có còn hỗ trợ checkout.liquid không?
Không. Shopify đã ngừng hỗ trợ checkout.liquid ở các bước information, shipping, payment như phần của việc chuyển sang checkout extensibility. Các store còn chạy customization checkout cũ ở những bước đó cần migrate sang checkout UI extensions, Shopify Functions, và branding API trước khi upgrade window đóng. Nếu store Plus của bạn vẫn còn checkout.liquid ở những bước này hôm nay, hoặc bạn đang grandfathered ở diện hẹp, hoặc checkout đang chạy config không được support — kiểu nào thì migration cũng là ưu tiên, không phải patch liquid tiếp.
UI extensions cho phép customize được gì trong Shopify Plus B2B checkout?
Checkout UI extensions cho phép thêm custom field, banner, và inline logic tại các extension target ở các bước information/shipping/payment, cộng thêm Thank-you và Order-status. Riêng với B2B, pattern phổ biến là thêm field purchase-order bắt buộc, field buyer notes tùy chọn, delivery-date picker, và tax-exempt certificate upload — mỗi cái attached vào target và chỉ render cho B2B buyer thông qua checkout attributes hoặc metadata của company location. Cái không thể làm là replace tùy ý layout checkout — extensions được scope theo surface theo thiết kế, và constraint đó chính là lý do checkout giữ được performance.
Khi nào dùng Shopify Functions thay vì UI extension?
Dùng UI extensions khi cần render, capture, hoặc validate thông tin ở checkout. Dùng Shopify Functions khi cần thay đổi behavior của cart hoặc checkout. Payment customization ẩn phương thức net-terms khỏi retail, delivery customization reorder hoặc ẩn shipping option cho wholesale, cart-transform inject bundled line item, discount function áp contract price hoặc volume break — tất cả đều là Functions, không phải extensions. Trong thực chiến, đa số B2B checkout customization dùng cả hai: một extension capture input, một Function reshape cart, shipping, hoặc payment dựa trên input đó.
Shopify Plus B2B có hỗ trợ PO và net payment terms native không?
Có. Shopify B2B hỗ trợ native số purchase order và net payment terms trong buying flow — bạn config payment terms (net 15, net 30, net 60, due-on-fulfillment, hoặc due date cố định) thành template và assign per company location, buyer trên terms sẽ thấy chúng như payment option ở checkout, order chuyển sang pending-payment cho tới khi reconcile. UI extensions bổ sung customization on top of native flow: PO field format riêng, delivery window picker, hoặc rule bắt buộc PO khi order trên ngưỡng.
Cái gì vẫn buộc phải qua draft-order flow thay vì extensibility?
Assisted selling và quote thương lượng one-off. Khi sales rep hoặc account manager build order thay cho buyer — giá riêng không nằm trong catalog rule, order pha sample và paid, quote cần approve trước khi thanh toán — draft-order flow trong Shopify admin vẫn là công cụ đúng. Checkout extensibility thiết kế cho self-service buying path; draft-order flow thiết kế cho assisted path. Ép cái này làm việc của cái kia là failure mode phổ biến. Một B2B operation nghiêm túc thường chạy song song cả hai, chia rõ theo segment buyer hoặc order type.
Team B2B ship checkout extensions lần đầu thường vỡ ở đâu?
Ba pattern, theo thứ tự. Một, UI extension capture field nhưng không Function nào act on nó — delivery-date picker show ở checkout, nhưng fulfillment integration không đọc, order vẫn ship khi warehouse pull. Hai, Function viết ra nhưng không scope cho B2B buyer — payment customization ẩn net-terms cho wholesale như định, nhưng vô tình chạy trên retail cart và ẩn valid retail method. Ba, extension chỉ wire cho buying path, admin draft-order flow rep dùng hàng ngày để nguyên config cũ, một nửa order không thấy customization. Cả ba đều bắt được bằng cùng một discipline — pre-launch test matrix cho representative buyer từng segment đi qua checkout và verify từng downstream system đọc đúng data.