Lewati ke konten utama

getProducts

Cari semua objek produk dengan paginasi dan filter.

Deskripsi

Metode ini mencari semua objek produk dengan paginasi dan filter, berdasarkan parameter kueri yang diberikan (userQuery). Ini mengembalikan Promise yang menyelesaikan menjadi IProductsResponse.

Produk.getProducts( body, langCode, userQuery );

Skema parameter

Skema

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(required): string | null
Pengidentifikasi teks dari atribut yang diindeks di mana nilai difilter. Default: null.
contoh: "color"

body.conditionMarker: string | null
Id dari kondisi filter di mana nilai difilter. Default: null.
contoh: "equals"

body.conditionValue(required): 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
Pengidentifikasi 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: IProductsQueryBase
Parameter kueri yang diatur secara opsional
contoh:

{
"limit": 30,
"offset": 0,
"sortOrder": "DESC",
"sortKey": "id",
"signPrice": "orders"
}

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 diatur, harga ditetapkan untuk waktu tertentu.
lihat: Menetapkan harga

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 Menetapkan harga (signPrice).

Contoh

Contoh minimal

const response = await Products.getProducts();

Contoh dengan parameter body


const body = [
{
"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": ""
}
];

const response = await Products.getProducts(body);

Gunakan filter untuk menemukan produk tertentu:

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

MarkerArtiContoh
eqSamastatusId = 1 (hanya aktif)
neqTidak samakategori ≠ "arsip"
inMengandung (salah satu)kategori in ["elektronik", "buku"]
ninTidak mengandungmerek tidak dalam ["merek_palsu"]
exsAda (memiliki nilai)Memiliki deskripsi
nexsTidak adaTidak ada gambar
patCocok dengan polajudul cocok dengan "jaket"
sameCocok dengan nilai persissku persis "ABC-123"
same_partCocok dengan sebagian nilai persisbagian dari sku persis "ABC"

conditionValue: Nilai untuk 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": 688,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 688
},
"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": 688,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 688
},
"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": 688,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 688
},
"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
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 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
Harga yang ditandatangani dari produk diperoleh bersama dengan data produk ketika signPrice diatur.
lihat: Harga produk tetap
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"
]

totalFound: number
Jumlah produk yang cocok sebelum batas diterapkan; dikembalikan oleh endpoint produk blok (similarProducts, rekomendasi keranjang/daftar keinginan, sering dipesan). Opsional.
contoh: 2

🔒 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:

  • Filter berdasarkan atribut — filter produk berdasarkan nilai atribut menggunakan penanda kondisi (eq, neq, in, mth, lth, dll.).
  • Rentang harga — sempitkan produk ke rentang harga tertentu dengan filter mth / lth.

Coba secara langsung

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

  • Filter berdasarkan atribut — filter produk berdasarkan nilai atribut menggunakan penanda kondisi (eq, neq, in, mth, lth, dll.).
  • Rentang harga — sempitkan produk ke rentang harga tertentu dengan filter mth / lth.