Skip to content

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 CommerceAPI 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:

typescript
// 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ồnTín hiệuTiê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:

MethodPathQuyền
POST/configurations/provider-integrationsConfiguration.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-integrationsConfiguration.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ó PricingService trong 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

TrangMô tả
Tổng quan CommerceĐịnh danh dịch vụ + catalog
API EventsSeam CDC tới pricing/taxation
Pricing PackageEngine định giá động (fares, rules, đánh giá)
TaxationCấp phát nhóm thuế
ProductsProduct aggregate với taxGroupId
VariantsVariant aggregate với trường pricing

Proprietary and Confidential. Unauthorized copying, distribution, or use of this software is strictly prohibited.