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

الحصول على منتج واحد بواسطة المعرف

تتيح لك هذه الطريقة استرجاع منتج واحد بواسطة معرفه الرقمي، مع إرجاع كائن المنتج الكامل بما في ذلك السمات والسعر والمحتوى المحلي.

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

  • جلب منتج واحد بواسطة معرفه الرقمي
  • الوصول إلى سعر المنتج والعنوان المحلي
  • قراءة قيم السمات مثل العملة من المنتج

✅ ما تحتاجه:

  • PROJECT_URL و APP_TOKEN صالحين للمصادقة مع واجهة برمجة التطبيقات OneEntry.
  • معرف منتج رقمي معروف

📌 مهم:

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

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

📦 مرجع SDK:

جربها مباشرة

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

السيناريو

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

مثال:

import { defineOneEntry } from 'oneentry';
import type { IAttributeValues } from 'oneentry';

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

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

مثال:

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

3. استدعاء Products.getProductById() باستخدام getProductById() method

مثال:

const product = await Products.getProductById(15, 'en_US');

if ('statusCode' in product) {
throw new Error(product.message);
}
النتيجة:
{
"id": 15,
"attributeSetIdentifier": "product",
"localizeInfos": {
"title": "Orange ball"
},
"statusLocalizeInfos": {},
"isVisible": true,
"statusIdentifier": null,
"position": 1,
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"price": 400,
"additional": {
"prices": {
"min": 100,
"max": 999
}
},
"sku": null,
"isSync": true,
"categories": [
"products"
],
"paymentStages": null,
"rating": {},
"attributeValues": {
"price": {
"type": "real",
"value": "400",
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
},
"currency": {
"type": "string",
"value": "USD",
"isIcon": false,
"position": 1,
"additionalFields": {},
"isProductPreview": false
},
"image": {
"type": "image",
"value": [],
"isIcon": false,
"position": 2,
"additionalFields": {},
"isProductPreview": true
}
},
"productPages": [
{
"id": 17,
"pageId": 49,
"productId": 15,
"positionId": 1287,
"categoryPath": "products"
}
],
"blocks": [],
"moduleFormConfigs": [],
"discountConfig": {}
}

4. الوصول إلى حقول المنتج

مثال:

const title = product.localizeInfos?.title;
const price = product.price;
const attrs = product.attributeValues as IAttributeValues;
const currency = attrs.currency?.value;

console.log('Product: ', product);
console.log('Title: ', title);
console.log('Price: ', price);
console.log('Currency: ', currency);
النتيجة:
{
"product": {
"id": 15,
"attributeSetIdentifier": "product",
"localizeInfos": {
"title": "Orange ball"
},
"statusLocalizeInfos": {},
"isVisible": true,
"statusIdentifier": null,
"position": 1,
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"price": 400,
"additional": {
"prices": {
"min": 100,
"max": 999
}
},
"sku": null,
"isSync": true,
"categories": [
"products"
],
"paymentStages": null,
"rating": {},
"attributeValues": {
"price": {
"type": "real",
"value": "400",
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
},
"currency": {
"type": "string",
"value": "USD",
"isIcon": false,
"position": 1,
"additionalFields": {},
"isProductPreview": false
},
"image": {
"type": "image",
"value": [],
"isIcon": false,
"position": 2,
"additionalFields": {},
"isProductPreview": true
}
},
"productPages": [
{
"id": 17,
"pageId": 49,
"productId": 15,
"positionId": 1287,
"categoryPath": "products"
}
],
"blocks": [],
"moduleFormConfigs": [],
"discountConfig": {}
},
"title": "Orange ball",
"price": 400,
"currency": "USD"
}

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

// 1. Import defineOneEntry from SDK and define PROJECT_URL and APP_TOKEN
import { defineOneEntry } from 'oneentry';
import type { IAttributeValues } from 'oneentry';

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. Call Products.getProductById() with [getProductById() method](/docs/products/getProductById)
const product = await Products.getProductById(15, 'en_US');

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

// 4. Access product fields
const title = product.localizeInfos?.title;
const price = product.price;
const attrs = product.attributeValues as IAttributeValues;
const currency = attrs.currency?.value;

console.log('Product: ', product);
console.log('Title: ', title);
console.log('Price: ', price);
console.log('Currency: ', currency);