Tính toán giá là một chủ đề rất phức tạp trong Magento. Dưới đây là một cái nhìn của một con chim về cách thực hiện cho một sản phẩm đơn giản:
- Magento được giá "cơ sở". Đây là giá bạn đã xác định trong cột giá
- Giá "nhóm" được áp dụng. Đây là phần mà giá tầng được xem xét dựa trên số lượng đặt hàng, trang web và nhóm khách hàng.
- Giá đặc biệt được áp dụng nếu một mức giá đặc biệt được xác định cho ngày hiện tại.
- Sự kiện " catalog_product_get_final_price " được kích hoạt. Đây là nơi mô-đun tùy chỉnh của bạn mà tinker với giá sẽ xuất hiện. Ví dụ hoạt động, mô-đun CatalogRule bắt sự kiện này và thay đổi giá dựa trên các quy tắc danh mục đã xác định
- Giá của các lựa chọn đã chọn được xem xét
Vì quá trình này cực kỳ tốn thời gian, Magento tạo ra một chỉ số giá và sẽ chỉ đi qua những điều trên khi reindexing. Chỉ số giá sử dụng một loạt các bảng có thông tin về giá "cuối cùng" (được tính bằng các bước ở trên) cùng với những thứ như giá tối thiểu / tối đa cho các cấu hình và gói. Bảng này có một mục nhập cho mỗi kết hợp nhóm trang web / sản phẩm / nhóm khách hàng, vì vậy hệ thống sẽ chỉ cần chọn hàng phù hợp dựa trên dữ liệu khách hàng, làm cho toàn bộ quá trình chạy trong thời gian thích hợp.
Về phần frontend, cách giá tăng và giảm động, tất cả đều được thực hiện trong javascript bắt đầu bằng một mảng json với tất cả "mức giá" và sẽ giảm / tăng giá dựa trên các lựa chọn của bạn.