getProductsByPageUrl
ابحث عن جميع كائنات المنتجات مع الترقيم للصفحة المحددة (حسب عنوان URL الخاص بها).
الوصف
تبحث هذه الطريقة عن جميع كائنات المنتجات مع الترقيم للصفحة المحددة، بناءً على معلمات الاستعلام المقدمة (userQuery). تُرجع Promise التي تحل إلى كائن IProductsResponse.
Products.getProductsByPageUrl(
url,
body,
langCode,
userQuery
);
مخطط المعلمات
المخطط
url(required): string
عنوان URL للصفحة
مثال: "catalog"
body: IFilterParams[]
جسم الطلب. الافتراضي: []
مثال:
[
{
"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
معرف النص الخاص بالخاصية المفهرسة التي يتم تصفية القيم بناءً عليها. الافتراضي: null.
مثال: "color"
body.conditionMarker: string | null
معرف شرط التصفية الذي يتم تصفية القيم بناءً عليه. الافتراضي: null.
مثال: "equals"
body.conditionValue(required): number | string | null
القيمة التي يتم البحث عنها، الافتراضي null.
مثال: "new"
body.pageUrl: string | null
عنوان URL لكائن صفحة الفئة.
مثال: ["23-laminat-floorwood-maxima"]
body.pageUrls: string[] | null
عنوان URL لكائن صفحة الفئة.
مثال: ["23-laminat-floorwood-maxima"]
body.statusMarker: string | null
معرف نصي لحالة صفحة المنتج (الافتراضي غير محدد).
مثال: "in_stock"
body.title: string | null
اسم المنتج.
مثال: "Laminatboden Maxima"
body.isNested: boolean
علامة للخصائص المتداخلة، الافتراضي false.
مثال: true
langCode: string
رمز اللغة. الافتراضي: "en_US"
مثال: "en_US"
userQuery: IProductsQueryBase
مجموعة معلمات استعلام اختيارية
مثال:
{
"limit": 30,
"offset": 0,
"sortOrder": "DESC",
"sortKey": "id",
"signPrice": "orders"
}
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
علامة تخزين الطلب لتثبيت السعر. إذا تم تعيين المعلمة، يتم تثبيت السعر لفترة معينة.
انظر: تثبيت السعر
بشكل افتراضي، يمكنك استرداد 10 كائنات. وذلك بسبب حد السجلات في إعدادات أذونات الوحدة.
لعمل الترقيم بشكل صحيح، تحتاج إلى تكوين أذونات الوحدة وفقًا لاحتياجاتك في القسم المقابل.
💲
signPriceيقفل السعر المعاد لفترة محدودة — قم بتعيينه إلى علامة تخزين الطلب الخاصة بك. انظر تثبيت السعر (signPrice).
أمثلة
مثال بسيط
const response = await Products.getProductsByPageUrl('catalog');
مثال مع معلمة body
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.getProductsByPageUrl('catalog', body);
استخدم الفلاتر للعثور على منتجات محددة:
attributeMarker: معرف النص الخاص بالخاصية المفهرسة التي يتم تصفية القيم بناءً عليها. conditionMarker: نوع الشرط الذي سيتم تطبيقه على قيمة الخاصية.
| العلامة | المعنى | المثال |
|---|---|---|
| eq | يساوي | statusId = 1 (نشط فقط) |
| neq | لا يساوي | category ≠ "محفوظ" |
| in | يحتوي على (واحد من) | category in ["إلكترونيات"، "كتب"] |
| nin | لا يحتوي على | brand not in ["علامة_زائفة"] |
| exs | موجود (له قيمة) | له وصف |
| nexs | غير موجود | لا توجد صورة |
| pat | يتطابق مع النمط | title matches "jacket" |
| same | يتطابق مع القيمة بالضبط | sku is exactly "ABC-123" |
| same_part | يتطابق مع جزء من القيمة بالضبط | جزء من sku هو بالضبط "ABC" |
conditionValue: القيمة التي سيتم المقارنة بها.
مثال على الاستجابة
{
"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
}
مخطط الاستجابة
المخطط: IProductsResponse
total: number
إجمالي عدد المنتجات التي تم العثور عليها.
مثال: 100
items: IProductsEntity[]
مصفوفة من كائنات المنتجات.
مثال:
[
{
"id": 12345,
"title": "Product 1"
},
{
"id": 67890,
"title": "Product 2"
}
]
items.id: number
المعرف الفريد.
مثال: 12345
items.localizeInfos: ILocalizeInfo
اسم المنتجات، مع الأخذ في الاعتبار التوطين.
مثال:
{}
items.statusIdentifier: string | null
معرفات حالة صفحة المنتج (قد تكون null).
مثال: "in_stock"
items.statusLocalizeInfos: ILocalizeInfo
اسم الحالة المحلي للمنتج.
مثال:
{ "title": "Sale" }
items.attributeSetIdentifier: string | null
مجموعة معرفات الخصائص.
مثال: "set_12345"
items.position: number
رقم العنصر (لأغراض الفرز).
مثال: 1
items.price: number | null
قيمة سعر صفحة المنتج المأخوذة من الفهرس.
مثال: 150.00
items.additional: object
قيمة إضافية من الفهرس.
مثال:
{
"prices": {
"min": 5,
"max": 150
}
}
items.sku: string | null
SKU المنتج (وحدة حفظ المخزون)، قد تكون null.
مثال: "SKU_12345"
items.isSync: boolean
إشارة إلى فهرسة الصفحة.
مثال: true
items.attributeValues: IAttributeValues
مصفوفة من قيم الخصائص من الفهرس، ممثلة.
مثال:
[
{
"id": "color",
"value": "red"
}
]
items.categories: string[]
فئات المنتج.
مثال:
[
1,
2,
3
]
items.isVisible: boolean
علامة على رؤية الصفحة.
مثال: true
items.moduleFormConfigs: Array<IFormConfig>
إعدادات نماذج الوحدة (اختياري).
items.rating: IRating
بيانات التقييم.
items.isPositionLocked: boolean
مؤشر قفل موضع الفرز (اختياري).
مثال: false
items.relatedIds: number[]
معرفات صفحات المنتجات ذات الصلة.
مثال:
[
12345,
67890
]
items.paymentStages: unknown
بيانات مراحل الدفع (قد تكون null).
مثال: null
items.distance: number
مسافة البحث الدلالي (السمات). تظهر فقط في نتائج البحث الدلالي.
مثال: 0.42
items.discountConfig: Record<string, unknown>
كائن إعدادات الخصم.
مثال:
{}
items.templateIdentifier: string | null
معرف المستخدم للقالب المرتبط.
مثال: "template_12345"
items.shortDescTemplateIdentifier: string | null
معرف المستخدم للقالب المرتبط للوصف القصير.
مثال: "short_desc_template_12345"
items.signedPrice: string
سعر المنتج الموقّع يتم الحصول عليه مع بيانات المنتج عند تعيين signPrice.
انظر: سعر المنتج الثابت
مثال: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
items.productPages: IProductPageRef[]
مصفوفة من مراجع صفحات المنتجات تربط المنتج بصفحاتها.
مثال:
[
{
"id": 16,
"pageId": 4,
"productId": 15,
"positionId": 244,
"categoryPath": "products"
}
]
items.blocks: string[]
مصفوفة من معرفات الكتل.
مثال:
[
"block_12345",
"block_67890"
]
totalFound: number
عدد المنتجات المطابقة قبل تطبيق الحدود؛ يتم إرجاعه بواسطة نقاط نهاية منتجات الكتل (similarProducts، توصيات عربة التسوق / قائمة الرغبات، الطلبات المتكررة). اختياري.
مثال: 2
🔒
signedPriceهو الرمز الموقّع الذي يحمل السعر المقفل — قم بتمريره مرة أخرى عند إنشاء طلب. انظر سعر المنتج الثابت (signedPrice).
أمثلة الاستخدام
خطوات تفصيلية في الوثائق:
- المنتجات حسب الصفحة — استرداد جميع المنتجات التي تنتمي إلى صفحة كتالوج معينة.
جربها مباشرة
قم بتشغيل هذه الطريقة بشكل تفاعلي في JS SDK sandbox — قم بتوصيل عنوان URL لمشروعك ورمز التطبيق عند الزيارة الأولى، ثم افتح:
- المنتجات حسب الصفحة — استرداد جميع المنتجات التي تنتمي إلى صفحة كتالوج معينة.