> ## 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.106.0 (7 يوليو 2026)

> التسعير المحلي مع قواعد أسعار لكل عملة ولكل بلد، وثلاث طرق دفع جديدة (Satispay وBLIK وKlarna للاشتراكات)، واستحقاقات feature flags، وتسجيل نطاق Apple Pay، وإضافات قابلة للتحرير عند الدفع — بالإضافة إلى تمديد فترة الاشتراك وإزالة صور الإضافات.

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

### 1. **التسعير المحلي**

يمكنك الآن تحديد **أسعار ثابتة لكل عملة أو لكل بلد** بدلاً من ترك أسعار الصرف تحدد المبلغ الذي يراه العميل. فعّل ذلك من خلال تعيين `pricing_mode` على منتج، ثم أرفق قاعدة سعر واحدة لكل سوق:

<Frame>
  <img src="https://mintcdn.com/dodopayments/hpHKp5MybOFgIhM2/images/localized-pricing/pricing-section.png?fit=max&auto=format&n=hpHKp5MybOFgIhM2&q=85&s=933fc68155db9639d36d624c0f84dfee" alt="تمكين التسعير المحلي في نموذج المنتج مع تحديد حسب البلد" style={{ maxHeight: '450px', width: 'auto' }} width="850" height="580" data-path="images/localized-pricing/pricing-section.png" />
</Frame>

| الوضع         | ما الذي يفعله                                            | المثال                                  |
| ------------- | -------------------------------------------------------- | --------------------------------------- |
| `by_currency` | سعر ثابت واحد لكل عملة، بغض النظر عن البلد               | يرى كل من يدفع باليورو **€9.99**        |
| `by_country`  | سعر محدد لبلد، حتى عندما تشترك عدة بلدان في العملة نفسها | **₹999 في الهند** لمنتج أساسي سعره 20\$ |

أدر القواعد من خلال نقاط النهاية الجديدة `/products/{product_id}/localized-prices` (إنشاء، وسرد، وجلب، وتصحيح، وأرشفة). إن `amount` لكل قاعدة هو عدد صحيح بوحدة العملة الأصغر — وهو سعر تحدده أنت، وليس قيمة محوّلة.

عند عدم تطابق أي قاعدة، يحتفظ المنتج بسلوكه الحالي: يدفع العملاء بعملة الأساس السعر الأساسي مباشرةً، بينما يتم تحويل المبلغ للعملاء الآخرين عبر Adaptive Currency. وعند تطابق قاعدة **فعلاً**، يدفع العميل **المبلغ الذي حددته تماماً** — إذ يتم استيعاب رسم FX البالغ Adaptive Currency بدلاً من إضافته إلى السعر.

هذه هي الطريقة الأصلية الموصى بها لتطبيق **تعادل القوة الشرائية (PPP)**، والتسعير الجذاب (€9.99 و¥1000 و₹499)، والعروض الترويجية القابلة للعكس لدخول الأسواق، ومطابقة الأسعار التنافسية.

تعرّف على المزيد: [التسعير المحلي](/features/localized-pricing) | [Adaptive Currency](/features/adaptive-currency) | [تعادل القوة الشرائية](/features/purchasing-power-parity)

### 2. **طرق دفع جديدة: Satispay وBLIK وKlarna للاشتراكات**

توسّع ثلاث إضافات التغطية المحلية في أوروبا، وتوفر خيار Buy Now, Pay Later للفوترة المتكررة.

| الطريقة      | نوع API    | المنطقة          | العملة | الاشتراكات                  |
| ------------ | ---------- | ---------------- | ------ | --------------------------- |
| **Satispay** | `satispay` | أوروبا (إيطاليا) | EUR    | نعم                         |
| **BLIK**     | `blik`     | بولندا           | PLN    | لا (للدفعات لمرة واحدة فقط) |
| **Klarna**   | `klarna`   | الولايات المتحدة | USD    | **نعم (جديد)**              |

* يظهر **Satispay** في عمليات الدفع باليورو لكل من الدفعات لمرة واحدة ودفعات الاشتراكات ضمن نطاق المبالغ المدعوم.
* تُسوّى دفعات **BLIK**، وهي طريقة الدفع عبر الإنترنت الأكثر شيوعاً في بولندا (بحصة سوقية تبلغ نحو 60%)، بعملة `PLN` وتدعم الدفعات لمرة واحدة.
* يمكن الآن استخدام **Klarna** مع **الاشتراكات** في عمليات الدفع بالدولار الأمريكي مع فوترة أمريكية تتجاوز الحد الأدنى البالغ 50\$ — إذ كانت تقتصر سابقاً على الدفعات لمرة واحدة.

تعرّف على المزيد: [طرق الدفع الأوروبية](/features/payment-methods/europe) | [Buy Now, Pay Later](/features/payment-methods/bnpl) | [نظرة عامة على طرق الدفع](/features/payment-methods)

### 3. **استحقاقات Feature Flag**

يحوّل نوع استحقاق جديد خاص بـ **feature flag** ‏Dodo Payments إلى مخزن feature flags مرتبط بالفوترة. أرفق flag مثل `advanced_reports` بمنتج، وسيحصل كل عميل يدفع فوراً على منحة يمكن لتطبيقك التحقق منها — دون منصة خارجية، أو OAuth، أو خطوة تسليم قد تفشل.

<Frame>
  <img src="https://mintcdn.com/dodopayments/oS2MTbJuY6MeBjjs/images/entitlements/feature-flags/create.png?fit=max&auto=format&n=oS2MTbJuY6MeBjjs&q=85&s=08d8fc2cfee102ff08fd150c76b5fcf9" alt="نموذج Feature Flag جديد يتضمن اسم العرض ومعرّف الميزة والوصف وإدخالات مفتاح-قيمة للبيانات الوصفية" style={{ maxHeight: '500px', width: 'auto' }} width="1196" height="776" data-path="images/entitlements/feature-flags/create.png" />
</Frame>

* عند إتمام الشراء، يتم إنشاء المنحة وتنتقل مباشرةً إلى `delivered`. لا توجد مرحلة `pending` ولا يتطلب الأمر أي إجراء من العميل.
* تحمل المنحة حمولة `feature` مكتوبة النوع — `{ "feature_type": "boolean", "feature_id": "advanced_reports" }` — ويقرأ تطبيقك `feature_id` ليقرر ما الذي يجب فتحه.
* يؤدي الإلغاء أو رد الأموال أو الإلغاء اليدوي إلى نقل المنحة إلى `revoked`، ويختفي flag تلقائياً.

يمكنك قراءة منح العميل باستخدام نقطة النهاية الجديدة **`GET /customers/{customer_id}/entitlement-grants`** (مع مرشحات للحالة ونوع التكامل، ودعم الترقيم)، أو إبقاؤها متزامنة عبر webhooks. تدعم البيانات الوصفية للاستحقاقات الآن أيضاً اتحاداً قياسياً `string | number | boolean`، ما يتيح لك إرفاق الحدود والحصص إلى جانب flag.

تعرّف على المزيد: [استحقاق Feature Flag](/features/entitlements/feature-flags) | [الاستحقاقات](/features/entitlements/introduction)

### 4. **تسجيل نطاق Apple Pay**

يمكنك الآن تسجيل نطاقاتك **الخاصة والتحقق منها** لـ Apple Pay مباشرةً من لوحة التحكم، ما يتيح Apple Pay بنقرة واحدة في صفحة الدفع المضمنة (embedded) المستضافة على موقعك.

أعدّ ذلك من **الإعدادات → طرق الدفع**: في صف **Apple Pay**، انقر على **إدارة النطاقات**، ونزّل ملف domain-association، واستضفه على نطاقك، ثم سجّل النطاق وتحقق منه. لا يلزم التحقق من النطاق إلا لصفحة الدفع المضمنة (embedded) — أما صفحة الدفع overlay، وصفحة الدفع المستضافة، وروابط الدفع فتعمل من دونه.

<Frame caption="Register the domain where you embed checkout">
  <img src="https://mintcdn.com/dodopayments/TklciB6vqCMDIBgH/images/apple-pay-domains/register-domain.png?fit=max&auto=format&n=TklciB6vqCMDIBgH&q=85&s=9c2bf22e51c8ff188a4e11b36b24c136" alt="نموذج تسجيل نطاق يتضمن نطاقاً مُدخلاً" style={{ maxHeight: '500px', width: 'auto' }} width="2940" height="1672" data-path="images/apple-pay-domains/register-domain.png" />
</Frame>

<Info>
  يُعد تعطيل نطاق مفتاح إيقاف يوقف Dodo عن توفير Apple Pay على ذلك النطاق عند الدفع — لكنه لا يلغي تسجيل النطاق لدى Apple.
</Info>

تعرّف على المزيد: [المحافظ الرقمية](/features/payment-methods/digital-wallets)

### 5. **الإضافات القابلة للتحرير عند الدفع**

يتيح flag جديد للميزة `allow_editing_addons` في جلسات الدفع للعملاء **إضافة الإضافات أو إزالتها من منتج اشتراك أثناء الدفع**، بدلاً من قفل سلة التسوق على مجموعة ثابتة من الإضافات.

```typescript theme={null}
const session = await client.checkoutSessions.create({
  product_cart: [{ product_id: 'prod_abc', quantity: 1 }],
  feature_flags: {
    allow_editing_addons: true // customers can edit add-ons at checkout
  },
  return_url: 'https://yoursite.com/return'
});
```

تكون قيمة flag الافتراضية `false`، ولا ينطبق إلا على منتجات الاشتراكات. كما يظهر في `GET /checkouts/{id}` حتى تعرف الواجهة الأمامية لديك ما إذا كان تعديل الإضافات مفعّلاً لجلسة معينة.

تعرّف على المزيد: [جلسة الدفع](/developer-resources/checkout-session) | [الإضافات](/features/addons)

## التحسينات وإصلاحات الأخطاء

### 6. **تمديد فترة الاشتراك عبر `PATCH /subscriptions`**

تقبل `PATCH /subscriptions/{id}` الآن `subscription_period_count` و`subscription_period_interval`، ما يتيح لك **تمديد** الفترة الحالية للاشتراك — على سبيل المثال، لمنح وقت إضافي. يُعاد حساب تاريخ انتهاء الاشتراك (`expires_at`) استناداً إلى العدد والفاصل الجديدين، ثم يُحفظ.

<Note>
  يمكن **زيادة** فترة الاشتراك فقط، ولا يمكن تقصيرها.
</Note>

تعرّف على المزيد: [تحديث الاشتراك](/api-reference/subscriptions/patch-subscriptions)

### 7. **إزالة الصور من الإضافات**

تدعم `PATCH /addons/{id}` الآن إزالة صورة الإضافة عبر إرسال `image_id: null`. تؤدي قيمة `null` الصريحة إلى إزالة الصورة، بينما يؤدي حذف الحقل إلى إبقائها دون تغيير — بما يتوافق مع الاصطلاح نفسه المستخدم للمنتجات ومجموعات المنتجات.

تعرّف على المزيد: [تحديث الإضافة](/api-reference/addons/update-addon)

### إصلاحات وتحسينات أخرى

* إصلاحات طفيفة للأخطاء وتحسينات في الاستقرار عبر المنصة.
