getRelatedProductsById
Cari semua objek produk terkait berdasarkan id halaman.
Deskripsiβ
Metode ini mengambil semua objek halaman produk terkait untuk produk tertentu berdasarkan pengidentifikasi (id) dari API. Ini menerima parameter userQuery opsional untuk parameter kueri tambahan seperti offset, limit, sortOrder, dan sortKey. Ini mengembalikan Promise yang menyelesaikan menjadi objek IProductsResponse.
Produk.getRelatedProductsById(
id,
langCode,
userQuery
);
Skema parameterβ
Skema
id: number
Pengidentifikasi halaman produk untuk menemukan hubungan
contoh: 12345
langCode: string
Kode bahasa. Default: "en_US"
contoh: "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
Bidang untuk pengurutan (default - null). Nilai yang mungkin: "id", "position", "title", "date", "price". Default: null.
userQuery.signPrice: string
Penanda penyimpanan pesanan untuk penetapan harga. Jika parameter ini diatur, harga akan tetap untuk waktu tertentu.
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 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.
π²
signPricemengunci harga yang dikembalikan untuk waktu terbatas β atur ke penanda penyimpanan pesanan Anda. Lihat Memperbaiki harga (signPrice).
Contohβ
Contoh minimalβ
const response = await Products.getRelatedProductsById(1);
Contoh dengan atributβ
const userQuery = { "offset": 0, "limit": 30, "sortOrder": "DESC", "sortKey": "id"};
const response = await Products.getRelatedProductsById(1, 'en_US', userQuery);
Gunakan kondisi untuk menemukan data produk tertentu:
attributeMarker: Pengidentifikasi teks dari atribut yang diindeks berdasarkan mana nilai difilter. conditionMarker: Jenis kondisi yang diterapkan pada nilai atribut.
| Marker | Arti | Contoh |
|---|---|---|
| eq | Sama | statusId = 1 (hanya aktif) |
| neq | Tidak sama | role β "Viewer" |
| in | Mengandung (salah satu) | role in ["Editor", "Manager"] |
| nin | Tidak mengandung | email not in ["@temp.com"] |
| exs | Ada (memiliki nilai) | Memiliki lastLogin |
| nexs | Tidak ada | Tidak pernah login |
conditionValue: Nilai yang dibandingkan.
Contoh responsβ
{
"total": 15,
"items": [
{
"localizeInfos": {
"title": "Π’ΠΎΠ²Π°Ρ"
},
"paymentStages": [
{
"title": "Part A",
"marker": "part_a",
"value": 100
},
{
"title": "Part B",
"marker": "part_b",
"value": 200
}
],
"id": 1764,
"isVisible": true,
"isSync": true,
"price": 0,
"additional": {
"prices": {
"min": 0,
"max": 100
}
},
"blocks": [],
"sku": "0-123",
"productPages": [
{
"id": 8997,
"pageId": 1176,
"productId": 8872
}
],
"rating": {
"votes": 42,
"value": 4.5,
"like": 10,
"dislike": 2,
"method": "weighted"
},
"statusLocalizeInfos": {
"title": "Π’ΠΎΠ²Π°Ρ"
},
"templateIdentifier": "my-template",
"shortDescTemplateIdentifier": "my-template-short",
"attributeValues": {
"marker": {
"value": "",
"type": "string",
"position": 1,
"isProductPreview": false,
"isIcon": false,
"additionalFields": {
"marker": {
"type": "string",
"value": "test"
}
}
}
},
"attributeSetIdentifier": "my-set",
"statusIdentifier": "my-status",
"position": 1,
"signedPrice": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"formModuleConfigs": [
{
"id": 1,
"formIdentifier": "reg",
"moduleIdentifier": "user",
"entityIdentifiers": [],
"isGlobal": true,
"isClosed": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"formDataCount": 0,
"entityFormDataCount": {},
"exceptionIds": [
"shop"
],
"nestedEntityIdentifiers": [
"avto-aksessuary",
"fm-moduliatory",
"avtomobilnye-derzhateli",
"videoregistratory-radiolokatory"
],
"ratingCalculation": "average",
"allowHalfRatings": true,
"maxRatingScale": 5,
"isAnonymous": true,
"allowRerating": true,
"isRating": true
}
],
"discountConfig": {
"discounts": [
{
"id": 5,
"identifier": "summer-sale",
"type": "DISCOUNT",
"localizeInfos": {
"title": "Summer Sale"
},
"startDate": "2026-01-01T06:32:19.736Z",
"endDate": "2026-01-28T06:32:22.632Z",
"discountValue": {
"value": 30,
"maxAmount": 0,
"discountType": "FIXED_PRICE",
"applicability": "TO_PRODUCT"
},
"exclusions": [
{
"id": 2
}
],
"position": 3,
"conditionLogic": "OR",
"gifts": [
{
"id": 3,
"localizeInfos": {
"title": "hhh222"
},
"attributeSetIdentifier": "attr-set-1",
"statusIdentifier": null,
"statusLocalizeInfos": {},
"templateIdentifier": null,
"price": 90,
"sku": null,
"attributeValues": {
"price1": {
"type": "integer",
"value": "90",
"isIcon": false,
"position": 0,
"additionalFields": [],
"isProductPreview": false
}
},
"isVisible": true
}
],
"conditions": [
{
"conditionType": "PRODUCT",
"entityIds": [
{
"id": 4,
"isNested": false
},
{
"isNested": false
}
],
"value": null
},
{
"conditionType": "ATTRIBUTE",
"entityIds": [
{
"isNested": false
}
],
"value": {
"value": "100",
"condition": "eq"
}
}
]
}
],
"discountPrice": 90,
"settings": {
"allowStacking": true,
"maxDiscountValue": 30,
"allowGiftStacking": false
}
}
},
{
"localizeInfos": {
"title": "Π’ΠΎΠ²Π°Ρ"
},
"paymentStages": [
{
"title": "Part A",
"marker": "part_a",
"value": 100
},
{
"title": "Part B",
"marker": "part_b",
"value": 200
}
],
"id": 1764,
"isVisible": true,
"isSync": true,
"price": 0,
"additional": {
"prices": {
"min": 0,
"max": 100
}
},
"blocks": [],
"sku": "0-123",
"productPages": [
{
"id": 8997,
"pageId": 1176,
"productId": 8872
}
],
"rating": {
"votes": 42,
"value": 4.5,
"like": 10,
"dislike": 2,
"method": "weighted"
},
"statusLocalizeInfos": {
"title": "Π’ΠΎΠ²Π°Ρ"
},
"templateIdentifier": "my-template",
"shortDescTemplateIdentifier": "my-template-short",
"attributeValues": {
"marker": {
"value": "",
"type": "string",
"position": 1,
"isProductPreview": false,
"isIcon": false,
"additionalFields": {
"marker": {
"type": "string",
"value": "test"
}
}
}
},
"attributeSetIdentifier": "my-set",
"statusIdentifier": "my-status",
"position": 1,
"signedPrice": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"formModuleConfigs": [
{
"id": 1,
"formIdentifier": "reg",
"moduleIdentifier": "user",
"entityIdentifiers": [],
"isGlobal": true,
"isClosed": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"formDataCount": 0,
"entityFormDataCount": {},
"exceptionIds": [
"shop"
],
"nestedEntityIdentifiers": [
"avto-aksessuary",
"fm-moduliatory",
"avtomobilnye-derzhateli",
"videoregistratory-radiolokatory"
],
"ratingCalculation": "average",
"allowHalfRatings": true,
"maxRatingScale": 5,
"isAnonymous": true,
"allowRerating": true,
"isRating": true
}
],
"discountConfig": {
"discounts": [
{
"id": 5,
"identifier": "summer-sale",
"type": "DISCOUNT",
"localizeInfos": {
"title": "Summer Sale"
},
"startDate": "2026-01-01T06:32:19.736Z",
"endDate": "2026-01-28T06:32:22.632Z",
"discountValue": {
"value": 30,
"maxAmount": 0,
"discountType": "FIXED_PRICE",
"applicability": "TO_PRODUCT"
},
"exclusions": [
{
"id": 2
}
],
"position": 3,
"conditionLogic": "OR",
"gifts": [
{
"id": 3,
"localizeInfos": {
"title": "hhh222"
},
"attributeSetIdentifier": "attr-set-1",
"statusIdentifier": null,
"statusLocalizeInfos": {},
"templateIdentifier": null,
"price": 90,
"sku": null,
"attributeValues": {
"price1": {
"type": "integer",
"value": "90",
"isIcon": false,
"position": 0,
"additionalFields": [],
"isProductPreview": false
}
},
"isVisible": true
}
],
"conditions": [
{
"conditionType": "PRODUCT",
"entityIds": [
{
"id": 4,
"isNested": false
},
{
"isNested": false
}
],
"value": null
},
{
"conditionType": "ATTRIBUTE",
"entityIds": [
{
"isNested": false
}
],
"value": {
"value": "100",
"condition": "eq"
}
}
]
}
],
"discountPrice": 90,
"settings": {
"allowStacking": true,
"maxDiscountValue": 30,
"allowGiftStacking": false
}
}
}
]
}
Skema responsβ
Skema: IProductsResponse
total: number
Jumlah total produk yang ditemukan.
contoh: 100
items: IProductsEntity[]
Array dari entitas produk.
contoh:
[
{
"id": 12345,
"title": "Product 1"
},
{
"id": 67890,
"title": "Product 2"
}
]
items.id: number
Pengidentifikasi unik.
contoh: 12345
items.localizeInfos: ILocalizeInfo
Nama produk, dengan mempertimbangkan lokalisasi.
contoh:
{}
items.statusIdentifier: string | null
Pengidentifikasi status halaman produk (mungkin null).
contoh: "in_stock"
items.statusLocalizeInfos: ILocalizeInfo
Nama status yang dilokalisasi untuk produk.
contoh:
{ "title": "Sale" }
items.attributeSetIdentifier: string | null
Set id atribut.
contoh: "set_12345"
items.position: number
Nomor item (untuk pengurutan).
contoh: 1
items.price: number | null
Nilai harga halaman produk yang diambil dari indeks.
contoh: 150.00
items.additional: object
Nilai tambahan dari indeks.
contoh:
{
"prices": {
"min": 5,
"max": 150
}
}
items.sku: string | null
SKU produk (Stock Keeping Unit), mungkin null.
contoh: "SKU_12345"
items.isSync: boolean
Indikasi pengindeksan halaman.
contoh: true
items.attributeValues: IAttributeValues
Array nilai atribut dari indeks, yang direpresentasikan.
contoh:
[
{
"id": "color",
"value": "red"
}
]
items.categories: string[]
Kategori produk.
contoh:
[
1,
2,
3
]
items.isVisible: boolean
Tanda visibilitas halaman.
contoh: true
items.moduleFormConfigs: Array<IFormConfig>
Konfigurasi formulir modul (opsional).
items.rating: IRating
Data penilaian.
items.isPositionLocked: boolean
Indikator penguncian posisi pengurutan (opsional).
contoh: false
items.relatedIds: number[]
Id halaman produk terkait.
contoh:
[
12345,
67890
]
items.paymentStages: unknown
Data tahap pembayaran (mungkin null).
contoh: null
items.distance: number
Jarak relevansi pencarian vektor (semantik). Hanya ada dalam hasil pencarian vektor.
contoh: 0.42
items.discountConfig: Record<string, unknown>
Objek konfigurasi diskon.
contoh:
{}
items.templateIdentifier: string | null
Id pengguna dari template yang terhubung.
contoh: "template_12345"
items.shortDescTemplateIdentifier: string | null
Id pengguna dari template yang terhubung untuk deskripsi singkat.
contoh: "short_desc_template_12345"
items.signedPrice: string
Harga yang ditandatangani dari produk diperoleh bersama dengan data produk ketika signPrice diatur.
contoh: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
items.productPages: IProductPageRef[]
Array referensi halaman produk yang menghubungkan produk ke halamannya.
contoh:
[
{
"id": 16,
"pageId": 4,
"productId": 15,
"positionId": 244,
"categoryPath": "products"
}
]
items.blocks: string[]
Array pengidentifikasi blok.
contoh:
[
"block_12345",
"block_67890"
]
π
signedPriceadalah token yang ditandatangani yang membawa harga yang terkunci β kirimkan kembali saat Anda membuat pesanan. Lihat Harga produk tetap (signedPrice).