Introduction
For common website use cases Eduframe also provides a Drupal module. With the Drupal module you can connect your Eduframe administration with your Drupal website.
This documentation is up to date for the latest version of the module. This means that some parts might not be accurate when you're using an older version.
Functionality
Out of the box, this module provides a comprehensive catalog system. It doesn't just store data; it automatically generates a web-ready structure for educational offerings.
Dynamic Routing & Automatic Pages
The module automatically registers paths for every synchronized entity.
- Product Detail Pages: Each
eduframe_catalog_productentity is assigned a path based on its slug (e.g.,/courses/product-slug). These pages act as the primary landing page for a course. - Variant Display: While variants usually live within the Product Detail Page via the
{{ variants_table }}, they are accessible via JSON:API for headless implementations or custom filtering blocks.
Native Drupal Integration
Because Eduframe data is stored as Custom Content Entities, it works seamlessly with Drupal's core site-building tools:
- Views Support: You can create custom "Course Finders," "Upcoming Dates" blocks, or "Related Courses" sliders using the standard Drupal Views UI.
- Pathauto & Redirect: You can define automated URL patterns (e.g.,
/[category-name]/[product-name]). - Search Integration: Products are indexable by Search API, allowing users to easily find courses.
Automated Synchronization
Data stays fresh without manual intervention:
- Initial Import: A manual import tool allows you to pull the entire Eduframe catalog into Drupal during setup.
- Webhooks: The module provides a webhook endpoint that listens for updates from Eduframe. When a price changes or a product is published in Eduframe, the Drupal entity updates in near real-time.
Headless Ready
Every entity created by this module is fully exposed via JSON:API and RESTful Web Services. This allows you to use Drupal as a "Content Hub," syncing data from Eduframe and then serving it to a decoupled frontend (React, Vue, or Next.js) or a mobile application. This requires you to enable the RESTful Web Services* module.