getProductsByPageId
Tìm kiếm tất cả các đối tượng sản phẩm với phân trang cho danh mục đã chọn.
Mô tả
Phương thức này tìm kiếm tất cả các đối tượng sản phẩm với phân trang cho danh mục đã chọn, dựa trên các tham số truy vấn được cung cấp (userQuery). Nó trả về một Promise mà khi hoàn thành sẽ trả về một mảng các mục, trong đó mỗi mục là một đối tượng. Nó trả về một Promise mà khi hoàn thành sẽ trả về một IProductsResponse.
Products.getProductsByPageId(
id,
body,
langCode,
userQuery
);
Sơ đồ tham số
Sơ đồ
id(bắt buộc): số
ID trang
ví dụ: 2492
body: IFilterParams[]
Nội dung yêu cầu. Mặc định: []
ví dụ:
[
{
"attributeMarker": "price",
"conditionMarker": "mth",
"statusMarker": "waiting",
"conditionValue": 1,
"pageUrls": [
"23-laminat-floorwood-maxima"
],
"isNested": false,
"title": ""
},
{
"attributeMarker": "price",
"conditionMarker": "lth",
"conditionValue": 3,
"pageUrls": [
"23-laminat-floorwood-maxima"
],
"isNested": false,
"title": ""
}
]
body.attributeMarker(bắt buộc): chuỗi | null
Định danh văn bản của thuộc tính đã được lập chỉ mục mà theo đó các giá trị được lọc. Mặc định: null.
ví dụ: "màu sắc"
body.conditionMarker: chuỗi | null
ID của điều kiện lọc mà theo đó các giá trị được lọc. Mặc định: null.
ví dụ: "bằng"
body.conditionValue(bắt buộc): số | null
Giá trị mà đang được tìm kiếm, mặc định null.
ví dụ: "mới"
body.pageUrl: chuỗi | null
URL của đối tượng trang danh mục.
ví dụ: ["23-laminat-floorwood-maxima"]
body.pageUrls: chuỗi[] | null
URL của đối tượng trang danh mục.
ví dụ: ["23-laminat-floorwood-maxima"]
body.statusMarker: chuỗi | null
Định danh văn bản của trạng thái trang sản phẩm (mặc định không được thiết lập).
ví dụ: "còn hàng"
body.title: chuỗi | null
Tên sản phẩm.
ví dụ: "Laminatboden Maxima"
body.isNested: boolean
Cờ cho các thuộc tính lồng nhau, mặc định false.
ví dụ: true
langCode: chuỗi
Mã ngôn ngữ. Mặc định: "en_US"
ví dụ: "en_US"
userQuery: IProductsQuery
Tham số truy vấn tùy chọn
ví dụ:
{
"limit": 30,
"offset": 0,
"sortOrder": "DESC",
"sortKey": "id",
"signPrice": "orders",
"templateMarker": "template_12345",
"statusMarker": "in_stock",
"conditionValue": "new",
"conditionMarker": "eq",
"attributeMarker": "color"
}
userQuery.offset(bắt buộc): số
Tham số cho phân trang. Mặc định: 0.
userQuery.limit(bắt buộc): số
Tham số cho phân trang. Mặc định: 30.
userQuery.sortOrder(bắt buộc): chuỗi
Thứ tự sắp xếp "DESC" | "ASC". Mặc định: "DESC".
userQuery.sortKey(bắt buộc): chuỗi
Trường để sắp xếp (mặc định - null). Các giá trị có thể: "id", "vị trí", "tiêu đề", "ngày", "giá". Mặc định: null.
userQuery.signPrice: chuỗi
Dấu giá. Mặc định: null.
userQuery.templateMarker: chuỗi | null
Đánh dấu mẫu trang sản phẩm, mặc định null.
ví dụ: "template_12345"
userQuery.statusMarker: chuỗi | null
Đánh dấu trạng thái trang sản phẩm, mặc định null.
ví dụ: "còn hàng"
userQuery.conditionValue: chuỗi | null
Giá trị mà đang được tìm kiếm, mặc định null.
ví dụ: "mới"
userQuery.attributeMarker: chuỗi | null
Định danh văn bản của thuộc tính đã được lập chỉ mục mà theo đó các giá trị được lọc, mặc định null.
ví dụ: "màu sắc"
userQuery.conditionMarker: chuỗi | null
Đánh dấu của điều kiện lọc mà theo đó các giá trị được lọc, mặc định null.
ví dụ: "bằng"
userQuery.langCode: chuỗi
Mã ngôn ngữ. Mặc định: "en_US".
userQuery.ids: chuỗi
Danh sách ID sản phẩm phân cách bằng dấu phẩy — được sử dụng bởi getProductsByIds.
ví dụ: "1,2,3"
Mặc định, bạn có thể lấy 10 đối tượng. Điều này là do giới hạn bản ghi trong cài đặt quyền của module.
Để phân trang hoạt động chính xác, bạn cần cấu hình Quyền module theo nhu cầu của bạn trong phần tương ứng.
Ví dụ
Ví dụ tối thiểu
const response = await Products.getProductsByPageId( id, body );
Ví dụ với tham số body
const body = [ { "attributeMarker": "giá", "conditionMarker": "mth", "conditionValue": 1, "statusMarker": "đang chờ", "pageUrls": [ "23-laminat-floorwood-maxima" ], "isNested": false, "title": "" }, { "attributeMarker": "giá", "conditionMarker": "lth", "conditionValue": 3, "pageUrls": [ "23-laminat-floorwood-maxima" ], "isNested": false, "title": "" }];
const response = await Products.getProductsByPageId( id, body );
Sử dụng bộ lọc để tìm các sản phẩm cụ thể:
attributeMarker: Định danh văn bản của thuộc tính đã được lập chỉ mục mà theo đó các giá trị được lọc. conditionMarker: Loại điều kiện để áp dụng cho giá trị thuộc tính.
| Đánh dấu | Ý nghĩa | Ví dụ |
|---|---|---|
| eq | Bằng | statusId = 1 (chỉ hoạt động) |
| neq | Không bằng | category ≠ "lưu trữ" |
| in | Chứa (một trong số) | category in ["điện tử", "sách"] |
| nin | Không chứa | brand not in ["fake_brand"] |
| exs | Tồn tại (có giá trị) | Có mô tả |
| nexs | Không tồn tại | Không có hình ảnh |
conditionValue: Giá trị để so sánh.
Ví dụ phản hồi
{
"items": [
{
"id": 2954,
"attributeSetIdentifier": "products",
"localizeInfos": {
"title": "Box"
},
"statusLocalizeInfos": {
"title": "Sale"
},
"isVisible": true,
"statusIdentifier": "sale",
"position": 1,
"templateIdentifier": null,
"shortDescTemplateIdentifier": "product_preview",
"price": 51,
"additional": {
"prices": {
"min": 51,
"max": 150
}
},
"sku": null,
"isSync": true,
"categories": [
"catalog"
],
"paymentStages": [
{
"title": "Part A",
"marker": "part_a",
"value": 100
},
{
"title": "Part B",
"marker": "part_b",
"value": 200
}
],
"rating": {
"votes": 42,
"value": 4.5,
"like": 10,
"dislike": 2,
"method": "weighted"
},
"isPositionLocked": false,
"attributeValues": {
"product-name": {
"type": "string",
"value": "product-name",
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
},
"price": {
"type": "integer",
"value": 51,
"isIcon": false,
"position": 1,
"additionalFields": {},
"isProductPreview": false
},
"currency_products": {
"type": "string",
"value": "usd",
"isIcon": false,
"position": 2,
"additionalFields": {},
"isProductPreview": false
},
"img": {
"type": "image",
"value": {
"size": 241636,
"filename": "files/project/product/2954/image/7e0a6a70-a23d-410f-8b6a-f8b4f7483244.png",
"contentType": "image/png",
"downloadLink": "https://your-project.oneentry.cloud/cloud-static/files/project/product/2954/image/7e0a6a70-a23d-410f-8b6a-f8b4f7483244.png"
},
"isIcon": false,
"position": 3,
"additionalFields": {},
"isProductPreview": false
}
},
"moduleFormConfigs": [
{
"id": 12,
"formIdentifier": "review",
"moduleIdentifier": "catalog",
"isGlobal": false,
"isClosed": false,
"isModerate": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"entityIdentifiers": [
{
"id": "catalog",
"isNested": true
}
],
"formDataCount": 374,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 374
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
},
{
"id": 2955,
"attributeSetIdentifier": null,
"localizeInfos": {
"title": "Product"
},
"statusLocalizeInfos": {
"title": "Sale"
},
"isVisible": true,
"statusIdentifier": "sale",
"position": 2,
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"price": null,
"additional": {
"prices": {
"min": 51,
"max": 150
}
},
"sku": null,
"isSync": false,
"categories": [
"catalog"
],
"paymentStages": null,
"rating": {},
"isPositionLocked": false,
"attributeValues": {},
"moduleFormConfigs": [
{
"id": 12,
"formIdentifier": "review",
"moduleIdentifier": "catalog",
"isGlobal": false,
"isClosed": false,
"isModerate": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"entityIdentifiers": [
{
"id": "catalog",
"isNested": true
}
],
"formDataCount": 374,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 374
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
},
{
"id": 2957,
"attributeSetIdentifier": "products",
"localizeInfos": {
"title": "Cosmo"
},
"statusLocalizeInfos": {
"title": "Sale"
},
"isVisible": true,
"statusIdentifier": "sale",
"position": 3,
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"price": 150,
"additional": {
"prices": {
"min": 51,
"max": 150
}
},
"sku": null,
"isSync": true,
"categories": [
"catalog"
],
"paymentStages": null,
"rating": {},
"isPositionLocked": false,
"attributeValues": {
"product-name": {
"type": "string",
"value": "Cosmo",
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
},
"price": {
"type": "integer",
"value": 150,
"isIcon": false,
"position": 1,
"additionalFields": {},
"isProductPreview": false
},
"currency_products": {
"type": "string",
"value": "",
"isIcon": false,
"position": 2,
"additionalFields": {},
"isProductPreview": false
},
"img": {
"type": "image",
"value": [],
"isIcon": false,
"position": 3,
"additionalFields": {},
"isProductPreview": false
}
},
"moduleFormConfigs": [
{
"id": 12,
"formIdentifier": "review",
"moduleIdentifier": "catalog",
"isGlobal": false,
"isClosed": false,
"isModerate": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"entityIdentifiers": [
{
"id": "catalog",
"isNested": true
}
],
"formDataCount": 374,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 374
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
}
],
"total": 3
}
Sơ đồ phản hồi
Sơ đồ: IProductsResponse
total: số
Tổng số sản phẩm được tìm thấy.
ví dụ: 100
items: IProductsEntity[]
Mảng các thực thể sản phẩm.
ví dụ:
[
{
"id": 12345,
"title": "Product 1"
},
{
"id": 67890,
"title": "Product 2"
}
]
items.id: số
Định danh duy nhất.
ví dụ: 12345
items.localizeInfos: ILocalizeInfo
Tên của các sản phẩm, tính đến việc địa phương hóa.
ví dụ:
items.statusIdentifier: chuỗi | null
Định danh trạng thái trang sản phẩm (có thể là null).
ví dụ: "còn hàng"
items.statusLocalizeInfos: ILocalizeInfo
Tên trạng thái đã được địa phương hóa cho sản phẩm.
ví dụ: { "title": "Giảm giá" }
items.attributeSetIdentifier: chuỗi | null
Tập hợp các ID thuộc tính.
ví dụ: "set_12345"
items.position: số
Số thứ tự mục (để sắp xếp).
ví dụ: 1
items.price: số | null
Giá trị của giá trang sản phẩm lấy từ chỉ mục.
ví dụ: 150.00
items.additional: đối tượng
Giá trị bổ sung từ chỉ mục.
ví dụ: { prices: { min: 5 max: 150 } }
items.sku: chuỗi | null
SKU sản phẩm (Đơn vị giữ hàng), có thể là null.
ví dụ: "SKU_12345"
items.isSync: boolean
Chỉ báo về việc lập chỉ mục trang.
ví dụ: true
items.attributeValues: IAttributeValues
Mảng các giá trị thuộc tính từ chỉ mục, được biểu diễn.
ví dụ:
[
{
"id": "color",
"value": "red"
}
]
items.categories: chuỗi[]
Danh mục sản phẩm.
ví dụ:
[
1,
2,
3
]
items.isVisible: boolean
Dấu hiệu về tính khả dụng của trang.
ví dụ: true
items.moduleFormConfigs: Array<IFormConfig>
Cấu hình biểu mẫu module (tùy chọn).
items.rating: IRating
Dữ liệu đánh giá.
items.isPositionLocked: boolean
Chỉ báo khóa vị trí sắp xếp (tùy chọn).
ví dụ: false
items.relatedIds: số[]
ID của các trang sản phẩm liên quan.
ví dụ:
[
12345,
67890
]
items.paymentStages: không xác định
Dữ liệu các giai đoạn thanh toán (có thể là null).
ví dụ: null
items.discountConfig: Record<string, unknown>
Đối tượng cấu hình giảm giá.
ví dụ:
items.templateIdentifier: chuỗi | null
ID người dùng của mẫu liên kết.
ví dụ: "template_12345"
items.shortDescTemplateIdentifier: chuỗi | null
ID người dùng của mẫu liên kết cho mô tả ngắn.
ví dụ: "short_desc_template_12345"
items.signedPrice: chuỗi
Dấu giá.
items.productPages: IProductPageRef[]
Mảng các tham chiếu trang sản phẩm liên kết sản phẩm với các trang của nó.
ví dụ:
[
{
"id": 16,
"pageId": 4,
"productId": 15,
"positionId": 244,
"categoryPath": "products"
}
]
productPages.id: số
Định danh duy nhất của bản ghi liên kết sản phẩm với trang.
ví dụ: 16
productPages.pageId: số
Định danh của trang mà sản phẩm được liên kết tới.
ví dụ: 4
productPages.productId: số
Định danh của sản phẩm.
ví dụ: 15
productPages.positionId: số
Định danh vị trí sắp xếp trong trang.
ví dụ: 244
productPages.categoryPath: chuỗi
Đường dẫn danh mục của trang mà sản phẩm thuộc về.
ví dụ: "sản phẩm"
items.blocks: chuỗi[]
Mảng các định danh khối.
ví dụ:
[
"block_12345",
"block_67890"
]