getProductsByPageId
Seçilen kategori için sayfalama ile tüm ürün nesnelerini arayın.
Açıklama
Bu yöntem, sağlanan sorgu parametrelerine (userQuery) dayanarak, seçilen kategori için sayfalama ile tüm ürün nesnelerini arar. Her bir nesnenin bir nesne olduğu bir dizi öğe döndüren bir Promise döner. Bir IProductsResponse döner.
Products.getProductsByPageId(
id,
body,
langCode,
userQuery
);
Parametreler şeması
Şema
id(zorunlu): number
Sayfa kimliği
örnek: 2492
body: IFilterParams[]
İstek gövdesi. Varsayılan: []
örnek:
[
{
"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(zorunlu): string | null
Değerlerin filtrelendiği dizinlenmiş niteliğin metin tanımlayıcısı. Varsayılan: null.
örnek: "color"
body.conditionMarker: string | null
Değerlerin filtrelendiği filtre koşulunun kimliği. Varsayılan: null.
örnek: "equals"
body.conditionValue(zorunlu): number | null
Aranan değer, varsayılan null.
örnek: "new"
body.pageUrl: string | null
Kategori sayfası nesnesinin URL'si.
örnek: ["23-laminat-floorwood-maxima"]
body.pageUrls: string[] | null
Kategori sayfası nesnesinin URL'si.
örnek: ["23-laminat-floorwood-maxima"]
body.statusMarker: string | null
Ürün sayfası durumunun metin tanımlayıcısı (varsayılan ayarlanmamış).
örnek: "in_stock"
body.title: string | null
Ürün adı.
örnek: "Laminatboden Maxima"
body.isNested: boolean
İç içe nitelikler için bayrak, varsayılan false.
örnek: true
langCode: string
Dil kodu. Varsayılan: "en_US"
örnek: "en_US"
userQuery: IProductsQuery
İsteğe bağlı sorgu parametreleri
örnek:
{
"limit": 30,
"offset": 0,
"sortOrder": "DESC",
"sortKey": "id",
"signPrice": "orders",
"templateMarker": "template_12345",
"statusMarker": "in_stock",
"conditionValue": "new",
"conditionMarker": "eq",
"attributeMarker": "color"
}
userQuery.offset(zorunlu): number
Sayfalama için parametre. Varsayılan: 0.
userQuery.limit(zorunlu): number
Sayfalama için parametre. Varsayılan: 30.
userQuery.sortOrder(zorunlu): string
Sıralama düzeni "DESC" | "ASC". Varsayılan: "DESC".
userQuery.sortKey(zorunlu): string
Sıralama için alan (varsayılan - null). Olası değerler: "id", "position", "title", "date", "price". Varsayılan: null.
userQuery.signPrice: string
Fiyat işareti. Varsayılan: null.
userQuery.templateMarker: string | null
Ürün sayfası şablon işareti, varsayılan null.
örnek: "template_12345"
userQuery.statusMarker: string | null
Ürün sayfası durum işareti, varsayılan null.
örnek: "in_stock"
userQuery.conditionValue: string | null
Aranan değer, varsayılan null.
örnek: "new"
userQuery.attributeMarker: string | null
Değerlerin filtrelendiği dizinlenmiş niteliğin metin tanımlayıcısı, varsayılan null.
örnek: "color"
userQuery.conditionMarker: string | null
Değerlerin filtrelendiği filtre koşulunun işareti, varsayılan null.
örnek: "equals"
userQuery.langCode: string
Dil kodu. Varsayılan: "en_US".
userQuery.ids: string
Virgülle ayrılmış ürün kimlikleri listesi — getProductsByIds tarafından kullanılır.
örnek: "1,2,3"
Varsayılan olarak, 10 nesne alabilirsiniz. Bu, modülün izin ayarlarında kayıt limitinden kaynaklanmaktadır.
Sayfalamanın doğru çalışması için, ilgili bölümde ihtiyaçlarınıza göre Modül izinlerini yapılandırmanız gerekir.
Örnekler
Minimal örnek
const response = await Products.getProductsByPageId( id, body );
body parametresi ile örnek
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.getProductsByPageId( id, body );
Belirli ürünleri bulmak için filtreleri kullanın:
attributeMarker: Değerlerin filtrelendiği dizinlenmiş niteliğin metin tanımlayıcısı. conditionMarker: Nitelik değerine uygulanacak koşul türü.
| İşaret | Anlamı | Örnek |
|---|---|---|
| eq | Eşit | statusId = 1 (sadece aktif) |
| neq | Eşit değil | category ≠ "archived" |
| in | İçerir (birinden) | category in ["electronics", "books"] |
| nin | İçermez | brand not in ["fake_brand"] |
| exs | Vardır (değeri var) | Açıklaması var |
| nexs | Yoktur | Resim yok |
conditionValue: Karşılaştırılacak değer.
Örnek yanıt
{
"items": [
{
"id": 2954,
"attributeSetIdentifier": "products",
"localizeInfos": {
"title": "Box"
},
"statusLocalizeInfos": {
"title": "Sale"
},
"isVisible": true,
"statusIdentifier": "sale",
"position": 1,
"templateIdentifier": null,
"shortDescTemplateIdentifier": "product_preview",
"price": 51,
"additional": {
"prices": {
"min": 51,
"max": 150
}
},
"sku": null,
"isSync": true,
"categories": [
"catalog"
],
"paymentStages": [
{
"title": "Part A",
"marker": "part_a",
"value": 100
},
{
"title": "Part B",
"marker": "part_b",
"value": 200
}
],
"rating": {
"votes": 42,
"value": 4.5,
"like": 10,
"dislike": 2,
"method": "weighted"
},
"isPositionLocked": false,
"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
}
},
"moduleFormConfigs": [
{
"id": 12,
"formIdentifier": "review",
"moduleIdentifier": "catalog",
"isGlobal": false,
"isClosed": false,
"isModerate": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"entityIdentifiers": [
{
"id": "catalog",
"isNested": true
}
],
"formDataCount": 374,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 374
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
},
{
"id": 2955,
"attributeSetIdentifier": null,
"localizeInfos": {
"title": "Product"
},
"statusLocalizeInfos": {
"title": "Sale"
},
"isVisible": true,
"statusIdentifier": "sale",
"position": 2,
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"price": null,
"additional": {
"prices": {
"min": 51,
"max": 150
}
},
"sku": null,
"isSync": false,
"categories": [
"catalog"
],
"paymentStages": null,
"rating": {},
"isPositionLocked": false,
"attributeValues": {},
"moduleFormConfigs": [
{
"id": 12,
"formIdentifier": "review",
"moduleIdentifier": "catalog",
"isGlobal": false,
"isClosed": false,
"isModerate": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"entityIdentifiers": [
{
"id": "catalog",
"isNested": true
}
],
"formDataCount": 374,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 374
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
},
{
"id": 2957,
"attributeSetIdentifier": "products",
"localizeInfos": {
"title": "Cosmo"
},
"statusLocalizeInfos": {
"title": "Sale"
},
"isVisible": true,
"statusIdentifier": "sale",
"position": 3,
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"price": 150,
"additional": {
"prices": {
"min": 51,
"max": 150
}
},
"sku": null,
"isSync": true,
"categories": [
"catalog"
],
"paymentStages": null,
"rating": {},
"isPositionLocked": false,
"attributeValues": {
"product-name": {
"type": "string",
"value": "Cosmo",
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
},
"price": {
"type": "integer",
"value": 150,
"isIcon": false,
"position": 1,
"additionalFields": {},
"isProductPreview": false
},
"currency_products": {
"type": "string",
"value": "",
"isIcon": false,
"position": 2,
"additionalFields": {},
"isProductPreview": false
},
"img": {
"type": "image",
"value": [],
"isIcon": false,
"position": 3,
"additionalFields": {},
"isProductPreview": false
}
},
"moduleFormConfigs": [
{
"id": 12,
"formIdentifier": "review",
"moduleIdentifier": "catalog",
"isGlobal": false,
"isClosed": false,
"isModerate": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"entityIdentifiers": [
{
"id": "catalog",
"isNested": true
}
],
"formDataCount": 374,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 374
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
}
],
"total": 3
}
Yanıt şeması
Şema: IProductsResponse
total: number
Bulunan toplam ürün sayısı.
örnek: 100
items: IProductsEntity[]
Ürün varlıklarının dizisi.
örnek:
[
{
"id": 12345,
"title": "Product 1"
},
{
"id": 67890,
"title": "Product 2"
}
]
items.id: number
Benzersiz tanımlayıcı.
örnek: 12345
items.localizeInfos: ILocalizeInfo
Yerelleştirmeyi dikkate alarak ürünlerin adı.
örnek:
items.statusIdentifier: string | null
Ürün sayfası durum tanımlayıcıları (null olabilir).
örnek: "in_stock"
items.statusLocalizeInfos: ILocalizeInfo
Ürün için yerelleştirilmiş durum adı.
örnek: { "title": "Sale" }
items.attributeSetIdentifier: string | null
Nitelikler kümesi kimliği.
örnek: "set_12345"
items.position: number
Sıralama için öğe numarası.
örnek: 1
items.price: number | null
İndeksten alınan ürün sayfası fiyatının değeri.
örnek: 150.00
items.additional: object
İndeksten alınan ek değer.
örnek: { prices: { min: 5 max: 150 } }
items.sku: string | null
Ürün SKU'su (Stok Tutma Birimi), null olabilir.
örnek: "SKU_12345"
items.isSync: boolean
Sayfa indeksleme durumu.
örnek: true
items.attributeValues: AttributeType
İndeksten temsil edilen nitelik değerlerinin dizisi.
örnek:
[
{
"id": "color",
"value": "red"
}
]
items.categories: string[]
Ürün kategorileri.
örnek:
[
1,
2,
3
]
items.isVisible: boolean
Sayfa görünürlüğü durumu.
örnek: true
items.moduleFormConfigs: Array<IFormConfig>
Modül form yapılandırmaları (isteğe bağlı).
items.rating: IRating
Değerlendirme verileri.
items.isPositionLocked: boolean
Sıralama pozisyonu kilit durumu göstergesi (isteğe bağlı).
örnek: false
items.relatedIds: number[]
İlgili ürün sayfalarının kimlikleri.
örnek:
[
12345,
67890
]
items.paymentStages: unknown
Ödeme aşamaları verileri (null olabilir).
örnek: null
items.discountConfig: Record<string, unknown>
İndirim yapılandırma nesnesi.
örnek:
items.templateIdentifier: string | null
Bağlı şablonun kullanıcı kimliği.
örnek: "template_12345"
items.shortDescTemplateIdentifier: string | null
Kısa açıklama için bağlı şablonun kullanıcı kimliği.
örnek: "short_desc_template_12345"
items.signedPrice: string
Fiyat işareti.
items.productPages: IProductPageRef[]
Ürünü sayfalarına bağlayan ürün sayfası referanslarının dizisi.
örnek:
[
{
"id": 16,
"pageId": 4,
"productId": 15,
"positionId": 244,
"categoryPath": "products"
}
]
productPages.id: number
Ürün-sayfa bağlantı kaydının benzersiz tanımlayıcısı.
örnek: 16
productPages.pageId: number
Ürünün bağlandığı sayfanın kimliği.
örnek: 4
productPages.productId: number
Ürün kimliği.
örnek: 15
productPages.positionId: number
Sayfa içindeki sıralama pozisyonu kimliği.
örnek: 244
productPages.categoryPath: string
Ürünün ait olduğu sayfanın kategori yolu.
örnek: "products"
items.blocks: string[]
Blok tanımlayıcılarının dizisi.
örnek:
[
"block_12345",
"block_67890"
]