Skip to main content

Bundles

This guide explains how to interact with the Bundles API in the Sumaya369 application. The API provides endpoints for managing educational content bundles, which are collections of courses and ebooks offered together at a special price. Bundles can include certificates, summaries, and other educational materials.

List Bundles

Retrieve a paginated list of available bundles with optional category filtering. This endpoint returns comprehensive bundle information including pricing, content counts, and engagement metrics.

Endpoint

  • Method: GET
  • URL: /v1/customer/bundles

Request Headers

HeaderValueRequired
Content-Typeapplication/jsonYes
Acceptapplication/jsonYes

Query Parameters

ParameterTypeDescriptionRequired
per_pageintegerNumber of bundles per page (default: 10)No
categorystringFilter bundles by category nameNo

Success Response

{
"success": true,
"message": "تم جلب البيانات بنجاح.",
"data": {
"current_page": 1,
"first_page_url": "http://testing-api.sumaya369.net/v1/customer/bundles?page=1",
"from": 1,
"last_page": 2,
"last_page_url": "http://testing-api.sumaya369.net/v1/customer/bundles?page=2",
"links": [
{
"url": null,
"label": "« السابق",
"active": false
},
{
"url": "http://testing-api.sumaya369.net/v1/customer/bundles?page=1",
"label": "1",
"active": true
},
{
"url": "http://testing-api.sumaya369.net/v1/customer/bundles?page=2",
"label": "2",
"active": false
},
{
"url": "http://testing-api.sumaya369.net/v1/customer/bundles?page=2",
"label": "التالي »",
"active": false
}
],
"next_page_url": "http://testing-api.sumaya369.net/v1/customer/bundles?page=2",
"path": "http://testing-api.sumaya369.net/v1/customer/bundles",
"per_page": 10,
"prev_page_url": null,
"to": 10,
"total": 20,
"seo": {
"keywords": "الدكتورة سمية الناصر,موقع الدكتورة سمية الناصر,دورات سمية الناصر,مقالات سمية الناصر,سمية الناصر الموقع الرسمي,كتب تتحدث عن الجسد المشاعري,sumaya369,الجسد المشاعري,خريطة المشاعر",
"author": "الدكتورة سمية الناصر",
"description": "الموقع الرسمي لدكتورة سمية الناصر| مواد - مقالات - كتب - اصدارات.",
"title": "الرئيسية"
},
"bundles": [
{
"id": "6c2e6110-dd97-11ef-bb69-73baa2cde1ba",
"poster": "https://sumaya369-testing-media.s3.us-east-2.amazonaws.com/23487/miss-n-misses-herbal-beauty-parlour-azad-nagar-bhilwara-beauty-spas-2zsiyrn.jpg",
"name": "نسخة من (باقة النجاح1)",
"slug": "نسخة-من-باقة-النجاح1",
"description": "iiwjqijdow...",
"old_price": "hide_price",
"is_purchasable": false,
"can_purchase": false,
"hide_price": true,
"can_comment": true,
"has_active_subscribed": false,
"price": "hide_price",
"price_difference": "hide_price",
"does_has_vat": false,
"price_with_vat_show": "hide_price",
"products_count": 0,
"model_type": "bundles",
"has_newly_added": false,
"pay_button_title": "أخبرني عند التوفر",
"pay_button_status": true,
"has_available_special_link": false,
"favorite": null
},
{
"id": "0c1ac220-c797-11ef-bee0-cbdadfacf981",
"poster": "https://sumaya369-testing-media.s3.us-east-2.amazonaws.com/23452/miss-n-misses-herbal-beauty-parlour-azad-nagar-bhilwara-beauty-spas-2zsiyrn.jpg",
"name": "باقة النجاح1",
"slug": "باقة-النجاح1",
"description": "iiwjqijdow...",
"old_price": "hide_price",
"is_purchasable": false,
"can_purchase": false,
"hide_price": true,
"can_comment": true,
"has_active_subscribed": false,
"price": "hide_price",
"price_difference": "hide_price",
"does_has_vat": false,
"price_with_vat_show": "hide_price",
"products_count": 3,
"model_type": "bundles",
"has_newly_added": false,
"pay_button_title": "أخبرني عند التوفر",
"pay_button_status": true,
"has_available_special_link": false,
"favorite": null
},
]
},
"status_code": 200
}

Get Single Bundle

Retrieve detailed information about a specific bundle by its ID or slug. This endpoint returns comprehensive bundle data including included courses, ebooks, pricing details, and engagement metrics. It also provides information about certificates, summaries, and related bundles in the "watch also" section.

Endpoint

  • Method: GET
  • URL: /v1/customer/bundles/{id_or_slug}

Request Headers

HeaderValueRequired
Content-Typeapplication/jsonYes
Acceptapplication/jsonYes

Path Parameters

ParameterTypeDescriptionRequired
id_or_slugstringBundle ID (UUID) or slugYes

Query Parameters

ParameterTypeDescriptionRequired
viewbooleanShow bundle even if inactive (admin preview)No

Success Response

{
"success": true,
"message": "تم جلب البيانات بنجاح.",
"data": {
"id": "cf145b70-c795-11ef-b586-eb5871aabd0d",
"poster": "https://sumaya369-testing-media.s3.us-east-2.amazonaws.com/23451/preview_10330455_718163334873481_6240767596807275245_n.jpg",
"name": "باقة النجاح",
"slug": "باقة-النجاح-1",
"description": "<p class=\"ql-align-right\">jijiojj</p>",
"old_price": null,
"price": null,
"price_difference": 448.7,
"does_has_vat": true,
"price_with_vat_show": 92,
"tag_names": [],
"products_count": 3,
"comments_count": 0,
"summary": "",
"is_purchasable": true,
"rating": 0,
"ratings_count": "0",
"subscriptions_count": 1,
"can_purchase": true,
"hide_price": false,
"can_be_bought": null,
"can_comment": true,
"summary_name": "",
"has_certificate": false,
"has_summary": false,
"certificate": "",
"certificate_price": 0,
"summary_price": 0,
"model_type": "bundles",
"has_active_subscribed": false,
"pay_button_title": "أضف للسلة",
"pay_button_status": true,
"has_available_special_link": false,
"favorite": null,
"courses": [
{
"id": "e6f33740-b67a-11ec-bfa4-932fd7d106c6",
"slug": "وعي-الضحك",
"poster": "https://sumaya369-testing-media.s3.us-east-2.amazonaws.com/708/50fd7810--%D8%A7%D9%84%D8%B6%D8%AD%D9%83-%D9%85%D9%88%D9%82%D8%B9.png",
"name": "وعي الضحك",
"price": 190.44,
"duration": "730 يوم",
"videos_count": 17,
"type": "course",
"is_newly_added": false,
"pay_button_title": "طلب المادة",
"pay_button_status": true,
"has_available_special_link": true
},
{
"id": "ea414cd0-b8aa-11ec-b0e1-9189f9a72227",
"slug": "قفزة-2019",
"poster": "https://sumaya369-testing-media.s3.us-east-2.amazonaws.com/878/%D9%82%D9%81%D8%B2%D8%A92019-%D9%85%D9%88%D9%82%D8%B9.png",
"name": "قفزة 2019",
"price": 38.26,
"duration": "730 يوم",
"videos_count": 6,
"type": "course",
"is_newly_added": false,
"pay_button_title": "أخبرني عند التوفر",
"pay_button_status": true,
"has_available_special_link": true
},
{
"id": "e4b4d1f0-b67a-11ec-af65-6bb47f5712ac",
"slug": "الفرح",
"poster": "https://sumaya369-testing-media.s3.us-east-2.amazonaws.com/697/b46d489d--%D9%83%D8%A8%D9%8A%D8%B1.png",
"name": "الفرح",
"price": 300,
"duration": "730 يوم",
"videos_count": 18,
"type": "course",
"is_newly_added": false,
"pay_button_title": "أخبرني عند التوفر",
"pay_button_status": true,
"has_available_special_link": true
}
],
"seo": {
"title": "باقة النجاح",
"description": "jijiojj...",
"image": "https://sumaya369-testing-media.s3.us-east-2.amazonaws.com/23451/preview_10330455_718163334873481_6240767596807275245_n.jpg",
"type": "bundles",
"locale": "ar_SA",
"site_name": "Sumaya369",
"keywords": "الدكتورة سمية الناصر,موقع الدكتورة سمية الناصر,دورات سمية الناصر,مقالات سمية الناصر,سمية الناصر الموقع الرسمي,كتب تتحدث عن الجسد المشاعري,sumaya369,الجسد المشاعري,خريطة المشاعر",
"author": "الدكتورة سمية الناصر",
"published_time": "2024-12-31T19:39:31+03:00",
"modified_time": "2025-01-20T16:18:25+03:00",
"article_tags": "",
"article_section": "باقة"
}
},
"status_code": 200
}

Error Responses

Bundle Not Found (404)

{
"success": false,
"message": "لم يتم العثور على السجل",
"data": [],
"status_code": 404
}

Example Implementation Flow

  1. Bundle Listing

    • Application sends request to /v1/customer/bundles
    • Optional query parameters:
      • Filter by category
      • Specify number of bundles per page
    • Display bundles with pagination
    • Show bundle details including:
      • Total price calculation
      • Number of included courses and ebooks
      • Bundle rating and reviews count
    • Show SEO metadata
  2. Single Bundle View

    • User selects a bundle
    • Application sends request to /v1/customer/bundles/{id_or_slug}
    • Display full bundle content including:
      • All included courses with their video counts
      • All included ebooks
      • Certificate and summary options
      • Pricing details with VAT calculations
    • Show related bundles in "watch also" section
    • Handle special ID access with authentication

Key Considerations

  • Implement response caching for unauthorized users
  • Handle both web and mobile platform-specific responses
  • Manage bundle visibility based on user authentication
  • Calculate and display accurate pricing including:
    • Base price
    • Certificate price
    • Summary price
    • VAT components
  • Track bundle favorites and cart status
  • Provide clear purchase button states and messages