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

احصل على العدد الإجمالي للمنتجات حسب الصفحة

تُرجع هذه الطريقة العدد الإجمالي للمنتجات المرتبطة بعنوان URL لصفحة كتالوج محددة. وهي مفيدة للتصفح عند الحاجة لمعرفة عدد المنتجات الموجودة في صفحة معينة، بما في ذلك أو استبعاد الصفحات الفرعية المتداخلة.

✅ هدف السيناريو:

  • احصل على عدد المنتجات في صفحة كتالوج معينة
  • التمييز بين المنتجات المباشرة والمنتجات التي تشمل الصفحات المتداخلة
  • استخدم العدد للتصفح في صفحات الفئات أو الكتالوج

✅ ما تحتاجه:

  • عنوان PROJECT_URL و APP_TOKEN صالحين للمصادقة مع واجهة برمجة التطبيقات OneEntry.
  • على الأقل صفحة كتالوج واحدة تحتوي على منتجات في المشروع
  • عنوان URL (علامة الصفحة) لصفحة الكتالوج المستهدفة

📌 مهم:

  • لا تتضمن هذه الأمثلة معالجة الأخطاء.
  • يمكنك إدارة الأخطاء باستخدام كتلة try-catch أو من خلال استخدام بناء مثل await Promise.catch((error) => error).
  • مرر مصفوفة فارغة [] لعد جميع المنتجات في الصفحة دون تصفية.
  • totalInCategory يحسب فقط المنتجات الموجودة مباشرة في الصفحة المعطاة؛ بينما totalInCategoryWithNested يشمل أيضًا المنتجات الموجودة في الصفحات الفرعية.

📚 انظر في الوثائق:

📦 مرجع SDK:

جربها مباشرة

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

  • احصل على العدد الإجمالي للمنتجات حسب الصفحة — تُرجع هذه الطريقة العدد الإجمالي للمنتجات المرتبطة بعنوان URL لصفحة كتالوج محددة. وهي مفيدة للتصفح عند الحاجة لمعرفة عدد المنتجات الموجودة في صفحة معينة، بما في ذلك أو استبعاد الصفحات الفرعية المتداخلة.

السيناريو

1. استيراد defineOneEntry من SDK وتعريف PROJECT_URL و APP_TOKEN

مثال:

import { defineOneEntry } from 'oneentry';
import { IFilterParams } from 'oneentry/dist/products/productsInterfaces';

const PROJECT_URL = 'your-project-url';
const APP_TOKEN = 'your-app-token';

2. إنشاء عميل API باستخدام defineOneEntry()

مثال:

const { Products } = defineOneEntry(PROJECT_URL, {
token: APP_TOKEN,
});

3. بشكل اختياري، تعريف جسم الفلتر (مصفوفة فارغة = جميع المنتجات في الصفحة)

مثال:

// To filter, use conditions like: [{ attributeMarker: 'price', conditionMarker: 'mth', conditionValue: 100, isNested: false }]
const body: IFilterParams[] = [];

4. استدعاء Products.getProductsCountByPageUrl() باستخدام getProductsCountByPageUrl()

مثال:

const count = await Products.getProductsCountByPageUrl('products', body);

if ('statusCode' in count) {
throw new Error(count.message);
}
console.log('Count data: ', count);
النتيجة:
{
"totalAll": 12,
"totalInCategory": 3,
"totalInCategoryWithNested": 3
}

المثال النهائي

// 1. Import defineOneEntry from SDK and define PROJECT_URL and APP_TOKEN
import { defineOneEntry } from 'oneentry';
import { IFilterParams } from 'oneentry/dist/products/productsInterfaces';

const PROJECT_URL = 'your-project-url';
const APP_TOKEN = 'your-app-token';

// 2. Creating an API client with [defineOneEntry()](/docs/index/#Installation)
const { Products } = defineOneEntry(PROJECT_URL, {
token: APP_TOKEN,
});

// 3. Optionally define a filter body (empty array = all products on the page)
// To filter, use conditions like: [{ attributeMarker: 'price', conditionMarker: 'mth', conditionValue: 100, isNested: false }]
const body: IFilterParams[] = [];

// 4. Call Products.getProductsCountByPageUrl() with [getProductsCountByPageUrl()](/docs/products/#getProductsCountByPageUrl)
const count = await Products.getProductsCountByPageUrl('products', body);

if ('statusCode' in count) {
throw new Error(count.message);
}
console.log('Count data: ', count);