Chuyển đến nội dung chính

getProductsByIds

Lấy nhiều sản phẩm theo các id của chúng.

Mô tả

Phương thức này truy xuất nhiều đối tượng sản phẩm theo các định danh của chúng (các id được phân tách bằng dấu phẩy). Nó trả về một Promise mà khi hoàn thành sẽ trả về một mảng các đối tượng IProductsEntity.

Products.getProductsByIds( ids, langCode, userQuery );

Sơ đồ tham số

Sơ đồ

ids(bắt buộc): string
Các định danh trang sản phẩm để tìm mối quan hệ
ví dụ: "12345,67890"

langCode: string
Mã ngôn ngữ. Mặc định là "en_US"

userQuery: IProductsByIdsQuery
Tham số truy vấn tùy chọn
ví dụ:

{
"limit": 30,
"offset": 0,
"signPrice": "orders"
}

userQuery.signPrice: string
Dấu hiệu lưu trữ đơn hàng để cố định giá.

Mặc định, bạn có thể truy xuất 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.

💲 signPrice khóa giá đã trả về trong một khoảng thời gian giới hạn — đặt nó thành dấu hiệu lưu trữ đơn hàng của bạn. Xem Cố định giá (signPrice).

Ví dụ

Ví dụ tối thiểu

const response = await Products.getProductsByIds('1, 5, 8');

Ví dụ với các thuộc tính

const userQuery = {
"offset": 0,
"limit": 30,
"sortOrder": "DESC",
"sortKey": "id"
};
const response = await Products.getProductsByIds('1, 5, 8', 'en_US', userQuery);
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.

MarkerÝ nghĩaVí dụ
eqBằngstatusId = 1 (chỉ hoạt động)
neqKhông bằngcategory ≠ "archived"
inChứa (một trong số)category in ["electronics", "books"]
ninKhông chứabrand not in ["fake_brand"]
exsTồn tại (có giá trị)Có mô tả
nexsKhông tồn tạiKhông có hình ảnh
patKhớp với mẫutitle matches "jacket"
sameKhớp chính xác với giá trịsku là chính xác "ABC-123"
same_partKhớp một phần của giá trị chính xácphần của sku là chính xác "ABC"

conditionValue: Giá trị để so sánh.

Ví dụ phản hồi

[
{
"id": 2954,
"localizeInfos": {
"title": "Box"
},
"isVisible": true,
"isSync": true,
"sku": null,
"price": 51,
"additional": {
"prices": {
"min": 51,
"max": 180
}
},
"categories": [
"catalog"
],
"statusIdentifier": "sale",
"statusLocalizeInfos": {
"title": "Sale"
},
"templateIdentifier": null,
"shortDescTemplateIdentifier": "product_preview",
"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": 742690,
"filename": "files/project/product/2954/image/48853cbf-4462-42c6-8b99-d14f721c21a2.jpeg",
"contentType": "image/jpeg",
"previewLink": {
"default": [
"data:image/webp;base64,UklGRmwAAABXRUJQVlA4IGAAAADQAQCdASoQABAABUB8JbACdACZZ3P8AAD+wGsUXBs/r069WpdrcuaTNfVxqWIetuaIdIvOMkSp9iJRxE+KhA2YHbrVehhMRj/j5+DUdjWn1v5YtZ7vw0IgPi9R5vkAAAA=",
"https://your-project.oneentry.cloud/cloud-static/files/project/product/2954/image/48853cbf-4462-42c6-8b99-d14f721c21a2.preview.default.jpeg"
]
},
"downloadLink": "https://your-project.oneentry.cloud/cloud-static/files/project/product/2954/image/48853cbf-4462-42c6-8b99-d14f721c21a2.jpeg",
"defaultPreview": "default"
},
"isIcon": false,
"position": 3,
"additionalFields": {},
"isProductPreview": true
}
},
"attributeSetIdentifier": "products",
"isPositionLocked": false,
"position": 1,
"rating": {},
"paymentStages": null,
"productPages": [
{
"id": 2847,
"pageId": 10,
"productId": 2954,
"positionId": 3190,
"categoryPath": "catalog"
}
],
"blocks": [
"product_block",
"test",
"similar"
],
"moduleFormConfigs": [
{
"id": 12,
"formIdentifier": "review",
"moduleIdentifier": "catalog",
"isGlobal": false,
"isClosed": false,
"isModerate": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"entityIdentifiers": [
{
"id": "catalog",
"isNested": true
}
],
"formDataCount": 688,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 688
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
},
{
"id": 2955,
"localizeInfos": {
"title": "Product"
},
"isVisible": true,
"isSync": true,
"sku": null,
"price": 150,
"additional": {
"prices": {
"min": 51,
"max": 180
}
},
"categories": [
"catalog"
],
"statusIdentifier": "sale",
"statusLocalizeInfos": {
"title": "Sale"
},
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"attributeValues": {
"p": {
"type": "float",
"value": 150,
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
},
"p1": {
"type": "float",
"value": 50,
"isIcon": false,
"position": 1,
"additionalFields": {},
"isProductPreview": false
},
"p2": {
"type": "float",
"value": 50,
"isIcon": false,
"position": 2,
"additionalFields": {},
"isProductPreview": false
},
"p3": {
"type": "float",
"value": 50,
"isIcon": false,
"position": 3,
"additionalFields": {},
"isProductPreview": false
},
"currency": {
"type": "string",
"value": "USD",
"isIcon": false,
"position": 4,
"additionalFields": {},
"isProductPreview": false
}
},
"attributeSetIdentifier": "test",
"isPositionLocked": false,
"position": 2,
"rating": {},
"paymentStages": [
{
"title": "p1",
"value": 50,
"marker": "p1"
},
{
"title": "p2",
"value": 50,
"marker": "p2"
},
{
"title": "p3",
"value": 50,
"marker": "p3"
}
],
"productPages": [
{
"id": 2848,
"pageId": 10,
"productId": 2955,
"positionId": 3191,
"categoryPath": "catalog"
}
],
"blocks": [
"product_block",
"test",
"similar"
],
"moduleFormConfigs": [
{
"id": 12,
"formIdentifier": "review",
"moduleIdentifier": "catalog",
"isGlobal": false,
"isClosed": false,
"isModerate": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"entityIdentifiers": [
{
"id": "catalog",
"isNested": true
}
],
"formDataCount": 688,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 688
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
}
]

Sơ đồ phản hồi

Sơ đồ: IProductsEntity[]

id: number
Định danh duy nhất.
ví dụ: 12345

localizeInfos: ILocalizeInfo
Tên của các sản phẩm, tính đến việc địa phương hóa.
ví dụ:

{}

statusIdentifier: string | null
Các định danh trạng thái trang sản phẩm (có thể là null).
ví dụ: "in_stock"

statusLocalizeInfos: ILocalizeInfo
Tên trạng thái đã địa phương hóa cho sản phẩm.
ví dụ:

{ "title": "Sale" }

attributeSetIdentifier: string | null
Tập hợp các id thuộc tính.
ví dụ: "set_12345"

position: number
Số thứ tự mục (để sắp xếp).
ví dụ: 1

price: number | null
Giá trị của giá trang sản phẩm lấy từ chỉ mục.
ví dụ: 150.00

additional: object
Giá trị bổ sung từ chỉ mục.
ví dụ:

{
"prices": {
"min": 5,
"max": 150
}
}

sku: string | null
SKU sản phẩm (Đơn vị lưu kho), có thể là null.
ví dụ: "SKU_12345"

isSync: boolean
Chỉ báo về việc lập chỉ mục trang.
ví dụ: true

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"
}
]

categories: string[]
Các danh mục sản phẩm.
ví dụ:

[
1,
2,
3
]

isVisible: boolean
Dấu hiệu về tính khả thi của trang.
ví dụ: true

moduleFormConfigs: Array<IFormConfig>
Cấu hình biểu mẫu module (tùy chọn).

rating: IRating
Dữ liệu đánh giá.

isPositionLocked: boolean
Chỉ báo khóa vị trí sắp xếp (tùy chọn).
ví dụ: false

relatedIds: number[]
Id của các trang sản phẩm liên quan.
ví dụ:

[
12345,
67890
]

paymentStages: unknown
Cấu trúc dữ liệu các giai đoạn thanh toán (có thể là null).
ví dụ: null

distance: number
Khoảng cách liên quan đến tìm kiếm vector (ngữ nghĩa). Chỉ có trong kết quả của tìm kiếm vector.
ví dụ: 0.42

discountConfig: Record<string, unknown>
Đối tượng cấu hình giảm giá.
ví dụ:

{}

templateIdentifier: string | null
Id người dùng của mẫu liên kết.
ví dụ: "template_12345"

shortDescTemplateIdentifier: string | 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"

signedPrice: string
Giá đã ký của sản phẩm được lấy cùng với dữ liệu sản phẩm khi signPrice được thiết lập.
xem: Giá sản phẩm cố định
ví dụ: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."

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: number
Đị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: number
Định danh của trang mà sản phẩm được liên kết.
ví dụ: 4

productPages.productId: number
Định danh của sản phẩm.
ví dụ: 15

productPages.positionId: number
Định danh vị trí sắp xếp trong trang.
ví dụ: 244

productPages.categoryPath: string
Đường dẫn danh mục của trang mà sản phẩm thuộc về.
ví dụ: "products"

blocks: string[]
Mảng các định danh khối.
ví dụ:

[
"block_12345",
"block_67890"
]

🔒 signedPrice là token đã ký mang giá đã khóa — hãy truyền lại khi bạn tạo đơn hàng. Xem Giá sản phẩm cố định (signedPrice).


Ví dụ sử dụng

Hướng dẫn từng bước trong tài liệu:

  • Lấy sản phẩm theo ID — lấy nhiều sản phẩm cùng một lúc với danh sách ID được phân tách bằng dấu phẩy.

Thử nghiệm trực tiếp

Chạy phương thức này một cách tương tác trong JS SDK sandbox — kết nối URL Dự án và Token Ứng dụng của bạn khi truy cập lần đầu, sau đó mở:

  • Lấy sản phẩm theo ID — lấy nhiều sản phẩm cùng một lúc với danh sách ID được phân tách bằng dấu phẩy.