This is a CCK field module that provides Vehicle Identification Number (VIN) validation. Additionally, Version 2.x provides optional hooks into lookup/decode services to break out year, make, model and trim level of the vehicle where data is available for the given VIN.

Version 1.x

Since a VIN is 17 digits long, has certain characters and numbers excluded from its valid set, and requires a check-digit calculation, this field takes the guesswork out of validating a user-entered VIN for typos or invalid information short of comparing it to a list of valid values. The validation logic in this module has been in production use for several years at a powersports distributor and had well over 10,000 VINs run through it with 100% accuracy on verification.

At present, the module performs only a validity check for a well-formed VIN, but does not have the ability to verify it is a legitimate VIN for a production vehicle. This could be accomplished in the future either by using SAE-provided data or by referencing an external VIN list. If there is enough demand, I will look into those options and see which is most feasible.

This version is strictly in maintenance mode as all efforts are being focused on the 2.x build.

Version 2.x

OK, between some email inquiries, discussions with some folks interested in taking VIN Field to the next level, and our good friend darkbrewery bringing it up in #763040: Option to collect/decode VIN data into token fields, I have been talking to Polk Data Systems' VINtelligence and VINquery.com about integrating their VIN lookup services into the module. If there is another service out there that has a web-enabled request system, put me in touch with them so I can build lookup modules for them as well.

The plan is to build a generic hook system that any VIN lookup service could be easily hooked into with only a handful of required hooks, and a few optional ones for extended functionality. The module will support multiple providers and configuration of search order to allow for control of costs since most of these providers aren't free.

As soon as I have something worth testing available, I will release the 2.x beta build on here. In the meantime, if you have any "feature requests" for this next build, please feel free to open them up in my queue (I know I'm going to regret that, aren't I?).

Aug 18, 2011

The 2.x rewrite is about 95% complete at this point. Unfortunately, I've been slammed with work and other commitments, so haven't had the time to devote to finishing the 6.x-2.x release, which pretty much precludes a D7 port.

If anyone has strong experience (i.e. published modules) in the following areas of module development, I'd be more than happy to grant co-maintainer access to help out:

  • Theming of CCK fields
  • Module update code/logic, particularly CCK field tables
  • CCK widget development, particularly in handling the case where a VIN doesn't match anything (or has a partial match) and the remaining year/make/model fields need to be generated and populated by the user

The VINquery.com and Data One modules are complete, and will be launched as independent modules at the same time this one goes beta. I've run into some technical snags with the Polk VINtelligence module regarding SOAP interoperability between PHP and J2EE, so that one is still in the works (Polk's developer support group is working with me on resolving it).

Thanks for the suggestions and patience of the community during this overhaul!

Project Information

Downloads