> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
> Use this file to discover all available pages before exploring further.

# v1.75.0 (23 يناير 2026)

> مجموعات المنتجات، طرق الدفع RevolutPay وBillie لمدفوعات GBP لمرة واحدة، معاينة جلسة الدفع، البيانات الوصفية في طلبات تغيير الخطة، حقل invoice_url، نقطة نهاية التحقق من الخصم، وتحسينات تصفية لوحة التحكم

## ميزات جديدة

### 1. **مجموعات المنتجات**

قم بتجميع المنتجات المرتبطة معًا لتوفير تجارب دفع موحدة، وخيارات اختيار الخطة، ومسارات ترقية/تخفيض سلسة داخل بوابة العملاء.

<Frame>
  <img src="https://mintcdn.com/dodopayments/2YrxTqbaYgAm54C_/images/product-collection/checkout-page.png?fit=max&auto=format&n=2YrxTqbaYgAm54C_&q=85&s=1890932384bc32c8126c7993f3581855" alt="صفحة الدفع مجموعة المنتجات تعرض خيارات خطط متعددة" style={{ maxHeight: '500px', width: 'auto' }} width="1440" height="960" data-path="images/product-collection/checkout-page.png" />
</Frame>

**الفوائد الرئيسية**

* **دفع قائم على المجموعة**: عرض جميع المنتجات في المجموعة في شاشة دفع واحدة، مما يتيح للعملاء المقارنة واختيار خطتهم المفضلة
* **إدارة منتجات منظمة**: تجميع المنتجات المرتبطة (مثل Starter وPro وEnterprise) ضمن مجموعة واحدة
* **تكامل بوابة العملاء**: تمكين العملاء من الترقية أو التراجع بين المنتجات ضمن نفس المجموعة
* **تحكم التاجر**: تمكين أو تعطيل المنتجات وإعادة ترتيبها داخل كل مجموعة

**كيفية العمل**

أنشئ جلسة دفع لمجموعة:

كود\_PLACEHOLDER\_32282455be4fe617\_END

<Check>
  النتيجة: تجربة دفع موحدة حيث يمكن للعملاء عرض جميع المنتجات المتاحة في مجموعتك واختيار ما يرغبون به.
</Check>

<Info>
  دفع المجموعة مثالي للشركات التي تعتمد على الاشتراكات وتريد أن يقارن العملاء بين الخطط جنبًا إلى جنب قبل الشراء.
</Info>

تعرف على المزيد: [دليل مجموعات المنتجات](/features/product-collections)

### 2. **طرق الدفع RevolutPay وBillie بعملة GBP**

توسعت خيارات الدفع؛ إذ أصبحت RevolutPay وBillie متاحتين عالميًا لمعاملات الدفع لمرة واحدة بعملة GBP، مما يمنح عملائك مرونة أكبر في كيفية السداد.

**طرق دفع جديدة**

| طريقة الدفع    | الدول المدعومة | العملة | دعم الاشتراكات     |
| -------------- | -------------- | ------ | ------------------ |
| **RevolutPay** | عالمي          | GBP    | لا (مرة واحدة فقط) |
| **Billie**     | عالمي          | GBP    | لا (مرة واحدة فقط) |

* **RevolutPay** – مدفوعات سريعة وسلسة لمستخدمي Revolut حول العالم
* **Billie** – حل B2B للشراء الآن والدفع لاحقًا يمكّن الشركات من تقديم شروط دفع مرنة لعملائهم

<Info>
  تتوفر هذه الطرق تلقائيًا لمعاملات GBP، ولا يتطلب الأمر أي إعداد إضافي.
</Info>

تعرف على المزيد: [طرق الدفع](/features/payment-methods)

### 3. **معاينة جلسة الدفع**

معاينة جلسات الدفع قبل إنشائها لحساب التسعير الدقيق والضرائب والخصومات والإجماليات. عرض التسعير الحقيقي للعملاء قبل متابعة الدفع.

**كيفية العمل**

```typescript theme={null}
const preview = await client.checkoutSessions.preview({
  product_cart: [
    { product_id: 'pdt_123', quantity: 1 }
  ],
  billing_address: {
    country: 'US',
    state: 'CA',
    zipcode: '94102'
  },
  discount_code: 'SAVE20'
});

console.log('Subtotal:', preview.current_breakup.subtotal);
console.log('Tax:', preview.current_breakup.tax);
console.log('Discount:', preview.current_breakup.discount);
console.log('Total:', preview.total_price);
```

**حالات الاستخدام**

* **عرض تسعير مخصص**: عرض الإجماليات الدقيقة بما في ذلك الضريبة قبل الدفع
* **التحقق من الخصومات**: التحقق من رموز الخصم وعرض التوفير للعملاء
* **دعم عملات متعددة**: معاينة التسعير بعملات مختلفة
* **ملخصات السلة**: بناء واجهات مستخدم مخصصة للسلة مع التسعير في الوقت الفعلي

<Card title="Preview API Reference" icon="code" href="/api-reference/checkout-sessions/preview">
  اطلع على توثيق نقطة النهاية للمعاينة بالكامل.
</Card>

### 4. **دعم البيانات الوصفية في طلبات تغيير الخطة**

أرسل بيانات وصفية مخصصة عند تغيير خطط الاشتراك، مما يتيح تتبعًا أفضل وتكاملاً مع أنظمتك الداخلية أثناء انتقالات الخطط.

```javascript theme={null}
// Adding metadata when changing a subscription plan
await client.subscriptions.changePlan('sub_123', {
  product_id: 'pdt_premium',
  proration_billing_mode: 'prorated_immediately',
  quantity: 1,
  metadata: {
    upgrade_reason: 'feature_request',
    previous_plan: 'basic',
    sales_rep: 'john@company.com'
  }
});
```

**حالات الاستخدام**

* **تتبع أسباب الترقية/التراجع**: حفظ سبب تغيير العملاء للخطط
* **الربط بسجلات إدارة علاقات العملاء**: ربط تغييرات الخطط بالأنشطة البيعية
* **التصنيف الداخلي**: وسم تغييرات الخطط للتقارير والتحليلات
* **سجلات التدقيق**: الاحتفاظ بسجلات من الذي بدأ تغييرات الخطط

<Info>
  تُدرَج البيانات الوصفية في أحداث الويب هوك، مما يسهل معالجة تغييرات الخطط ببياناتك المخصصة.
</Info>

تعرف على المزيد: [دليل البيانات الوصفية](/api-reference/metadata) | [واجهة تغيير الخطة](/api-reference/subscriptions/change-plan)

### 5. **حقل `invoice_url` في استجابة الدفع واستجابة رابط الدفع**

تتضمن استجابة الدفع واستجابة رابط الدفع الآن حقل `invoice_url`، ما يوفر وصولًا مباشرًا إلى الفاتورة المرتبطة بكل عملية دفع.

```json theme={null}
{
  "payment_id": "pay_2IjeQm4hqU6RA4Z4kwDee",
  "status": "succeeded",
  "invoice_url": "https://dodopayments.com/invoices/inv_2IsUnWGtRKFLxk7xAQeyt",
  "total_amount": 9900,
  "currency": "USD",
  // ... other fields
}
```

**حالات الاستخدام**

* **التواصل مع العملاء**: إرسال روابط الفاتورة مباشرةً إلى العملاء
* **التكامل المحاسبي**: ربط المدفوعات بالفواتير في برامج المحاسبة الخاصة بك
* **بوابات الخدمة الذاتية**: تمكين العملاء من الوصول إلى فواتيرهم بسهولة
* **حفظ السجلات**: الاحتفاظ بإشارات مباشرة إلى مستندات الفاتورة

<Card title="Get Payment API" icon="code" href="/api-reference/payments/get-payments-1">
  اطلع على مخطط استجابة الدفع.
</Card>

### 6. **نقطة نهاية التحقق من الخصم بواسطة اسم الكود**

نقطة نهاية API جديدة للتحقق من رموز الخصم واسترجاعها باستخدام اسم الكود (مثل "SAVE20") بدلًا من استخدام معرف الخصم الداخلي. تحقق من أهلية الخصومات قبل تطبيقها عند الدفع.

كود\_PLACEHOLDER\_7a5306dd1cfc14f2\_END

**الفوائد**

* **التحقق قبل الدفع**: تأكد من صلاحية رموز الخصم قبل إنشاء جلسات الدفع
* **ردود فعل في الوقت الفعلي**: أظهر للعملاء ما إذا كان رمزهم صالحًا
* **معالجة الأخطاء**: اكتشاف الرموز غير الصالحة أو المنتهية مبكرًا
* **واجهات خصم مخصصة**: بناء حقول إدخال رموز الخصم مع التحقق الفوري

<Card title="Get Discount by Code API" icon="code" href="/api-reference/discounts/get-discount-by-code">
  اطلع على توثيق نقطة النهاية بالكامل.
</Card>

### 7. **قدرات تصفية محسّنة للعملاء والخصومات ومفاتيح الترخيص**

مرشحات API جديدة لقوائم العملاء والخصومات ومفاتيح الترخيص، مما يسهل العثور على بياناتك وإدارتها برمجيًا.

**مرشحات واجهة برمجة التطبيقات للعملاء**

| المرشح           | الوصف                                                         |
| ---------------- | ------------------------------------------------------------- |
| `email`          | التصفية حسب بريد العميل الإلكتروني                            |
| `name`           | التصفية حسب اسم العميل (مطابقة جزئية، غير حساسة لحالة الأحرف) |
| `created_at_gte` | التصفية للعملاء الذين تم إنشاؤهم في أو بعد هذا الطابع الزمني  |
| `created_at_lte` | التصفية للعملاء الذين تم إنشاؤهم في أو قبل هذا الطابع الزمني  |

```javascript theme={null}
// Find customers by name created in the last 30 days
const customers = await client.customers.list({
  name: 'John',
  created_at_gte: '2026-01-01T00:00:00Z'
});
```

**مرشحات واجهة برمجة التطبيقات للخصومات**

| المرشح          | الوصف                                                             |
| --------------- | ----------------------------------------------------------------- |
| `code`          | التصفية حسب رمز الخصم (مطابقة جزئية، غير حساسة لحالة الأحرف)      |
| `discount_type` | التصفية حسب نوع الخصم (نسبة مئوية)                                |
| `active`        | التصفية حسب حالة النشاط (true = غير منتهي، false = منتهي)         |
| `product_id`    | التصفية حسب تقييد المنتج (فقط الخصومات التي تنطبق على هذا المنتج) |

```javascript theme={null}
// Find active percentage discounts for a specific product
const discounts = await client.discounts.list({
  active: true,
  discount_type: 'percentage',
  product_id: 'pdt_123'
});
```

**مرشحات واجهة برمجة التطبيقات لمفاتيح الترخيص**

| المرشح           | الوصف                                                               |
| ---------------- | ------------------------------------------------------------------- |
| `customer_id`    | التصفية حسب معرف العميل                                             |
| `status`         | التصفية حسب حالة مفتاح الترخيص (`active`، `expired`، `disabled`)    |
| `product_id`     | التصفية حسب معرف المنتج                                             |
| `created_at_gte` | التصفية لمفاتيح الترخيص التي تم إنشاؤها في أو بعد هذا الطابع الزمني |
| `created_at_lte` | التصفية لمفاتيح الترخيص التي تم إنشاؤها في أو قبل هذا الطابع الزمني |

```javascript theme={null}
// Find active license keys for a specific product
const licenseKeys = await client.licenseKeys.list({
  status: 'active',
  product_id: 'pdt_123'
});
```

<CardGroup cols={3}>
  <Card title="List Customers API" icon="users" href="/api-reference/customers/get-customers">
    اطلع على الوثائق الكاملة لواجهة برمجة تطبيقات العملاء.
  </Card>

  <Card title="List Discounts API" icon="percent" href="/api-reference/discounts/list-discounts">
    اطلع على الوثائق الكاملة لواجهة برمجة تطبيقات الخصومات.
  </Card>

  <Card title="List License Keys API" icon="key" href="/api-reference/licenses/list-license-keys">
    اطلع على الوثائق الكاملة لواجهة برمجة تطبيقات مفاتيح الترخيص.
  </Card>
</CardGroup>

### 8. **تحسينات واجهة المستخدم/تجربة المستخدم في لوحة التحكم**

تتضمن هذه النسخة العديد من التحسينات المرئية والتجريبية عبر لوحة التحكم لتجربة أكثر وضوحًا وتأنقًا.

**أهم النقاط**

* تحسين التنقل واتساق التخطيط
* تعزيز تفاعلات جداول البيانات
* حالات تحميل وردود فعل محسنة
* تعزيز عناصر التصميم البصري
* تحسين التوافق مع الأجهزة المحمولة
