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

احصل على العدد الإجمالي للمنتجات

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

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

  • احصل على العدد الإجمالي للمنتجات
  • تصفية اختيارية حسب شروط السمة
  • استخدم العدد للتصفح أو التحقق من التوفر

✅ ما تحتاجه:

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

📌 مهم:

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

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

📦 مرجع 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.getProductsCount() باستخدام getProductsCount()

مثال:

const data = await Products.getProductsCount(body);

if ('statusCode' in data) {
throw new Error(data.message);
}

console.log('Count data: ', data);
النتيجة:
{
"totalAll": 12,
"totalInCategory": 0,
"totalInCategoryWithNested": 0
}

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

// 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)
// To filter, use conditions like: [{ attributeMarker: 'price', conditionMarker: 'mth', conditionValue: 100, isNested: false }]
const body: IFilterParams[] = [];

// 4. Call Products.getProductsCount() with [getProductsCount()](/docs/products/#getProductsCount)
const data = await Products.getProductsCount(body);

if ('statusCode' in data) {
throw new Error(data.message);
}

console.log('Count data: ', data);