سجل التغييرات
المراجعات المؤرّخة لواجهة المنصّة وعقد الثيمات وحزم الحزمة والأداة.
في هذه الصفحة
كل تغيير إضافي في واجهة المنصّة يظهر هنا بالمراجعة المؤرّخة التي تحملها الترويسة X-Dukkan-Api-Version، وكل تغيير في عقد الثيمات بتاريخه. الأحدث أولاً. سياسة الإصدارات في مرجع الواجهة.
2026-09-10: الطلبات التي تنشئها التطبيقات#
المراجعة المؤرّخة الثالثة من v1 (X-Dukkan-Api-Version: 2026-09-10). كلها إضافية:
- نطاقان جديدان.
orders:createينشئ طلبات بأسعار يحددها التطبيق؛ وهو منفصل عنorders:writeولا يتضمّن قراءة الطلبات.clients:writeينشئ سجلات العملاء ويحدّثها، ومقيّد باتفاقية معالجة البيانات تماماً مثلclients:read؛ وتصل نقاط نهاية العملاء في مراجعة لاحقة. صارorders:writeيُقرأ في شاشة الموافقة «تحديث حالة الطلب وملاحظته ووسومه». مرجع النطاقات. POST /ordersينشئ طلباً بأسعار الوحدة المتفق عليها، لخيارات الكتالوج والبنود المخصصة (OrderItem.kindإماvariantأوcustom)، ويعيد احتساب المجاميع، ويخصم المخزون وفق سياسة المخزون أو يتجاوزه، ويربط العميل، وينبّه التاجر، ويطلقorder.createdبقيمةsource: "app". رموز خاصة:422currency_not_allowedوinvalid_requestمعdetails.fields، و404variant_not_found، و409variant_unavailableوpayment_method_disabledوinsufficient_stockمعdetails.lines. الطلبات التي تنشئها التطبيقات.PATCH /orders/{id}يحدّث الملاحظة، ويضيف الوسوم أو يزيلها كعمليات مجموعات، ويدمج خصائص التطبيق المستدعي وحده؛ وتظهر الخاصيةreferenceشريحةً في صفحة الطلب عند التاجر.Order.tagsوOrderDetail.noteوOrderDetail.attributesحقول جديدة، ويصفّيGET /orders?tag=حسب الوسم.GET /storeيعيد هوية المتجر العلنية ومعطيات الدفع من دون نطاق: عملة التسعير وعملات المتجر، وجدول الصرف الذي تطبّقه صفحة الدفع بالشكلscaled / 10^scale، وطرق الدفع المفعّلة، وقائمة المحافظات.GET /productsيكسبq(بحث مرتّب بالتطابق الجزئي في الاسم واسم الخيار وSKU وDSIN والباركود) وstatusوids؛ ويعيدGET /products/variants?ids=التحقق من حتى 100 خيار دفعةً واحدة مع اسم منتجها وحالته.- تحمل حمولة
order.createdالحقلsource. - تضيف
@dukkan.one/app-sdk0.3.0 الدوالorders.createوorders.updateوproducts.searchوproducts.variantsوstore.get، والخطأين المنمّطينDukkanValidationErrorوDukkanConflictErrorمعinsufficientLines، ومساعدَي الصرفexchangeRateForوbuildCreateOrderLines. وتصدّر@dukkan.one/nuxt0.3.0 الدالتينenforceLimitوclientIpمن@dukkan.one/nuxt/runtime. الحزمة في أي تطبيق Node، وحدة Nuxt.
2026-09-09 — حزمة التطبيقات ووحدة Nuxt والأداة#
عدّة المطوّر الرسمية، منشورة تحت وسم التوزيع next حتى 1.0.0:
@dukkan.one/app-sdk: عميل منمّط لواجهة المنصّة مولَّد من مستند OpenAPI، وOAuth مع PKCE ورموز دوّارة خلفTokenStoreيسلسل التجديدات، ومستقبِل Webhooks يتحقق على البايتات الخام ويزيل التكرار على معرّف الحدث الموقّع، ومساعدات تجارة للمبالغ بالوحدات الصغرى وانتقالات الطلبات، ومخططdukkan.app.toml. يعمل على Node وWorkers وBun وDeno. البداية السريعة، المرجع.@dukkan.one/nuxt: تركّب مسارات التثبيت وإعادة التوجيه وWebhooks منdukkan.app.tomlوتطلب عقداً واحداً،defineDukkanApp. وحدة Nuxt.@dukkan.one/cli: يحمل الأمرdukkanالآنapp initوapp config pushوpullوapp devبنفق عام وجلسة تطوير وapp webhook triggerوapp logs، إلى جانب أوامر الثيمات دون تغيير. تحوّل@dukkan.one/theme-cliإليه مع تنبيه إهمال. مرجع الأداة.- يُنشر العقد للغات الأخرى، مع متجهات الاختبار ومخطط الإعداد، على
/contracts/v1/. العقد للغات الأخرى.
2026-09-09 — عقد حزمة التطبيقات#
المراجعة المؤرّخة الثانية من v1 (X-Dukkan-Api-Version: 2026-09-09). كلها إضافية:
- تحمل استجابات الرموز (في المنحتين)
install_idوstore_idوstore_slug، وعند التحديثscopeأيضاً. اجعل المعرّفات مفتاح تخزينك؛ راجع التفويض. - يصف
GET /installationالتثبيت والمتجر خلف الرمز: النطاقات الفعلية، وقناة التوزيع، والأس العشري لعملة المتجر ولغته ومنطقته الزمنية، واشتراك Webhooks الحالي. - تحمل أغلفة Webhooks
install_idموقّعاً؛ وتضيف التسليمات الترويسة غير الموقّعةX-Dukkan-Install-Idللبحث عن السر. تحمل تجارب المتاجر التجريبيةtest: true. - يطلق
POST /webhooks/testتسليماً موقّعاً واحداً لأي موضوع مشترَك فيه على متجر تجريبي، عبر صندوق الصادر وعامل التسليم الحقيقيين. - رمز تحديث يُقدَّم مجدداً خلال 30 ثانية من تدويره، وخلفه ما زال صالحاً، يُعدّ سباقاً:
invalid_grantدون إلغاء. راجع منحة التحديث. - تحمل استجابات
429الترويسةRetry-After؛ وpayment_statusصار تعداداً منشوراً؛ وينشر مستند OpenAPI مخطط حمولة كل موضوع تحتx-dukkan-topic-payloads. - تعرض لوحة التحكم المسودات التي يديرها
dukkan.app.tomlوتنبّه عندما تختلف البوابة عن الملف. أسرار توقيع Webhooks المُنشأة من لوحة التحكم تستخدم الآن البادئةdk_whsec_مثل الواجهة.
2026-09-02 — التوثيق#
- إعادة بناء التوثيق بالشجرة الحالية، وتصحيح عقد الهيكل في دليل الثيمات (
{% layout %}+{% block %})، وإضافةfulfillment.requestedإلى جدول المواضيع، ومراجع كاملة للنطاقات وLiquid والأداة.
2026-08 — عقد الثيمات#
كلها إضافية إلا ما يُذكر:
- الأقسام على أربع صفحات:
enabled_onعلى تعريف القسم يفتحه لـproductوcategoryوcart؛ غيابه يبقي الرئيسية فقط.page_sectionsيصل إلى القوالب الأربعة. - غلاف الأقسام منصّي (تغيير في التأليف لا في المستندات):
snippets/sections.liquidمحجوز ويُحقن عند الدفع؛ الثيم يكتبsnippets/section-body.liquid؛ إصدارdata-dukkan-sectionمن الثيم مرفوض. الأجسام تُصيَّر مرتين، والفارغ لا يُصدر غلافاً، وband: trueيُستثنى من التناوبsec--alt. - مفاتيح جديدة في المخطط:
infoوcategoryوbandوenabled_onعلى القسم؛localizedعلى الإعدادات النصية؛fontعلى خيارselect. - نوعان جديدان:
datetimeوrichtext(يُعرض بالمرشّحrichtext). - مستند الإعدادات: المفتاح
translationsمحجوز لترجماتlocalized(تضييق مقبول ما دامت الثيمات الخارجية في المتاجر التجريبية)؛ إعداداتurlتقبل مسارات مطلقة على المضيف نفسه. - مرشّحات جديدة:
file_altوfile_focal_styleوtel_hrefوwa_hrefوmoney_majorوdate_localized.img_urlأصبح عقد شبكة الصور بسلّم عروض ثابت. - سياق v1:
product.savingsوvariant.savings، وproduct.sold_count، وproduct.image_color، وحقول صورة التصنيف الأربعةimage_urlوimage_colorوimage_altوimage_focal_style(بديل الحرف الأول يبقى إلزامياً). - الأرقام المشرقية: إعداد
arabic_numeralsيحوّل مرشّحات المال إلى الأرقام العربية ويُختم الجذر بـdata-dukkan-numerals="arabic". - وحدات منصّة التشغيل: كشف عند التمرير، زر شراء ثابت، العودة إلى الأعلى، الوضع الليلي
[data-scheme="dark"]، نموذج «أعلمني عند التوفّر»، المعاينة السريعة، وأثر الطيران للحزم. - الأداء: صفحات الثيمات المنشورة قابلة للتخزين المشترك؛ المعاينات والمتاجر التجريبية والسلة والبحث مستثناة.
- تحديثات الثيمات: تحديثات الثيمات الأولى تُطبَّق تلقائياً على تثبيتاتها؛ الثيمات الخارجية تتحدّث عبر المراجعة والمسودة فقط.
2026-08-29 — سوق الثيمات#
- اكتمال دورة النشر: الوسائط (غلاف + 3–8 لقطات بنص بديل عربي)، وملاحظات الإصدار بلغتين، والسحب، والسحب من السوق والاستعادة، ومتجر العرض المملوك للمنصّة، والتحديث كمسودة للتاجر، والإحصاءات. راجع انشر ثيماً.
- قرارات المنتج: معاينة قبل الشراء، ومعالجة الاسترداد عبر مالية دكان وفق شروط المطوّرين، والرد الأول خلال 5 أيام عمل.
2026-08-19 — المتاجر التجريبية واتفاقية البيانات#
- المتاجر التجريبية تولد مزروعة: 3 لكل مؤسسة، 90 يوماً قابلة للتجديد، أوامر إعادة التهيئة والتجديد والحذف. راجع المتاجر التجريبية.
- الأداة
@dukkan.one/theme-cli@0.1.0وتدفق رمز الجهازDKN-XXXXXX. - نسخة اتفاقية معالجة البيانات
2026-08-19.
2026-08-10 — شروط المطوّرين#
- النسخة الأولى من شروط المطوّرين.
2026-08-09 — واجهة المنصّة v1#
المراجعة المؤرّخة الأولى لـ v1 (X-Dukkan-Api-Version: 2026-08-09):
- الموارد: الطلبات، والشحنات، والاستردادات، والمنتجات، والخصومات، وحركات المخزون، واشتراك Webhooks.
- الأعراف:
Idempotency-Keyعلى كل كتابة، ومؤشرات تصفّح مبهمة، و180 طلباً في الدقيقة لكل تثبيت، وغلاف خطأ موحّد. - الأحداث الـ12 بما فيها
fulfillment.requested، بتوقيع HMAC-SHA256 وإعادة محاولة حتى 8 مرات.