Tính năng này cho phép tạo nhanh một sản phẩm thương mại điện tử từ một bài viết đã lưu. Sau khi tạo thành công, bài viết và sản phẩm giữ tham chiếu tới nhau; nội dung bài viết được sử dụng làm mô tả nâng cao của sản phẩm.

Điều kiện sử dụng

Hệ thống cần có:
  • Plugin Article để quản lý bài viết.
  • Plugin Ecommerce để tạo và quản lý sản phẩm.
  • Cửa hàng và đơn vị tiền tệ mặc định.
  • Cấu hình thuế mặc định nếu sản phẩm áp dụng thuế.
  • Tài khoản quản trị có quyền truy cập trang chỉnh sửa bài viết.
Bài viết phải được lưu trước khi tạo sản phẩm vì hệ thống cần ID bài viết để thiết lập liên kết.

Các bước tạo sản phẩm

Chuẩn bị bài viết

Trong trang quản trị:
  1. Mở danh sách bài viết.
  2. Chọn bài viết muốn dùng để tạo sản phẩm.
  3. Chuyển sang trang chỉnh sửa.
  4. Kiểm tra và lưu lại nội dung.
Các thông tin nên được hoàn thiện trước khi tạo sản phẩm:
  • Tiêu đề.
  • Slug.
  • Ảnh đại diện.
  • Nội dung.
  • Kiểu nội dung.
  • Trạng thái.

Tạo sản phẩm

Tại trang chỉnh sửa bài viết:
  1. Mở mục Sản phẩm.
  2. Nhấn Tạo.
  3. Chờ hệ thống hoàn thành yêu cầu.
Screenshot 2026-09-10 at 23.02.29.png
Nếu tạo thành công:
  • Nút Tạo sẽ được ẩn.
  • ID sản phẩm sẽ được hiển thị.
  • Nhấn vào ID để mở trang quản trị sản phẩm trong một tab mới.
Screenshot 2026-09-10 at 23.02.44.png
flowchart TD
    A["Mở bài viết đã lưu"] --> B["Kiểm tra và lưu nội dung"]
    B --> C["Mở mục Sản phẩm"]
    C --> D["Nhấn Tạo"]
    D --> E{"Tạo thành công?"}
    E -- Có --> F["Lưu ID sản phẩm vào bài viết"]
    F --> G["Hiển thị liên kết tới sản phẩm"]
    E -- Không --> H["Giữ nguyên nút Tạo"]

Dữ liệu dùng để tạo sản phẩm

Hệ thống ánh xạ dữ liệu từ bài viết sang sản phẩm như sau:
Bài viếtSản phẩm
Tiêu đềTên sản phẩm
SlugMã sản phẩm
Ảnh đại diệnẢnh biểu tượng và ảnh banner
Nội dung tại thời điểm tạoMô tả thông thường
ID bài viếtTham chiếu dùng cho mô tả nâng cao
Kiểu nội dungKiểu nội dung của mô tả
Trạng thái bài viếtTrạng thái ban đầu của sản phẩm
ID quản trị viênNgười tạo sản phẩm
Các thông tin thương mại chưa có trong bài viết nhận giá trị mặc định:
  • Giá gốc bằng 0.
  • Giá bán bằng 0.
  • Loại sản phẩm là sản phẩm đơn.
  • Cửa hàng được lấy từ cấu hình mặc định.
  • Đơn vị tiền tệ được lấy từ cấu hình mặc định.
  • Thuế được lấy từ cấu hình của cửa hàng.
  • Số lượng nhận giá trị mặc định của hệ thống.
Sau khi tạo, quản trị viên nên mở sản phẩm để bổ sung giá, tồn kho, danh mục, thuộc tính, vận chuyển và các thông tin bán hàng khác.

Mô tả sản phẩm

Sản phẩm được tạo với hai phần nội dung.

Mô tả thông thường

Trường description chứa bản sao nội dung bài viết tại thời điểm tạo sản phẩm.
Nếu bài viết được chỉnh sửa sau đó, phần mô tả thông thường không tự động được cập nhật.

Mô tả nâng cao

Sản phẩm lưu ID bài viết trong trường descriptionPostId.
Khi dựng trang chi tiết sản phẩm, Ecommerce:
  1. Đọc ID bài viết.
  2. Tải bài viết tương ứng.
  3. Đọc nội dung và kiểu nội dung.
  4. Chuyển đổi nội dung sang định dạng hiển thị.
  5. Cung cấp kết quả qua advancedDescription.
flowchart LR
    A["Nội dung bài viết"] -->|"Sao chép khi tạo"| D["Mô tả thông thường"]
    A -->|"Tham chiếu qua ID bài viết"| AD["Mô tả nâng cao"]
Do đó:
  • Mô tả thông thường là bản sao tại thời điểm tạo.
  • Mô tả nâng cao được dựng từ bài viết đang được tham chiếu.
  • Khi nội dung bài viết thay đổi, mô tả nâng cao sẽ phản ánh nội dung mới trong lần tải sản phẩm tiếp theo.
  • Việc sửa bài viết không tự động ghi đè mô tả thông thường.

Cơ chế tham chiếu

Bài viết và sản phẩm giữ tham chiếu theo hai hướng:
  • Bài viết lưu ID sản phẩm trong metadata.
  • Sản phẩm lưu ID bài viết dùng cho mô tả nâng cao.
flowchart LR
    A["Bài viết"] -- "ID sản phẩm" --> P["Sản phẩm"]
    P -- "ID bài viết mô tả" --> A
Luồng xử lý:
sequenceDiagram
    actor Admin as Quản trị viên
    participant Article as Module bài viết
    participant Event as Hệ thống sự kiện
    participant Commerce as Module Ecommerce

    Admin->>Article: Nhấn Tạo sản phẩm
    Article->>Article: Kiểm tra bài viết tồn tại
    Article->>Event: Gửi dữ liệu tạo sản phẩm
    Event->>Commerce: Chuyển yêu cầu
    Commerce->>Commerce: Tạo sản phẩm và mô tả
    Commerce-->>Event: Trả về ID sản phẩm
    Event-->>Article: Trả về ID sản phẩm
    Article->>Article: Lưu ID sản phẩm vào metadata
    Article-->>Admin: Hiển thị liên kết mở sản phẩm

Trạng thái sau khi tạo

Ngay sau khi tạo thành công, giao diện:
  • Ẩn nút Tạo.
  • Hiển thị ID và liên kết tới sản phẩm.
Khi tải lại trang chỉnh sửa bài viết:
  • Nếu ID sản phẩm đã được lưu, liên kết sản phẩm tiếp tục hiển thị và nút Tạo vẫn bị ẩn.
  • Nếu metadata không chứa ID sản phẩm hợp lệ, nút Tạo sẽ xuất hiện lại.
Refresh trang thông thường không làm mất liên kết.

Đồng bộ nội dung

Khi cập nhật bài viết:
  • Mô tả nâng cao của sản phẩm sử dụng nội dung bài viết mới.
  • Mô tả thông thường không tự động thay đổi.
  • Tên, mã và ảnh sản phẩm không tự động đồng bộ.
Khi cập nhật sản phẩm:
  • Thay đổi trên sản phẩm không tự động cập nhật ngược về bài viết.
  • Tham chiếu tới bài viết vẫn tồn tại nếu ID bài viết mô tả không bị thay đổi.

Lưu ý

  • Thao tác Tạo luôn tạo một sản phẩm mới; nó không dùng để chọn sản phẩm đã tồn tại.
  • Giao diện ẩn nút Tạo sau khi có liên kết để hạn chế tạo trùng.
  • Nếu gọi trực tiếp API tạo sản phẩm nhiều lần, hệ thống có thể tạo nhiều sản phẩm từ cùng một bài viết.
  • Xóa bài viết không tự động xóa sản phẩm.
  • Xóa sản phẩm không tự động xóa bài viết.
  • Nếu bài viết bị xóa hoặc không còn truy cập được, hệ thống không thể dựng mô tả nâng cao từ bài viết đó.
  • Nếu plugin Ecommerce chưa được cài đặt hoặc chưa đăng ký bộ xử lý tương ứng, sản phẩm sẽ không được tạo.
  • Cần kiểm tra giá, tồn kho, trạng thái và các thuộc tính bán hàng trước khi công khai sản phẩm.