Skip to main content
#P1720

RESOURCE /v2/landing_pages

Landing Page Management

این بخش شامل مدیریت کامل صفحات فرود (Landing Pages) است.
این صفحات معمولاً برای کمپین‌های خاص یا صفحات ایستا استفاده می‌شوند و شامل مدیریت سئو (Meta Tags) به صورت تودرتو هستند.


1. List Landing Pages (Index)

URL: /v2/landing_pages
Method: GET
Controller: LandingPageController@index

توجه: در این متد از صفحه‌بندی (Pagination) استفاده نشده و تمام رکوردهای موجود در جدول برگردانده می‌شوند.

مثال پاسخ

{
  "status": true,
  "time": 1715016000,
  "data": [
    {
      "id": 1,
      "title": "Black Friday Sale",
      "slug": "black-friday",
      "image": "https://...",
      "published_at": "2024-11-20 00:00:00"
    },
    {
      "id": 2,
      "title": "Norouz Campaign",
      "slug": "norouz-1404",
      "image": "https://...",
      "published_at": "2025-03-20 00:00:00"
    }
  ]
}

2. Create Landing Page (Store)

URL: /v2/landing_pages
Method: POST
Controller: LandingPageController@store

ایجاد صفحه فرود جدید به همراه متاتگ‌های سئو.

بدنه درخواست (Body Parameters)

Field Type Description
title string (الزامی) عنوان صفحه
slug string (الزامی) آدرس یکتا
body text محتوای HTML یا متن صفحه
image string لینک تصویر شاخص
published_at datetime تاریخ انتشار
meta_tag string (احتمالاً متاتگ کلی یا توضیحات متا)
metatags array آرایه‌ای از اشیاء برای جدول page_metatags.
ساختار: [{"key": "keywords", "value": "test"}]

رفتار سیستمی: متاتگ‌های ارسالی در آرایه metatags با تایپ landing_page در دیتابیس ذخیره می‌شوند.


3. Show Landing Page

URL: /v2/landing_pages/{id}
Method: GET
Controller: LandingPageController@show

دریافت جزئیات کامل یک صفحه فرود.


4. Update Landing Page

URL: /v2/landing_pages/{id}
Method: PUT/PATCH
Controller: LandingPageController@update

ویرایش اطلاعات صفحه فرود و مدیریت هوشمند متاتگ‌ها.

منطق آپدیت متاتگ‌ها (Metatags Logic)

هنگام ارسال آرایه metatags، سیستم روی هر آیتم پیمایش می‌کند:

  • اگر id داشته باشد: متاتگ موجود با آن ID را پیدا کرده و key و body (مقدار value) آن را آپدیت می‌کند.
  • اگر id نداشته باشد: یک متاتگ جدید ایجاد می‌کند.
    (نکته کدنویسی: طبق کد موجود، متاتگ‌های جدیدی که در متد آپدیت ساخته می‌شوند، تایپ article می‌گیرند، در حالی که در متد Store تایپ landing_page بود).
Update Request
Update LandingPage Basic Info
Loop Metatags Array
Has "id"?
Find PageMetatag(id)
Update key & value
No "id"
Create NEW PageMetatag
(type='article')
Return {status: true}

5. Delete Landing Page

URL: /v2/landing_pages/{id}
Method: DELETE
Controller: LandingPageController@destroy

حذف صفحه فرود (و احتمالاً متاتگ‌های وابسته اگر Cascade در دیتابیس تنظیم شده باشد).