← Back to writing
Writing · magento 2

Agency migration Magento 2 sang Shopify: Đánh giá gì trước khi ký

By Leo Nguyen · Jul 9, 2026 · 12 min read
Agency migration Magento 2 sang Shopify: Đánh giá gì trước khi ký
Jump to section

Câu trả lời ngắn: một agency migration Magento 2 sang Shopify nên được đánh giá qua ba thứ — họ có tự gọi tên được các feature Magento 2 không có tương đương 1:1 trên Shopify trước khi bạn hỏi hay không, họ có nói chính xác được yêu cầu nào của bạn cần Shopify Plus và yêu cầu nào không hay không, và họ có coi redirect map và structured data là deliverable chứ không phải afterthought hay không. Mọi thứ khác (design, theme, timeline) đều là hệ quả của ba thứ đó. Đa số migration hỏng là vì phần gap analysis xảy ra sau hợp đồng chứ không phải trước.

Bài này viết ra từ 10 năm và 50+ dự án ecommerce, gồm bốn storefront Magento 2 (một nhà cung cấp thiết bị nha khoa B2B chạy M2 + Next.js headless, một brand retail Việt trên GraphCommerce headless, một chuỗi mắt kính Úc phục vụ 120+ cửa hàng vật lý, và một fashion store Singapore chạy 12 loại tiền tệ) và chín storefront Shopify. Những gap dưới đây là những gap thực sự đốt tiền.

#Một agency migration Magento 2 sang Shopify thực sự làm gì?

Bốn workstream, và agency nào chỉ báo giá cho cái đầu tiên là chỉ báo giá cho một phần của công việc:

  1. Data migration — sản phẩm, variant, khách hàng, order history, và mô hình attribute. Đây là phần ai cũng báo giá. Nó cũng là phần dễ nhất.
  2. Feature gap resolution — quyết định từng feature Magento sẽ map native, cần app, cần Shopify Function, cần Plus, hay bỏ. Đây là nơi chi phí thật sự nằm.
  3. URL và SEO continuity — redirect map, chiến lược canonical, và structured data. Store Magento 2 chạy layered navigation nhiều năm đã sinh ra hàng loạt URL faceted được crawl. Những URL đó có equity và không có tương đương trên Shopify.
  4. Post-launch stabilization — tax rounding, multi-currency, customer-group pricing, và các edge case chỉ lộ ra khi có đơn thật.

Hỏi thẳng cả bốn cái có nằm trong quote không. Nếu workstream 2 bị mô tả là "sẽ tính trong discovery", rủi ro discovery đang bị chuyển sang cho bạn.

#Feature Magento 2 nào không có tương đương 1:1 trên Shopify?

Đây là bảng hữu dụng nhất để mang tới buổi call đầu tiên. Yêu cầu agency điền cho store của bạn trước khi ký.

Feature Magento 2 Thực tế trên Shopify
Customer group pricing Không có tương đương native ngoài B2B. Cần B2B catalogs và price lists của Shopify (plan-gated), một Function, hoặc app
Multi-store views (một backend, N storefront theo locale/currency) Shopify Markets phủ currency và locale, nhưng không phủ catalog/nội dung khác nhau tuỳ ý per view. Nhiều setup phải tách store riêng
Layered navigation trên custom attribute, URL indexable Filter của Shopify dựa trên tag/metafield và URL faceted khác. URL faceted đã indexed cần quyết định redirect rõ ràng — thường về collection cha
Custom EAV attribute Metafield và metaobject. Cấu trúc ổn, nhưng logic đi kèm attribute (validation, attribute phụ thuộc) phải viết lại
Multi-source inventory theo priority Location + routing rule của Shopify. Logic source-priority thường cần app
B2B pricing theo bậc / theo quote Cần plan hỗ trợ B2B, cộng với new customer accounts
CMS native với trang phân cấp Trang Shopify phẳng. Phân cấp là quy ước của theme/navigation
Business logic tuỳ biến chạy theo cron Shopify Functions, app, hoặc service ngoài. Không có "chạy PHP theo schedule trong platform"

Pattern chung: Shopify nhanh hơn và rẻ hơn để vận hành, và ít chịu uốn hơn. Trade-off đó thường đáng đổi. Chỉ đáng đổi khi bạn nhìn rõ mình đang dựa vào cái uốn nào ở hiện tại.

#Shopify Plus thực sự khoá cái gì — và cái gì không cần Plus?

Agency thường overclaim ở đây theo cả hai hướng. Verified với doc dev của Shopify, tính đến 9 tháng 7 năm 2026:

Bắt buộc Shopify Plus:

  • Checkout UI extensions ở các bước information, shipping, payment
  • Checkout branding customization qua GraphQL Admin API

Không cần Plus* (có trên mọi plan trừ Shopify Starter):

  • Shopify Functions — discount, payment customization, delivery customization, cart transform
  • Extension cho trang Thank-you và Order status
  • Web pixel extensions

Plan-gated riêng: B2B capabilities (company account, catalog, price list, payment term) cần plan hỗ trợ B2B, và cần new customer accounts.

Vì sao quan trọng về mặt thương mại: phần lớn claim kiểu "cái này phải lên Plus" thực chất là bài toán hình dạng Function. Logic discount tuỳ biến, rule delivery, và gating payment method là Functions, và Functions không Plus-gated. Nếu ai đó bảo một rule discount buộc phải upgrade Plus, hỏi họ gọi tên chính xác extension target nào yêu cầu Plus. Nếu câu trả lời là thay đổi UI checkout ở các bước information/shipping/payment, họ đúng. Nếu là business logic, họ nhiều khả năng sai.

Ngược lại: nếu hôm nay bạn đang custom trang thank-you và ai đó báo giá phải Plus cho việc đó, cũng sai.

#Cái gì quyết định timeline migration?

Không có con số trung bình ngành trung thực nào ở đây, và ai đọc từ blog rồi báo cho bạn là báo con số họ không đo được. Bốn biến quyết định timeline của mọi dự án M2 → Shopify:

  1. Độ phức tạp của mô hình attribute. Store 15 attribute với simple/configurable product là dự án khác hẳn store có attribute phụ thuộc điều khiển giá và validation.
  2. Chiều sâu order history và việc có phải query được trong admin hay không. "Migrate order history" và "migrate order history để support search được" là hai scope khác nhau với chi phí khác nhau.
  3. Số integration với system of record. ERP, PIM, POS, tax engine. Mỗi cái là một hợp đồng bạn phải re-implement với API Shopify. Integrate M2 với ERP để sync order và inventory thường là hạng mục dài nhất trong replatform — dài hơn cả storefront.
  4. Có giữ frontend headless không. Nếu đang chạy GraphCommerce hoặc Next.js custom, storefront có thể sống qua đợt đổi backend. Việc đó thay đổi hình dạng dự án hoàn toàn và đáng để hỏi thẳng.

Agency đưa cho bạn timeline trước khi trả lời được bốn câu đó là đưa cho bạn con số bán hàng.

#Cái gì vỡ sau launch?

Từ các dự án, theo thứ tự tần suất bị đau:

  • Gap redirect ở URL faceted. URL layered-navigation của M2 đã indexed nhiều năm giờ trả 404. Mất ranking hiện ra sau 2–6 tuần, đủ trễ để không ai nối lại với launch.
  • Đơn $0. Đơn discount 100%, đơn covered hết bằng gift card, đơn test $0 có hành vi khác trên Shopify — chúng có thể bỏ qua bước payment-gateway mà downstream app và flow ngầm giả định là đã chạy. Bất cứ thứ gì keyed vào payment event cần test rõ ở $0, không phải chỉ ở $1.
  • Customer-group pricing lặng lẽ phẳng. Khách wholesale nhìn thấy giá retail cả tuần trước khi có người phát hiện, vì không ai viết test.
  • Rounding multi-currency. Giá vốn tính per store view giờ được convert, và số làm tròn ra không khớp với kỳ vọng của finance.
  • Regression structured data. M2 store phát ra Product schema kèm review và rating. Theme Shopify mới phát ra Product schema không có, vì review app chưa được reconnect. Rich results biến mất. Điều đó dẫn thẳng đến phần gần như không ai scope.

#Migration ảnh hưởng thế nào tới AI visibility trong ChatGPT, Perplexity, và AI Overviews?

Câu trả lời trực tiếp: replatform viết lại mọi tín hiệu máy đọc được store phát ra — URL, structured data, chính sách crawler — và answer engine sẽ dựng lại hình dung về brand từ chính những tín hiệu đó. Migration vì vậy là thời điểm có leverage cao nhất để sửa AI visibility, và cũng là thời điểm dễ mất AI visibility trong im lặng nhất, vì trong checklist migration tiêu chuẩn chả có phần nào ngó tới nó.

Structured data là chỗ hay hỏng, và hỏng cả ở brand tốt. Kiểm tra live ngày 9 tháng 7 năm 2026, một DTC premium trên Shopify chạy tử tế — Everlane — phát ra ProductGroup schema trên trang sản phẩm với 11 variant, mỗi variant mang sku, price, priceCurrency, và availability. Đó là baseline khá; đa số store còn không tới. Cái schema đó không mang: aggregateRating, review, gtin13, shippingDetails, hoặc hasMerchantReturnPolicy. Không có BreadcrumbList trên trang.

Hệ quả rất cụ thể. Khi model bị hỏi "cái áo khoác này có ổn không" hoặc "tôi có return được không", không có gì structured trên trang để cite, vậy model tìm sang site review bên thứ ba — và cite site đó thay vì brand. Chính trang của brand không trả lời được câu hỏi hỏi về brand.

Ba thứ cần yêu cầu trong scope migration, tất cả đều rẻ nếu làm trong dự án và đắt nếu retrofit sau:

  1. Product schema đầy đủ trên theme mới, bao gồm aggregateRatingreview (reconnect review app trước launch, không phải sau), gtin nếu có, và shippingDetails / hasMerchantReturnPolicy trên offer. Đây là các field mà surface shopping agent-driven đọc.
  2. Chính sách crawler rõ ràng. Gọi tên các AI crawler trong robots.txt thay vì để chúng thừa hưởng User-agent: *. Robots.txt của Everlane khai đúng hai user-agent — *adsbot-google — nên GPTBot, PerplexityBot, ClaudeBot, và Google-Extended đều thừa hưởng default. Cái đó vô tình cho phép crawl, nhưng là kết cục thừa hưởng, không phải quyết định. Bên bọn tôi tuyên bố rõ: luma-e.com/robots.txt gọi tên GPTBot, ChatGPT-User, PerplexityBot, ClaudeBot, anthropic-ai, Google-Extended, và CCBot.
  3. Một file llms.txt mà phần còn lại của site trỏ tới. Everlane serve một cái thật — 4.2KB markdown ở /llms.txt, đưa họ đi trước phần lớn thị trường. File này không được reference từ robots.txt của họ. File không ai link tới là file bị tìm ra muộn.

Nếu bạn đang replatform, chi phí cận biên để làm cả ba cái này trong lúc build gần như bằng không. Chi phí retrofit chúng trên catalog live thì không.

#Cần hỏi gì ở cuộc call đầu tiên

Mang bảy câu này. Câu trả lời cho bạn biết nhiều hơn portfolio.

  1. "Hãy điểm giúp tôi các feature Magento trong store của tôi không có tương đương 1:1 trên Shopify." — Test xem họ nhìn store của bạn hay nhìn template của họ.
  2. "Yêu cầu nào của tôi cần Plus, và yêu cầu nào là Shopify Functions?" — Test độ sâu về platform. Functions không Plus-gated.
  3. "Ai chịu trách nhiệm redirect map, và tôi thấy nó lúc nào?" — Câu đúng: họ, và trước launch, không phải trong lúc launch.
  4. "Kế hoạch của các bạn cho URL layered-navigation đã indexed của tôi là gì?" — Không có câu trả lời sạch, chỉ có câu trả lời rõ. Câu nào cũng hơn không câu nào.
  5. "Các bạn test đơn $0 và discount 100% thế nào?" — Test xem họ từng bị đau chưa.
  6. "PDP của tôi ngày launch sẽ phát ra structured data gì, field-by-field?" — Gần như không ai có sẵn câu trả lời này. Ai có là người cần shortlist.
  7. "Nếu frontend của tôi đã headless, nó có sống được không?" — Test xem họ hiểu kiến trúc của bạn hay chỉ hiểu platform.

#FAQ

Order history có migrate được từ Magento 2 sang Shopify không? Có, qua Admin API. Nhưng "migrate" và "support search được trong admin như trước" là hai scope khác nhau với chi phí khác nhau. Xác định rõ bạn muốn cái nào.

Có bắt buộc phải Shopify Plus để migrate từ Magento 2 không? Mặc định là không. Plus chỉ bắt buộc cho checkout UI extensions ở các bước information/shipping/payment, và checkout branding qua Admin API. Logic discount, delivery, payment tuỳ biến chạy trên Shopify Functions, có sẵn trên mọi plan trừ Shopify Starter.

Migrate Magento 2 sang Shopify có mất SEO ranking không? Chỉ mất qua redirect gap và structured-data regression — cả hai đều phòng được và cả hai thường phát hiện vài tuần sau launch. Yêu cầu redirect map và spec schema field-by-field làm deliverable trước launch.

Khách B2B và pricing của họ ra sao? Customer-group pricing của Magento không có tương đương native trên plan Shopify tiêu chuẩn. Nó map sang B2B catalogs và price lists của Shopify — cần plan hỗ trợ B2B cộng với new customer accounts — hoặc Shopify Function, hoặc app. Quyết định cái nào trước hợp đồng, không phải trong UAT.

Có nên giữ frontend headless không? Nếu đang chạy GraphCommerce hoặc Next.js custom trên Magento 2, frontend thường sống được qua đợt đổi backend. Việc này thay đổi đáng kể chi phí và timeline. Nhất định phải hỏi ngay cuộc trao đổi đầu tiên.


Bên bọn tôi build trên cả hai platform — bốn storefront Magento 2 và chín store Shopify trải DTC, luxury, B2B, và retail multi-currency — vì thế bảng gap ở trên là bảng gap chứ không phải pitch cho một bên.

Nếu muốn kiểm phần structured data và AI visibility cho store hiện tại trước khi cam kết replatform, grader miễn phí của bọn tôi chạy 5 phút và trả lại bức tranh field-by-field: luma-e.com/audit.

Frequently asked
Order history có migrate được từ Magento 2 sang Shopify không?
Có, qua Admin API. Nhưng 'migrate' và 'support search được trong admin như trước' là hai scope khác nhau với chi phí khác nhau. Xác định rõ bạn muốn cái nào trước khi ký hợp đồng.
Có bắt buộc phải Shopify Plus để migrate từ Magento 2 không?
Mặc định là không. Plus chỉ bắt buộc cho checkout UI extensions ở các bước information/shipping/payment, và checkout branding qua GraphQL Admin API. Logic discount, delivery, payment tuỳ biến chạy trên Shopify Functions, có sẵn trên mọi plan trừ Shopify Starter.
Migrate Magento 2 sang Shopify có mất SEO ranking không?
Chỉ mất qua hai lỗ hổng — redirect gap và structured-data regression — cả hai đều phòng được và cả hai thường bị phát hiện vài tuần sau launch. Yêu cầu redirect map và spec structured data field-by-field làm deliverable trước launch.
Khách B2B và pricing của họ ra sao sau migration?
Customer-group pricing của Magento không có tương đương native trên plan Shopify tiêu chuẩn. Nó map sang B2B catalogs và price lists của Shopify — yêu cầu plan hỗ trợ B2B cộng với new customer accounts — hoặc sang Shopify Function, hoặc app. Quyết định cái nào trước hợp đồng, không phải trong UAT.
Có nên giữ frontend headless không?
Nếu đang chạy GraphCommerce hoặc Next.js custom trên Magento 2, frontend thường sống được qua đợt đổi backend. Việc này thay đổi đáng kể chi phí và timeline. Nhất định phải hỏi ngay cuộc trao đổi đầu tiên.
Migration ảnh hưởng thế nào tới AI visibility trong ChatGPT và Perplexity?
Replatform viết lại toàn bộ tín hiệu máy đọc được mà store phát ra — URL, structured data, crawler policy. Answer engine sẽ dựng lại hình dung về brand từ những tín hiệu đó. Migration hay mất AI visibility nhất do Product schema thiếu — cụ thể là thiếu aggregateRating, review, gtin, shippingDetails, và hasMerchantReturnPolicy.