Pricing trong Commerce
Đào sâu tính năng. Định danh dịch vụ và bề mặt async nằm trong Tổng quan Commerce và API Events.
Pricing nằm trong một package riêng
Định giá động (fares, fare rules, đánh giá giá) được xử lý bởi package @nx/pricing, không phải bởi @nx/commerce. Trang này chỉ tài liệu hóa các tính năng liên quan đến pricing tồn tại bên trong chính package commerce.
Commerce làm gì cho Pricing
Commerce xử lý pricing tại hai điểm tích hợp:
1. Dữ liệu Pricing cấp Variant
Khi tạo hoặc cập nhật một product variant qua endpoint aggregate, có thể bao gồm trường pricing tùy chọn:
// POST /product-variants/aggregate
{
productId: "...",
info: { name: { en: "Large", vi: "Lớn" } },
pricing: { /* PricingSchema */ }, // tùy chọn
sku: "SKU-001",
}Nếu pricing hiện diện, nó được lưu cùng variant. Lan truyền tới dịch vụ pricing được điều khiển bởi CDC — Debezium capture các ghi public.ProductVariant và dịch vụ pricing khởi tạo/cập nhật fare rules từ chúng. Commerce không emit cấp ứng dụng các topic Kafka product-variant.* (enqueue đã bị comment out trong product-variant.service.ts).
| Nguồn | Tín hiệu | Tiêu thụ bởi |
|---|---|---|
public.ProductVariant (gồm dữ liệu pricing) | CDC (Debezium) | Dịch vụ Pricing → init/update fare rule |
2. Cấu hình tích hợp Provider
ConfigurationController quản lý thông tin đăng nhập provider được mã hóa (cho payment, invoice, v.v.) có thể bao gồm các config provider liên quan đến pricing:
| Method | Path | Quyền |
|---|---|---|
POST | /configurations/provider-integrations | Configuration.createProviderIntegration |
PATCH | /configurations/provider-integrations/{id} | Configuration.updateProviderIntegration |
GET | /configurations/provider-integrations/{id} | Configuration.getProviderIntegration |
DELETE | /configurations/provider-integrations/{id} | Configuration.deleteProviderIntegration |
GET | /configurations/provider-integrations | Configuration.findProviderIntegrations |
Thông tin đăng nhập được mã hóa qua EncryptService (AES-256-GCM) và che trong response (27 dấu sao + 5 ký tự cuối hiển thị).
Định dạng mã tích hợp: {type}:{provider}:{credentialAction}:{credentialType}
3. Gán nhóm thuế
Sản phẩm có trường taxGroupId tùy chọn. Khi đặt hoặc thay đổi, việc ghi vào public.Product được capture bởi CDC và dịch vụ Taxation cấp phát/hủy cấp phát quy tắc thuế tương ứng. Không có emit Kafka product.* cấp ứng dụng. Xem Taxation.
Commerce KHÔNG làm gì
- Không có
PricingServicetrong commerce — logic pricing nằm trong@nx/pricing - Không có endpoint
/pricing/calculate— tính giá là việc của dịch vụ pricing - Không có fare sets, fare rules, hay đánh giá giá trong source commerce
- Không có REST endpoint cho fares hay fare rules — những thứ đó nằm trong package pricing
Trang liên quan
| Trang | Mô tả |
|---|---|
| Tổng quan Commerce | Định danh dịch vụ + catalog |
| API Events | Seam CDC tới pricing/taxation |
| Pricing Package | Engine định giá động (fares, rules, đánh giá) |
| Taxation | Cấp phát nhóm thuế |
| Products | Product aggregate với taxGroupId |
| Variants | Variant aggregate với trường pricing |