getProductsByIds
الحصول على عدة منتجات بواسطة معرفاتها.
الوصف
تسترجع هذه الطريقة كائنات منتجات متعددة بواسطة معرفاتها (معرفات مفصولة بفواصل). تعيد Promise التي تحل إلى مصفوفة من كائنات IProductsEntity.
المنتجات.getProductsByIds(
ids,
langCode,
userQuery
);
مخطط المعلمات
المخطط
ids(required): string
معرفات صفحات المنتجات التي يجب العثور على العلاقات لها
مثال: "12345,67890"
langCode: string
رمز اللغة. الافتراضي "en_US"
userQuery: IProductsQuery
معلمات استعلام اختيارية
مثال:
{
"limit": 30,
"offset": 0,
"sortOrder": "DESC",
"sortKey": "id",
"signPrice": "orders",
"templateMarker": "template_12345",
"statusMarker": "in_stock",
"conditionValue": "new",
"conditionMarker": "eq",
"attributeMarker": "color"
}
userQuery.offset(required): number
معلمة للتقسيم. الافتراضي: 0.
userQuery.limit(required): number
معلمة للتقسيم. الافتراضي: 30.
userQuery.sortOrder(required): string
ترتيب الفرز "DESC" | "ASC". الافتراضي: "DESC".
userQuery.sortKey(required): string
الحقل المستخدم للفرز (الافتراضي - null). القيم الممكنة: "id"، "position"، "title"، "date"، "price". الافتراضي: null.
userQuery.signPrice: string
علامة السعر. الافتراضي: null.
userQuery.templateMarker: string | null
علامة قالب صفحة المنتج، الافتراضي null.
مثال: "template_12345"
userQuery.statusMarker: string | null
علامة حالة صفحة المنتج، الافتراضي null.
مثال: "in_stock"
userQuery.conditionValue: string | null
القيمة التي يتم البحث عنها، الافتراضي null.
مثال: "new"
userQuery.attributeMarker: string | null
معرف النص الخاص بالخاصية المفهرسة التي يتم تصفية القيم بناءً عليها، الافتراضي null.
مثال: "color"
userQuery.conditionMarker: string | null
علامة شرط التصفية التي يتم تصفية القيم بناءً عليها، الافتراضي null.
مثال: "equals"
userQuery.langCode: string
رمز اللغة. الافتراضي: "en_US".
userQuery.ids: string
قائمة مفصولة بفواصل من معرفات المنتجات — تستخدم بواسطة getProductsByIds.
مثال: "1,2,3"
بشكل افتراضي، يمكنك استرجاع 10 كائنات. وذلك بسبب حد السجلات في إعدادات أذونات الوحدة.
لعمل التقسيم بشكل صحيح، تحتاج إلى تكوين أذونات الوحدة وفقًا لاحتياجاتك في القسم المقابل.
💲
signPriceيقفل السعر المعاد لفترة محدودة — قم بتعيينه إلى علامة تخزين الطلب الخاصة بك. انظر تثبيت السعر (signPrice).
أمثلة
مثال بسيط
const response = await Products.getProductsByIds('1, 5, 8');
مثال مع الخصائص
const userQuery = {
"offset": 0,
"limit": 30,
"sortOrder": "DESC",
"sortKey": "id"
};
const response = await Products.getProductsByIds('1, 5, 8', 'en_US', userQuery);
استخدم الفلاتر للعثور على منتجات محددة:
attributeMarker: المعرف النصي الخاص بالخاصية المفهرسة التي يتم تصفية القيم بناءً عليها. conditionMarker: نوع الشرط الذي سيتم تطبيقه على قيمة الخاصية.
| العلامة | المعنى | المثال |
|---|---|---|
| eq | يساوي | statusId = 1 (نشط فقط) |
| neq | لا يساوي | category ≠ "أرشيف" |
| in | يحتوي على (واحد من) | category in ["إلكترونيات"، "كتب"] |
| nin | لا يحتوي على | brand not in ["علامة_زائفة"] |
| exs | موجود (له قيمة) | لديه وصف |
| nexs | غير موجود | لا توجد صورة |
conditionValue: القيمة التي سيتم المقارنة بها.
مثال على الاستجابة
[
{
"id": 2954,
"attributeSetIdentifier": "products",
"localizeInfos": {
"title": "Box"
},
"statusLocalizeInfos": {
"title": "Sale"
},
"isVisible": true,
"statusIdentifier": "sale",
"position": 2,
"templateIdentifier": null,
"shortDescTemplateIdentifier": "product_preview",
"price": 51,
"additional": {
"prices": {
"min": 51,
"max": 180
}
},
"sku": null,
"isSync": true,
"categories": [
"catalog"
],
"paymentStages": null,
"rating": {},
"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
}
},
"productPages": [
{
"id": 2847,
"pageId": 10,
"productId": 2954,
"positionId": 3190,
"categoryPath": "catalog"
}
],
"blocks": [
"product_block",
"test",
"similar"
],
"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": 2955,
"attributeSetIdentifier": "test",
"localizeInfos": {
"title": "Product"
},
"statusLocalizeInfos": {
"title": "Sale"
},
"isVisible": true,
"statusIdentifier": "sale",
"position": 1,
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"price": 150,
"additional": {
"prices": {
"min": 51,
"max": 180
}
},
"sku": null,
"isSync": true,
"categories": [
"catalog"
],
"paymentStages": [
{
"title": "p1",
"value": 50,
"marker": "p1"
},
{
"title": "p2",
"value": 50,
"marker": "p2"
},
{
"title": "p3",
"value": 50,
"marker": "p3"
}
],
"rating": {},
"attributeValues": {
"p": {
"type": "float",
"value": 150,
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
},
"p1": {
"type": "float",
"value": 50,
"isIcon": false,
"position": 1,
"additionalFields": {},
"isProductPreview": false
},
"p2": {
"type": "float",
"value": 50,
"isIcon": false,
"position": 2,
"additionalFields": {},
"isProductPreview": false
},
"p3": {
"type": "float",
"value": 50,
"isIcon": false,
"position": 3,
"additionalFields": {},
"isProductPreview": false
},
"currency": {
"type": "string",
"value": "USD",
"isIcon": false,
"position": 4,
"additionalFields": {},
"isProductPreview": false
}
},
"productPages": [
{
"id": 2848,
"pageId": 10,
"productId": 2955,
"positionId": 3191,
"categoryPath": "catalog"
}
],
"blocks": [
"product_block",
"test",
"similar"
],
"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": {}
}
]
مخطط الاستجابة
المخطط: IProductsEntity[]
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
علامة السعر.
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).
أمثلة الاستخدام
خطوة بخطوة في الوثائق:
- الحصول على المنتجات بواسطة المعرفات — استرجاع عدة منتجات دفعة واحدة مع قائمة معرفات مفصولة بفواصل.
جربها مباشرة
قم بتشغيل هذه الطريقة بشكل تفاعلي في صندوق الرمل JS SDK — قم بتوصيل عنوان مشروعك ورمز التطبيق عند الزيارة الأولى، ثم افتح:
- الحصول على المنتجات بواسطة المعرفات — استرجاع عدة منتجات دفعة واحدة مع قائمة معرفات مفصولة بفواصل.