vehicle
Vehicle provides a Drupal 11+ base module for managing vehicle make, model, and type data.
It is intended for sites that need structured vehicle reference data, such as vehicle catalogs, dealership websites, listing platforms, comparison tools, fleet systems, garage systems, maintenance systems, or future Commerce-related integrations.
The main Vehicle module focuses on vehicle identity and classification. It is not a complete marketplace, technical specifications database, garage system, import tool, or Commerce integration.
Current status
The current 1.0.x branch is a Drupal 11+ refresh of the Vehicle project. It currently provides the following base concepts:
- Vehicle Make: A manufacturer or brand, such as Toyota, BMW, Ford, Yamaha, Volvo, or Mercedes-Benz.
- Vehicle Model: A model that belongs to a vehicle make, such as Toyota Camry, BMW 3 Series, Ford Ranger, or Yamaha MT-07.
- Vehicle Type: A broad vehicle category, such as car, motorcycle, truck, bus, boat, or heavy equipment.
Features
- Provides Vehicle Make as a fieldable content entity.
- Provides Vehicle Model as a fieldable content entity.
- Provides Vehicle Type as a configuration entity.
- Supports a make-to-model relationship.
- Allows vehicle models to optionally reference a vehicle type.
- Provides administrative forms and list builders.
- Provides granular permissions for managing vehicle data.
- Uses Drupal core entity APIs.
- Works with Drupal core Views through standard entity integration.
- Does not require Commerce, Taxonomy, Feeds, Search API, Inline Entity Form, or other contrib dependencies.
Project scope
The main module is meant to be a small, reusable vehicle identity layer. It can be used as a foundation for different kinds of vehicle-related Drupal projects, but it does not try to implement all possible vehicle workflows by itself.
The main module does not currently provide:
- Classified ads or marketplace functionality
- Vehicle listing pages
- Seller management
- Pricing workflows
- Garage or ownership records
- Maintenance records
- Commerce products, orders, or carts
- Import providers
- A default vehicle database
- Full technical specification profiles
- Feature catalog management
- Vehicle comparison pages
Those features are better handled by optional submodules, future integration modules, or site-specific implementations.
Architecture direction
The module is being developed as a reusable identity and classification layer for vehicle-related Drupal projects.
Future work may add additional identity-level concepts, such as:
- Vehicle Body Type, such as sedan, SUV, crossover, pickup, hatchback, coupe, or van.
- Vehicle Model Range / Generation, such as Toyota Camry XV70, Toyota Venza XU80, BMW 3 Series G20, or Volkswagen Golf Mk8.
- Vehicle Variant / Trim, such as a trim, grade, style, edition, or market variant.
A possible future identity hierarchy is:
Vehicle Make
└── Vehicle Model
└── Vehicle Model Range / Generation
└── Vehicle Variant / Trim
Technical specifications, editorial vehicle pages, listings, garage records, maintenance records, imports, and Commerce integration should remain outside the main module unless there is a clear reason to add them as optional submodules.
Installation
Install the module as a normal Drupal contrib module.
composer require drupal/vehicle
Enable the module using Drush:
drush en vehicle
Or enable it through the Drupal administrative UI.
Configuration
After enabling the module, vehicle administration pages are available under the Drupal administration structure section.
Site administrators can manage:
- Vehicle makes
- Vehicle models
- Vehicle types
Requirements
- Drupal 11
- No required third-party library
- No required contrib dependency
Support
Please use the Vehicle issue queue to report bugs, request features, or discuss architecture decisions.
Feature requests should explain whether the requested functionality belongs in the main module, an optional submodule, a future integration module, or a site-specific implementation.
Historical note
Earlier versions of the Vehicle project had a different scope and may have referenced older concepts such as Y/M/M selectors, external data providers, Feeds integrations, Pathauto/Token behavior, or default listing-oriented views.
The current 1.0.x branch is a Drupal 11+ refresh focused on a smaller and cleaner vehicle identity foundation.
Legacy behavior should not be assumed to exist in the current 1.0.x branch unless it is explicitly implemented and documented.