getProductsByPageUrl
Cari semua objek produk dengan paginasi untuk kategori yang dipilih (berdasarkan URL-nya).
Deskripsi
Metode ini mencari semua objek produk dengan paginasi untuk kategori yang dipilih, berdasarkan parameter kueri yang diberikan (userQuery). Ini mengembalikan Promise yang menyelesaikan menjadi objek IProductsResponse.
Produk.getProductsByPageUrl(
url,
body,
langCode,
userQuery
);
Skema parameter
Skema
url(diperlukan): string
URL halaman
contoh: "catalog"
body: IFilterParams[]
Badan permintaan. Default: []
contoh:
[
{
"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(diperlukan): string | null
Identifikasi teks dari atribut yang diindeks berdasarkan mana nilai difilter. Default: null.
contoh: "color"
body.conditionMarker: string | null
Id dari kondisi filter berdasarkan mana nilai difilter. Default: null.
contoh: "equals"
body.conditionValue(diperlukan): number | string | null
Nilai yang sedang dicari, default null.
contoh: "new"
body.pageUrl: string | null
URL dari objek halaman kategori.
contoh: ["23-laminat-floorwood-maxima"]
body.pageUrls: string[] | null
URL dari objek halaman kategori.
contoh: ["23-laminat-floorwood-maxima"]
body.statusMarker: string | null
Identifikasi teks dari status halaman produk (default tidak diatur).
contoh: "in_stock"
body.title: string | null
Nama produk.
contoh: "Laminatboden Maxima"
body.isNested: boolean
Flag untuk atribut bersarang, default false.
contoh: true
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(diperlukan): number
Parameter untuk paginasi. Default: 0.
userQuery.limit(diperlukan): number
Parameter untuk paginasi. Default: 30.
userQuery.sortOrder(diperlukan): string
Urutan sortir "DESC" | "ASC". Default: "DESC".
userQuery.sortKey(diperlukan): string
Field untuk sortir (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 sedang dicari, default null.
contoh: "new"
userQuery.attributeMarker: string | null
Identifikasi 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.
💲
signPricemengunci harga yang dikembalikan untuk waktu terbatas — atur ke penanda penyimpanan pesanan Anda. Lihat Memperbaiki harga (signPrice).
Contoh
Contoh minimal
const response = await Products.getProductsByPageUrl('catalog');
Contoh dengan parameter body
const body = [ { "attributeMarker": "price", "conditionMarker": "mth", "conditionValue": 1, "statusMarker": "waiting", "pageUrls": [ "23-laminat-floorwood-maxima" ], "isNested": false, "title": "" }, { "attributeMarker": "price", "conditionMarker": "lth", "conditionValue": 3, "pageUrls": [ "23-laminat-floorwood-maxima" ], "isNested": false, "title": "" }];
const response = await Products.getProductsByPageUrl('catalog', body);
Gunakan filter untuk menemukan produk tertentu:
attributeMarker: Identifikasi teks dari atribut yang diindeks berdasarkan mana nilai difilter. conditionMarker: Jenis kondisi yang diterapkan pada nilai atribut.
| Penanda | Arti | Contoh |
|---|---|---|
| eq | Sama | statusId = 1 (hanya aktif) |
| neq | Tidak sama | kategori ≠ "arsip" |
| in | Mengandung (salah satu) | kategori in ["elektronik", "buku"] |
| nin | Tidak mengandung | merek tidak dalam ["merek_palsu"] |
| exs | Ada (memiliki nilai) | Memiliki deskripsi |
| nexs | Tidak ada | Tidak ada gambar |
conditionValue: Nilai yang dibandingkan.
Contoh respons
{
"items": [
{
"id": 3445,
"localizeInfos": {
"title": "Subscription"
},
"isVisible": true,
"isSync": true,
"sku": null,
"price": 150,
"additional": {
"prices": {
"min": 51,
"max": 180
}
},
"categories": [
"catalog"
],
"statusIdentifier": "sale",
"statusLocalizeInfos": {
"title": "Sale"
},
"templateIdentifier": null,
"shortDescTemplateIdentifier": "product_preview",
"attributeValues": {
"price": {
"type": "integer",
"value": 150,
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
},
"currency_products": {
"type": "string",
"value": "USD",
"isIcon": false,
"position": 1,
"additionalFields": {},
"isProductPreview": false
}
},
"attributeSetIdentifier": "subscription",
"isPositionLocked": false,
"position": 1,
"rating": {},
"paymentStages": null,
"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": 2960,
"localizeInfos": {
"title": "Percent split"
},
"isVisible": true,
"isSync": true,
"sku": null,
"price": 180,
"additional": {
"prices": {
"min": 51,
"max": 180
}
},
"categories": [
"catalog"
],
"statusIdentifier": "sale",
"statusLocalizeInfos": {
"title": "Sale"
},
"templateIdentifier": null,
"shortDescTemplateIdentifier": "product_preview",
"attributeValues": {
"s0": {
"type": "float",
"value": 180,
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
},
"s1": {
"type": "float",
"value": 60,
"isIcon": false,
"position": 1,
"additionalFields": {},
"isProductPreview": false
},
"s2": {
"type": "float",
"value": 40,
"isIcon": false,
"position": 2,
"additionalFields": {},
"isProductPreview": false
},
"currency": {
"type": "string",
"value": "",
"isIcon": false,
"position": 3,
"additionalFields": {},
"isProductPreview": false
}
},
"attributeSetIdentifier": "percent_split",
"isPositionLocked": false,
"position": 2,
"rating": {},
"paymentStages": [
{
"title": "s1",
"value": 108,
"marker": "s1"
},
{
"title": "s2",
"value": 72,
"marker": "s2"
}
],
"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": 2959,
"localizeInfos": {
"title": "Split"
},
"isVisible": true,
"isSync": true,
"sku": null,
"price": 120,
"additional": {
"prices": {
"min": 51,
"max": 180
}
},
"categories": [
"catalog"
],
"statusIdentifier": "sale",
"statusLocalizeInfos": {
"title": "Sale"
},
"templateIdentifier": null,
"shortDescTemplateIdentifier": "product_preview",
"attributeValues": {
"p": {
"type": "float",
"value": 120,
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
},
"p1": {
"type": "float",
"value": 40,
"isIcon": false,
"position": 1,
"additionalFields": {},
"isProductPreview": false
},
"p2": {
"type": "float",
"value": 60,
"isIcon": false,
"position": 2,
"additionalFields": {},
"isProductPreview": false
},
"p3": {
"type": "float",
"value": 20,
"isIcon": false,
"position": 3,
"additionalFields": {},
"isProductPreview": false
},
"currency": {
"type": "string",
"value": "usd",
"isIcon": false,
"position": 4,
"additionalFields": {},
"isProductPreview": false
}
},
"attributeSetIdentifier": "test",
"isPositionLocked": false,
"position": 3,
"rating": {},
"paymentStages": [
{
"title": "p1",
"value": 40,
"marker": "p1"
},
{
"title": "p2",
"value": 60,
"marker": "p2"
},
{
"title": "p3",
"value": 20,
"marker": "p3"
}
],
"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": {}
},
"..."
],
"total": 6
}
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
Identifikasi unik.
contoh: 12345
items.localizeInfos: ILocalizeInfo
Nama produk, dengan mempertimbangkan lokalisasi.
contoh:
{}
items.statusIdentifier: string | null
Identifikasi 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 sortir).
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 sortir (opsional).
contoh: false
items.relatedIds: number[]
Id dari 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
Tanda harga.
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 dari identifikasi 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).
Contoh penggunaan
Panduan langkah demi langkah dalam dokumentasi:
- Produk berdasarkan halaman — ambil semua produk yang termasuk dalam halaman katalog tertentu.
Coba secara langsung
Jalankan metode ini secara interaktif di JS SDK sandbox — sambungkan URL Proyek dan Token Aplikasi Anda pada kunjungan pertama, lalu buka:
- Produk berdasarkan halaman — ambil semua produk yang termasuk dalam halaman katalog tertentu.