Nhật ký công việc cho nhiệm vụ "Thêm nút chỉnh sửa sản phẩm nhanh"

28 авг. 2026 г., 05:42:23

Quan sát và Quyết định về việc Chỉnh sửa Sản phẩm Quản trị

Những gì đã tìm hiểu

Phần giao diện công khai mới của HappyBaby hoạt động tách biệt với MODX, nhưng MODX vẫn là backend làm việc và môi trường quản trị hiện có.

Đối với nút chỉnh sửa nhanh, việc xây dựng một trang quản trị thứ hai trong frontend mới là không hợp lý. Ở giai đoạn đầu, việc sử dụng MODX Manager hiện có và cung cấp cho quản trị viên khả năng chuyển hướng nhanh đến việc chỉnh sửa sản phẩm hiện tại là chính xác hơn.

Vấn đề kỹ thuật chính hóa ra không nằm ở bản thân nút bấm, mà ở việc xác định quyền ủy quyền quản trị trên frontend mới.

Trên thực tế, cookie MODX cần thiết đã tồn tại và được trình duyệt gửi trong các yêu cầu của frontend mới. Điều này có nghĩa là hiện tại không cần tạo thêm hệ thống ủy quyền hoặc đồng bộ hóa người dùng MODX với cơ sở dữ liệu haih-agent.

Hướng đi đã chọn

Thêm một truy vấn GraphQL riêng biệt trả về người dùng MODX hiện tại dựa trên phiên/cookie MODX hiện có.

MODX vẫn là nguồn sự thật duy nhất (source of truth) cho việc ủy quyền này. Người dùng MODX ở giai đoạn này:

  • không được chuyển sang cơ sở dữ liệu haih-agent;
  • không được đồng bộ hóa với mô hình User thông thường;
  • không nhận phiên thứ hai riêng biệt;
  • chỉ đơn giản được trả về dưới dạng người dùng MODX hiện tại bên ngoài nếu phiên bản MODX gốc hợp lệ.

Nếu GraphQL trả về người dùng MODX hiện tại, frontend coi khách truy cập là người dùng quản trị và hiển thị thanh công cụ quản trị (admin toolbar).

Giao diện người dùng (UI)

Tốt hơn hết là không trộn lẫn hành động quản trị với các nút mua hàng của thẻ sản phẩm. Lựa chọn ưu tiên là một thanh công cụ quản trị / lớp hành động quản trị có thể tái sử dụng riêng biệt, chỉ hiển thị khi có người dùng MODX hiện tại.

Hành động đầu tiên của thanh công cụ:

  • Chỉnh sửa sản phẩm → mở tài nguyên (resource) tương ứng trong MODX Manager.

Thanh công cụ này sau đó có thể được tái sử dụng cho các hành động quản trị khác và các loại trang khác mà không cần tạo trang quản trị mới.

Những gì cần thiết để triển khai

  1. Thêm truy vấn GraphQL cho người dùng MODX hiện tại thông qua phiên/cookie gốc.
  2. Chỉ trả về dữ liệu người dùng frontend cần thiết; không nhúng người dùng đó vào mô hình User cục bộ.
  3. Yêu cầu người dùng MODX hiện tại trên frontend.
  4. Nếu có người dùng, hiển thị thanh công cụ quản trị.
  5. Đối với thẻ sản phẩm, tạo liên kết để chỉnh sửa tài nguyên MODX tương ứng.
  6. Đảm bảo rằng ID tài nguyên MODX gốc có sẵn cho sản phẩm; nếu chưa, hãy thêm nó vào dữ liệu sản phẩm.

Tại sao tùy chọn này được chọn

Nó sử dụng hệ thống quản trị và ủy quyền hiện có, không trùng lặp MODX ACL và không tạo ra chu trình xác thực bổ sung chỉ vì một tính năng duy nhất. Đồng thời, frontend nhận được tín hiệu tối thiểu cần thiết cho UI quản trị và vẫn duy trì mối liên kết lỏng lẻo với mô hình người dùng nội bộ của MODX.

16.06.2026