انتقل إلى المحتوى الرئيسي

searchPage

بحث سريع عن كائنات الصفحة مع مخرجات محدودة.

Description​

تقوم هذه الطريقة بإجراء بحث سريع عن كائنات الصفحة بناءً على استعلام نصي (اسم). تعيد Promise التي تحل إلى مصفوفة من كائنات IPagesEntity، أو مصفوفة فارغة [] عندما لا يتم العثور على شيء - أو، مع traficLimit: true، مصفوفة من بطاقات IPageSearchResult القصيرة.

What you get depends on traficLimit​

نوع الإرجاع المعلن هو IPagesEntity[] | IPageSearchResult[] | IError:

الإعداداتالنتيجةتحتوي على
traficLimit: false (افتراضي)IPagesEntity[]كائنات الصفحة الكاملة، مع attributeValues، localizeInfos، …
traficLimit: trueIPageSearchResult[]بطاقة البحث السريع الخام - فقط { id, title }

في وضع توفير الحركة، لا يوجد attributeValues في النتيجة، لذا يجب تضييق البحث قبل قراءته - بواسطة علامة الإعداد الخاصة بك، أو بواسطة الحقل:

const found = await Pages.searchPage('cat');

if (Array.isArray(found) && found.length && 'attributeValues' in found[0]) {
// IPagesEntity[] — traficLimit is off
} else {
// IPageSearchResult[] — short cards
}

سلوك وقت التشغيل غير متغير؛ فقط النوع المعلن يعكس الآن كلا الوضعين. لا تحمل البطاقات القصيرة templateIdentifier، لذا لا يتم إجراء بحث عن القالب لها.

.searchPage(

, ,

);

Parameters schema​

Schema

name(required): string
نص للبحث عن كائنات الصفحة (يتم إجراء البحث على حقل العنوان في كائن localizeInfos مع أخذ اللغة في الاعتبار)
مثال: "معلومات عنا"

url: string
رابط الصفحة
مثال: "catalog"

langCode: string
رمز اللغة. الافتراضي: "en_US"
مثال: "en_US"

Examples​

Minimal example​

const response = await Pages.searchPage('cup');

Example with attributes​

const response = await Pages.searchPage('cup', 'en_US');

Example response​

[
{
"id": 10,
"parentId": null,
"pageUrl": "catalog",
"depth": 0,
"localizeInfos": {
"title": "Catalog",
"htmlContent": "",
"plainContent": "",
"menuTitle": "Catalog"
},
"isVisible": true,
"blocks": [
"product_block",
"test",
"freq_ordered",
"..."
],
"type": "catalog_page",
"templateIdentifier": "template",
"attributeSetIdentifier": "page",
"attributeValues": {
"text": {
"type": "string",
"value": "catalog text",
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
},
"number": {
"type": "integer",
"value": 10,
"isIcon": false,
"position": 1,
"additionalFields": {},
"isProductPreview": false
},
"real": {
"type": "real",
"value": 5,
"isIcon": false,
"position": 2,
"additionalFields": {},
"isProductPreview": false
},
"float": {
"type": "float",
"value": 15,
"isIcon": false,
"position": 3,
"additionalFields": {},
"isProductPreview": false
}
},
"moduleFormConfigs": [],
"isSync": true,
"template": {
"id": 4,
"attributeSetIdentifier": null,
"title": "Template",
"generalTypeId": 4,
"identifier": "template",
"version": 0,
"generalTypeName": "catalog_page",
"attributeValues": {},
"position": 1
}
}
]

Response schema​

Schema: IPagesEntity[] | IPageSearchResult[]

id: number
معرف الكائن.
مثال: 8

parentId: number | null
معرف الصفحة الأصلية، إذا كان يحتوي على null، فإنه يمثل الصفحة الرئيسية.
مثال: 10

pageUrl: string
رابط الصفحة الفريد.
مثال: "blog"

depth: number
عمق تعشيش الصفحة بالنسبة إلى parentId.
مثال: 10

localizeInfos: ILocalizeInfo
اسم الصفحة، مع الأخذ في الاعتبار الترجمة المحلية.
مثال:

{
"title": "Blog",
"menuTitle": "Blog",
"htmlContent": "",
"plainContent": ""
}

isVisible: boolean
علامة رؤية الصفحة.
مثال: true

type: PageType
نوع الصفحة.
مثال: "common_page"

templateIdentifier: string | null
معرف المستخدم للقالب المرتبط.
مثال: "template"

attributeSetIdentifier: string | null
مجموعة معرفات السمات.
مثال: "page"

attributeValues: IAttributeValues
خريطة لقيم السمات مفاتيحها بواسطة العلامة؛ كائن فارغ عند عدم وجودها.
مثال:

{
"text": {
"type": "string",
"value": "some text",
"position": 0,
"additionalFields": []
}
}

isSync: boolean
إشارة إلى فهرسة الصفحة.
مثال: true

template: object
كائن القالب.
مثال:

{}

position: number
رقم العنصر (للتصنيف).
مثال: 2

config: Record<string, number>
إعدادات الإخراج لصفحات الكتالوج.
مثال:

{
"rowsPerPage": 1,
"productsPerRow": 1
}

products: number
عدد المنتجات المرتبطة بالصفحة.
مثال: 0

childrenCount: number
عدد الأطفال.
مثال: 1

blocks: IBlockEntity[] | string[]
الكتل.
مثال:

{
"id": 4,
"attributeSetIdentifier": null,
"title": "Template",
"generalTypeId": 4,
"identifier": "template",
"version": 0,
"generalTypeName": "catalog_page",
"attributeValues": {},
"position": 1
}

blocks.attributeValues: IAttributeValues
خريطة لقيم السمات مفاتيحها بواسطة العلامة؛ كائن فارغ عند عدم وجودها.
مثال:

{
"block-text": {
"type": "string",
"value": "some text",
"isIcon": false,
"position": 0,
"additionalFields": [],
"isProductPreview": false
}
}

blocks.id: number
معرف فريد للكتلة.
مثال: 1234

blocks.localizeInfos: ILocalizeInfo
معلومات الترجمة المحلية للكتلة.
مثال:

{
"key": "value"
}

blocks.version: number
إصدار كائن الكتلة.
مثال: 1

blocks.identifier: string
معرف سلسلة فريد للكتلة.
مثال: "block1"

blocks.type: BlockType
نوع الكتلة.
مثال: "product"

blocks.position: number
موضع الكتلة للتصنيف.
مثال: 1

blocks.templateIdentifier: string | null
معرف القالب المستخدم من قبل الكتلة، أو null إذا لم يكن ذلك مناسبًا.
مثال: "template1"

blocks.isVisible: boolean
تشير إلى ما إذا كانت الكتلة مرئية.
مثال: true

blocks.countElementsPerRow: number
عدد العناصر المعروضة في كل صف في الكتلة، إذا كان ذلك مناسبًا.
مثال: 3

blocks.quantity: number
كمية العناصر في الكتلة، إذا كان ذلك مناسبًا.
مثال: 5

blocks.similarProducts: IProductsResponse
استجابة تحتوي على منتجات مشابهة مرتبطة بالكتلة.
مثال:

{
"total": 10,
"items": []
}

blocks.products: IProductsEntity[]
مصفوفة من كائنات المنتجات المرتبطة بالكتلة.
مثال:

[
{
"id": 1,
"name": "Product 1"
},
{
"id": 2,
"name": "Product 2"
}
]

moduleFormConfigs: Array<IFormConfig>
إعدادات نماذج الوحدة المرتبطة بالصفحة.

rating: IRating
بيانات التقييم.

total: string
إجمالي عدد المنتجات المرتبطة بالصفحة.
مثال: "10"

categoryPath: string | null
سلسلة مسار الفئة؛ null للصفحات المتداخلة التي ليس لها مسار فئة خاص بها.
مثال: "catalog"

distance: number
المسافة الكوسينية إلى الاستعلام. يتم إرجاعها فقط من نقطة نهاية البحث الدلالي (الناقل) عندما يتم تمرير debug: true في جسم البحث.
مثال: 0.12