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

صفحات الهبوط

صفحة الهبوط صفحة تحويل مركّزة لمنتج واحد. مستقلة عن كتالوج الواجهة — يمكنك امتلاك صفحة هبوط بدون منتج حي (لإطلاقات قادمة)، أو واحدة مرتبطة بمنتج لإعلانات مدفوعة.

تُدار الأقسام (السلايدرات، الزوار الوهميون، العدّاد التنازلي…) من لوحة التحكم في v1؛ الواجهة البرمجية تُجري CRUD على السجل الأم فقط. تحديث v1.1 سيكشف CRUD الأقسام أيضًا.

حدود الخطة

الخطةصفحات هبوط نشطة
Free0 (شراء لمرة واحدة: 1000 دج/مدى الحياة لكل منها)
Pro3
Unlimited / Enterpriseغير محدود

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

GET /v1/landing-pages

اسرد صفحات الهبوط. ترقيم بالمؤشّر.

المصادقة: مفتاح منصة بصلاحية landing_pages:read.

معاملات الاستعلام

المعاملالنوعملاحظات
limitint 1–200الافتراضي 50
cursorstringغير شفاف
statusactive | draftتصفية

الاستجابة 200

{
"data": {
"items": [
{
"id": 42,
"title": "Black T-Shirt — 30% off",
"slug": "black-tshirt-30-off",
"status": "active",
"language": "ar",
"product_id": 26,
"views": 1543,
"is_purchased": false,
"created_at": "2026-03-01 10:00:00",
"updated_at": "2026-03-15 14:22:11"
}
],
"next_cursor": null,
"has_more": false
}
}

GET /v1/landing-pages/{id}

تفاصيل مع section_count.

{
"data": {
"id": 42,
"title": "Black T-Shirt — 30% off",
"slug": "black-tshirt-30-off",
"status": "active",
"language": "ar",
"product_id": 26,
"views": 1543,
"is_purchased": false,
"meta_title": "Black T-Shirt — Cotton 200gsm — 30% off | DZBuild",
"meta_description": "Limited-time offer on our cotton black t-shirt.",
"section_count": 7,
"created_at": "2026-03-01 10:00:00",
"updated_at": "2026-03-15 14:22:11"
}
}

POST /v1/landing-pages — إنشاء

المصادقة: مفتاح منصة بصلاحية landing_pages:write. يتطلب Idempotency-Key.

الجسم

الحقلالنوعإلزاميملاحظات
titlestring 1–255
slugstringيُشتق تلقائيًا من title إن أُغفل
statusactive | draftالافتراضي draft
languagear | fr | enالافتراضي ar
product_idintيجب أن ينتمي إلى متجرك؛ الصفحة تربط بهذا المنتج
meta_titlestring ≤ 255عنوان SEO؛ الافتراضي title
meta_descriptionstringوصف SEO

الطلب

curl -X POST 'https://api.dzbuild.app/v1/landing-pages' \
-H "Authorization: Bearer $DZ_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"title": "Black T-Shirt — 30% off",
"language": "ar",
"product_id": 26,
"status": "draft"
}'

تُرجع 201 وبنفس شكل GET /v1/landing-pages/{id}. صفحة الهبوط الجديدة بدون أقسام — أضفها من لوحة التحكم.

PATCH /v1/landing-pages/{id}

تحديث جزئي.

curl -X PATCH 'https://api.dzbuild.app/v1/landing-pages/42' \
-H "Authorization: Bearer $DZ_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{ "title": "Black T-Shirt — Spring promo" }'

تغيير العنوان يُعيد توليد slug تلقائيًا فقط إن لم تُرسل slug صراحةً.

POST /v1/landing-pages/{id}/publish

اختصار: تحويل الحالة إلى active. يكافئ PATCH ... { status: "active" }.

curl -X POST 'https://api.dzbuild.app/v1/landing-pages/42/publish' \
-H "Authorization: Bearer $DZ_KEY" \
-H "Idempotency-Key: publish-42-$(date +%s)"

DELETE /v1/landing-pages/{id}

حذف نهائي. الـ cascades تحذف الأقسام.

curl -X DELETE 'https://api.dzbuild.app/v1/landing-pages/42' \
-H "Authorization: Bearer $DZ_KEY" \
-H "Idempotency-Key: del-42"

الاستجابة: { "data": { "deleted": true, "id": 42 } }.