Lewati ke konten utama

getProductsByIds

Mengambil beberapa produk berdasarkan id-nya.

Deskripsi

Metode ini mengambil beberapa objek produk berdasarkan pengidentifikasi mereka (id yang dipisahkan dengan koma). Ini mengembalikan sebuah Promise yang menyelesaikan menjadi array dari objek IProductsEntity.

Produk.getProductsByIds( ids, langCode, userQuery );

Skema parameter

Skema

ids(required): string
Pengidentifikasi halaman produk untuk menemukan hubungan
contoh: "12345,67890"

langCode: string
Kode bahasa. Default "en_US"

userQuery: IProductsQuery
Parameter kueri set opsional
contoh:

{
"limit": 30,
"offset": 0,
"sortOrder": "DESC",
"sortKey": "id",
"signPrice": "orders",
"templateMarker": "template_12345",
"statusMarker": "in_stock",
"conditionValue": "new",
"conditionMarker": "eq",
"attributeMarker": "color"
}

userQuery.offset(required): number
Parameter untuk paginasi. Default: 0.

userQuery.limit(required): number
Parameter untuk paginasi. Default: 30.

userQuery.sortOrder(required): string
Urutan pengurutan "DESC" | "ASC". Default: "DESC".

userQuery.sortKey(required): string
Field untuk pengurutan (default - null). Nilai yang mungkin: "id", "position", "title", "date", "price". Default: null.

userQuery.signPrice: string
Tanda harga. Default: null.

userQuery.templateMarker: string | null
Penanda template halaman produk, default null.
contoh: "template_12345"

userQuery.statusMarker: string | null
Penanda status halaman produk, default null.
contoh: "in_stock"

userQuery.conditionValue: string | null
Nilai yang dicari, default null.
contoh: "new"

userQuery.attributeMarker: string | null
Pengidentifikasi teks dari atribut yang diindeks berdasarkan mana nilai difilter, default null.
contoh: "color"

userQuery.conditionMarker: string | null
Penanda kondisi filter berdasarkan mana nilai difilter, default null.
contoh: "equals"

userQuery.langCode: string
Kode bahasa. Default: "en_US".

userQuery.ids: string
Daftar id produk yang dipisahkan dengan koma — digunakan oleh getProductsByIds.
contoh: "1,2,3"

Secara default, Anda dapat mengambil 10 objek. Ini disebabkan oleh batasan catatan dalam pengaturan izin modul.
Untuk paginasi berfungsi dengan benar, Anda perlu mengonfigurasi Izin Modul sesuai kebutuhan Anda di bagian yang sesuai.

💲 signPrice mengunci harga yang dikembalikan untuk waktu terbatas — atur ke penanda penyimpanan pesanan Anda. Lihat Memperbaiki harga (signPrice).

Contoh

Contoh minimal

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

Contoh dengan atribut

const userQuery = {
"offset": 0,
"limit": 30,
"sortOrder": "DESC",
"sortKey": "id"
};
const response = await Products.getProductsByIds('1, 5, 8', 'en_US', userQuery);
Gunakan filter untuk menemukan produk tertentu:

attributeMarker: Pengidentifikasi teks dari atribut yang diindeks berdasarkan mana nilai difilter. conditionMarker: Jenis kondisi yang diterapkan pada nilai atribut.

MarkerArtiContoh
eqSama denganstatusId = 1 (hanya aktif)
neqTidak sama dengankategori ≠ "arsip"
inMengandung (salah satu)kategori in ["elektronik", "buku"]
ninTidak mengandungmerek tidak in ["merek_palsu"]
exsAda (memiliki nilai)Memiliki deskripsi
nexsTidak adaTidak ada gambar

conditionValue: Nilai yang dibandingkan.

Contoh respons

[
{
"id": 2954,
"attributeSetIdentifier": "products",
"localizeInfos": {
"title": "Box"
},
"statusLocalizeInfos": {
"title": "Sale"
},
"isVisible": true,
"statusIdentifier": "sale",
"position": 2,
"templateIdentifier": null,
"shortDescTemplateIdentifier": "product_preview",
"price": 51,
"additional": {
"prices": {
"min": 51,
"max": 180
}
},
"sku": null,
"isSync": true,
"categories": [
"catalog"
],
"paymentStages": null,
"rating": {},
"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
}
},
"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": 590,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 590
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
},
{
"id": 2955,
"attributeSetIdentifier": "test",
"localizeInfos": {
"title": "Product"
},
"statusLocalizeInfos": {
"title": "Sale"
},
"isVisible": true,
"statusIdentifier": "sale",
"position": 1,
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"price": 150,
"additional": {
"prices": {
"min": 51,
"max": 180
}
},
"sku": null,
"isSync": true,
"categories": [
"catalog"
],
"paymentStages": [
{
"title": "p1",
"value": 50,
"marker": "p1"
},
{
"title": "p2",
"value": 50,
"marker": "p2"
},
{
"title": "p3",
"value": 50,
"marker": "p3"
}
],
"rating": {},
"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
}
},
"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": 590,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 590
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
}
]

Skema respons

Skema: IProductsEntity[]

id: number
Pengidentifikasi unik.
contoh: 12345

localizeInfos: ILocalizeInfo
Nama produk, dengan mempertimbangkan lokalisasi.
contoh:

{}

statusIdentifier: string | null
Pengidentifikasi status halaman produk (mungkin null).
contoh: "in_stock"

statusLocalizeInfos: ILocalizeInfo
Nama status yang dilokalisasi untuk produk.
contoh:

{ "title": "Sale" }

attributeSetIdentifier: string | null
Set id atribut.
contoh: "set_12345"

position: number
Nomor item (untuk pengurutan).
contoh: 1

price: number | null
Nilai harga halaman produk yang diambil dari indeks.
contoh: 150.00

additional: object
Nilai tambahan dari indeks.
contoh:

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

sku: string | null
SKU produk (Stock Keeping Unit), mungkin null.
contoh: "SKU_12345"

isSync: boolean
Indikasi pengindeksan halaman.
contoh: true

attributeValues: IAttributeValues
Array nilai atribut dari indeks, yang direpresentasikan.
contoh:

[
{
"id": "color",
"value": "red"
}
]

categories: string[]
Kategori produk.
contoh:

[
1,
2,
3
]

isVisible: boolean
Tanda visibilitas halaman.
contoh: true

moduleFormConfigs: Array<IFormConfig>
Konfigurasi formulir modul (opsional).

rating: IRating
Data penilaian.

isPositionLocked: boolean
Indikator penguncian posisi pengurutan (opsional).
contoh: false

relatedIds: number[]
Id halaman produk terkait.
contoh:

[
12345,
67890
]

paymentStages: unknown
Data tahap pembayaran (mungkin null).
contoh: null

distance: number
Jarak relevansi pencarian vektor (semantik). Hanya ada dalam hasil pencarian vektor.
contoh: 0.42

discountConfig: Record<string, unknown>
Objek konfigurasi diskon.
contoh:

{}

templateIdentifier: string | null
Id pengguna dari template yang terhubung.
contoh: "template_12345"

shortDescTemplateIdentifier: string | null
Id pengguna dari template yang terhubung untuk deskripsi singkat.
contoh: "short_desc_template_12345"

signedPrice: string
Tanda harga.

productPages: IProductPageRef[]
Array referensi halaman produk yang menghubungkan produk ke halamannya.
contoh:

[
{
"id": 16,
"pageId": 4,
"productId": 15,
"positionId": 244,
"categoryPath": "products"
}
]

productPages.id: number
Pengidentifikasi unik dari catatan tautan produk-ke-halaman.
contoh: 16

productPages.pageId: number
Pengidentifikasi halaman tempat produk terhubung.
contoh: 4

productPages.productId: number
Pengidentifikasi produk.
contoh: 15

productPages.positionId: number
Pengidentifikasi posisi pengurutan dalam halaman.
contoh: 244

productPages.categoryPath: string
Jalur kategori dari halaman tempat produk berada.
contoh: "products"

blocks: string[]
Array pengidentifikasi blok.
contoh:

[
"block_12345",
"block_67890"
]

🔒 signedPrice adalah token yang ditandatangani yang membawa harga yang terkunci — kirimkan kembali saat Anda membuat pesanan. Lihat Harga produk tetap (signedPrice).


Contoh penggunaan

Panduan langkah demi langkah dalam dokumentasi:

Coba secara langsung

Jalankan metode ini secara interaktif di JS SDK sandbox — sambungkan URL Proyek dan Token Aplikasi Anda pada kunjungan pertama, lalu buka: