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

searchProduct

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

Description​

تقوم هذه الطريقة بإجراء بحث سريع عن كائنات صفحة المنتج بناءً على اسم استعلام نصي. يتم إجراء البحث على حقل العنوان في كائن localizeInfos، مع الأخذ في الاعتبار رمز اللغة المحدد. تُرجع Promise التي تحل إلى مصفوفة من كائنات المنتج المفهرسة IProductsEntity - أو، مع traficLimit: true، إلى مصفوفة من بطاقات IProductSearchResult القصيرة.

What you get depends on traficLimit​

نوع الإرجاع المعلن هو IProductsEntity[] | IProductSearchResult[] | IError:

ConfigResultContains
traficLimit: false (افتراضي)IProductsEntity[]كائنات المنتج الكاملة، مع attributeValues، localizeInfos، blocks، …
traficLimit: trueIProductSearchResult[]بطاقة البحث السريع الخام - فقط { id, title, pageId }

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

const found = await Products.searchProduct('cos');

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

سلوك وقت التشغيل غير متغير؛ فقط النوع المعلن يعكس الآن كلا الوضعين.

.searchProduct(

,

);

Parameters schema​

Schema

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

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

Examples​

Minimal example​

const response = await Products.searchProduct('cup');

Example with langCode attribute​

const response = await Products.searchProduct('cup', 'en_US');

Example response​

[
{
"id": 2957,
"localizeInfos": {
"title": "Cosmo"
},
"isVisible": true,
"isSync": true,
"sku": null,
"price": 150,
"additional": {
"prices": {
"min": 51,
"max": 180
}
},
"categories": [
"catalog"
],
"statusIdentifier": "sale",
"statusLocalizeInfos": {
"title": "Sale"
},
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"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": "USD",
"isIcon": false,
"position": 2,
"additionalFields": {},
"isProductPreview": false
},
"img": {
"type": "image",
"value": "",
"isIcon": false,
"position": 3,
"additionalFields": {},
"isProductPreview": true
}
},
"attributeSetIdentifier": "products",
"isPositionLocked": false,
"position": 1,
"rating": {},
"paymentStages": null,
"productPages": [
{
"id": 2850,
"pageId": 10,
"productId": 2957,
"positionId": 3193,
"categoryPath": "catalog"
}
],
"blocks": [
"product_block",
"similar"
],
"moduleFormConfigs": [
{
"id": 12,
"formIdentifier": "review",
"moduleIdentifier": "catalog",
"isGlobal": false,
"isClosed": false,
"isModerate": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"entityIdentifiers": [
{
"id": "catalog",
"isNested": true
}
],
"formDataCount": 807,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 807
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
}
]

Response schema​

Schema: IProductsEntity[] | IProductSearchResult[]

id: number
المعرف الفريد.
مثال: 12345

localizeInfos: ILocalizeInfo
اسم المنتجات، مع مراعاة التوطين.
مثال:

{}

statusIdentifier: string | null
معرفات حالة صفحة المنتج (قد تكون null).
مثال: "in_stock"

statusLocalizeInfos: ILocalizeInfo
اسم الحالة المترجم للمنتج.
مثال:

{ "title": "Sale" }

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

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

price: number | null
قيمة سعر صفحة المنتج المأخوذة من الفهرس.
مثال: 150.00

additional: object
قيمة إضافية من الفهرس.
مثال:

{
"prices": {
"min": 5,
"max": 150
}
}

sku: string | null
SKU المنتج (وحدة حفظ المخزون)، قد تكون null.
مثال: "SKU_12345"

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

attributeValues: IAttributeValues
مصفوفة من قيم السمات من الفهرس، ممثلة.
مثال:

[
{
"id": "color",
"value": "red"
}
]

categories: string[]
فئات المنتج.
مثال:

[
1,
2,
3
]

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

moduleFormConfigs: Array<IFormConfig>
تكوينات نموذج الوحدة (اختياري).

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

isPositionLocked: boolean
مؤشر قفل موضع الترتيب (اختياري).
مثال: false

relatedIds: number[]
معرفات صفحات المنتجات ذات الصلة.
مثال:

[
12345,
67890
]

paymentStages: unknown
بيانات مراحل الدفع (قد تكون null).
مثال: null

distance: number
مسافة ملاءمة البحث (الدلالي). تظهر فقط في نتائج البحث الدلالي.
مثال: 0.42

discountConfig: Record<string, unknown>
كائن تكوين الخصم.
مثال:

{}

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

shortDescTemplateIdentifier: string | null
معرف المستخدم للقالب المرتبط للوصف القصير.
مثال: "short_desc_template_12345"

signedPrice: string
سعر المنتج الموقّع يتم الحصول عليه مع بيانات المنتج عند تعيين signPrice.
انظر: سعر المنتج الثابت
مثال: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."

productPages: IProductPageRef[]
مصفوفة من مراجع صفحات المنتج تربط المنتج بصفحاته.
مثال:

[
{
"id": 16,
"pageId": 4,
"productId": 15,
"positionId": 244,
"categoryPath": "products"
}
]

productPages.id: number
المعرف الفريد لسجل ارتباط المنتج بالصفحة.
مثال: 16

productPages.pageId: number
معرف الصفحة التي يرتبط بها المنتج.
مثال: 4

productPages.productId: number
معرف المنتج.
مثال: 15

productPages.positionId: number
معرف موضع الترتيب داخل الصفحة.
مثال: 244

productPages.categoryPath: string
مسار الفئة للصفحة التي ينتمي إليها المنتج.
مثال: "products"

blocks: string[]
مصفوفة من معرفات الكتل.
مثال:

[
"block_12345",
"block_67890"
]

🔒 signedPrice هو الرمز الموقّع الذي يحمل السعر المقفل — قم بإعادته عند إنشاء طلب. انظر سعر المنتج الثابت (signedPrice).


Usage examples​

خطوات تفصيلية في الوثائق:

  • Search product — ابحث بسرعة عن المنتجات حسب العنوان.

Try it live​

قم بتشغيل هذه الطريقة بشكل تفاعلي في JS SDK sandbox — قم بتوصيل عنوان مشروعك ورمز التطبيق في الزيارة الأولى، ثم افتح:

  • Search product — ابحث بسرعة عن المنتجات حسب العنوان.