Nâng cấp bộ kit storefront

Nếu website của bạn chạy từ code riêng, tức là bạn đã lấy code bằng storefront init hoặc tự host website, code đó dùng hai gói của EcomWeb là @ecomweb/storefront-kit và @ecomweb/sdk. Bài này chỉ cách xem bạn đang dùng bản nào, nâng lên bản mới và đưa website lên lại.

Nếu cửa hàng chỉ dùng giao diện có sẵn và bạn không có code riêng, bạn không cần làm gì. EcomWeb tự cập nhật các gói này cho giao diện có sẵn.

Vì sao cần nâng cấp

Hai gói này là phần code nối website của bạn với EcomWeb: đọc sản phẩm, giỏ hàng, thanh toán, tài khoản khách. Mỗi bản mới sửa lỗi và thêm tính năng. Có bản là bản vá bảo mật, sửa một lỗi có thể bị lợi dụng trên website của bạn.

Code của bạn nằm ở máy bạn hoặc kho code của bạn, nên EcomWeb không tự đổi được nó. Bạn cần tự nâng cấp và triển khai lại. Bản mới nhất luôn dùng được với EcomWeb.

Xem bạn đang dùng bản nào

Trong dashboard:

  1. Ở thanh bên, bấm Online Store.
  2. Xem [thông báo ở đầu trang]. Thông báo chỉ hiện khi có bản mới hơn bản website đang chạy, và cho biết bản đang dùng, bản mới nhất cùng lệnh cần chạy.

Thông báo màu đỏ là bản vá bảo mật, hãy nâng cấp ngay. Màu vàng là bản bạn dùng đã quá cũ, EcomWeb không còn hỗ trợ. Thông báo nhạt hơn chỉ báo có bản mới. Không thấy thông báo nào nghĩa là website đang chạy bản mới nhất, hoặc EcomWeb chưa thấy website gọi tới trong 30 ngày qua.

Trên máy tính, trong thư mục dự án:

Terminal
# Xem bản đang dùng và lệnh sẽ chạy, chưa đổi gì
ecomweb storefront upgrade --dry-run

Khi bạn chạy lệnh ecomweb trong thư mục dự án, CLI cũng in một dòng nhắc nếu có bản mới, tối đa mỗi ngày một lần. Lệnh pnpm build cũng in cảnh báo khi bản bạn dùng đã cũ.

Nâng cấp hai gói

  1. Cập nhật EcomWeb CLI lên bản mới nhất, để có lệnh nâng cấp.
  2. Mở terminal trong thư mục dự án.
  3. Chạy lệnh nâng cấp bên dưới.
Terminal
# Cập nhật CLI
npm install -g @ecomweb/cli
# Nâng @ecomweb/sdk và @ecomweb/storefront-kit lên bản mới nhất
ecomweb storefront upgrade

Lệnh tự nhận ra dự án dùng pnpm, npm hay yarn qua tệp khóa của dự án, rồi cài bản mới nhất của cả hai gói. Cuối cùng lệnh in đường dẫn tới lịch sử thay đổi và nhắc bạn build, triển khai lại.

Nếu chưa cài CLI, xem Cài và đăng nhập EcomWeb CLI.

Đọc lịch sử thay đổi

Mỗi bản mới có một ghi chú phát hành trên trang phát hành của ecomweb-storefront-sdk, ghi bản đó sửa gì, thêm gì và có cần đổi gì trong code của bạn không.

  1. Mở trang phát hành.
  2. Đọc mọi bản từ sau bản bạn đang dùng tới bản mới nhất.
  3. Làm theo các bước được ghi cho phần code bạn đã sửa.

Build và triển khai lại

  1. Chạy pnpm dev và mở vài trang chính để xem mọi thứ vẫn chạy: trang chủ, một sản phẩm, giỏ hàng.
  2. Chạy pnpm build để chắc code build được.
  3. Chạy ecomweb deploy trong thư mục dự án.
  4. Mở đường dẫn xem trước mà terminal in ra và kiểm tra lại.
  5. Xuất bản như mọi lần triển khai khác.
Terminal
pnpm build
ecomweb deploy

Nếu bản bạn dùng thấp hơn bản tối thiểu, lệnh ecomweb deploy in một cảnh báo nhưng vẫn triển khai.

Nếu bạn tự host website, triển khai như bạn vẫn làm trên máy chủ của mình, xem Kết nối website tự host.

Hiểu email bảo mật

Khi một bản vá bảo mật ra, EcomWeb gửi email cho chủ những cửa hàng có website vẫn chạy bản cũ hơn bản vá. Email cho biết lỗi là gì, bản nào đã sửa và lệnh cần chạy.

Mỗi bản vá bạn chỉ nhận một email cho mỗi cửa hàng. Email không có nghĩa là website đã bị tấn công, chỉ có nghĩa là website đang chạy bản có lỗi đã biết. Nâng cấp, build và triển khai lại như ở trên. Sau khi bản mới chạy, thông báo đỏ trong dashboard tự mất.

Để GitHub tự nhắc nâng cấp

Nếu code của bạn nằm trên GitHub, Dependabot hoặc Renovate có thể tự mở pull request khi có bản mới của hai gói. Bạn chỉ cần xem, gộp, rồi build và triển khai.

Với Dependabot, thêm tệp .github/dependabot.yml vào kho code:

Terminal
version: 2
updates:
  - package-ecosystem: npm
    directory: /
    schedule:
      interval: weekly
    allow:
      - dependency-name: "@ecomweb/*"

Với Renovate, cài ứng dụng Renovate cho kho code. Renovate tự tìm các gói @ecomweb trong package.json.

Câu hỏi thường gặp

Tôi không nâng cấp thì website có ngừng chạy không?

Không. EcomWeb chỉ nhắc, không chặn website hay lệnh triển khai. Nhưng bản cũ có thể còn lỗi bảo mật đã được sửa ở bản mới, nên hãy nâng cấp sớm khi có bản vá bảo mật.

Dashboard vẫn báo bản cũ dù tôi đã nâng cấp?

EcomWeb biết bản bạn dùng khi website gọi tới EcomWeb, nên thông báo chỉ đổi sau khi bản mới đã được triển khai và có khách mở website. Nếu bạn mới chỉ chạy lệnh nâng cấp trên máy, hãy build và triển khai.

Nâng cấp có làm mất sản phẩm hay cài đặt giao diện không?

Không. Sản phẩm, đơn hàng và cài đặt nằm ở EcomWeb, không nằm trong code. Lệnh nâng cấp chỉ đổi phiên bản của hai gói trong dự án.

Bản mới làm hỏng một trang thì sao?

Với Hosting, quay lại bản build trước trong thẻ Phiên bản của giao diện. Rồi đọc lịch sử thay đổi để biết cần sửa gì trong code của bạn.

Tôi muốn tắt cảnh báo phiên bản khi build?

Đặt biến môi trường ECOMWEB_SKIP_VERSION_CHECK=1 khi build. Chỉ nên làm vậy trên máy build không có mạng, vì bạn sẽ không còn được nhắc khi có bản vá bảo mật.

Bạn thấy nội dung này thế nào?

Góp ý được dùng để cải thiện trung tâm trợ giúp, theo Chính sách bảo mật.