I need a module that is able to attach a serialnumber/IMEI number to each product sold. We sell a lot of cellphones and the IMEI is necessary for the warranty of a device.
I noticed a number of people are searching for a solution like this but I couldn't find a decent one. So I would like to create one, but I do need some help, I'm not a really experienced programmer!
I would like to change the "magentostore.url/admin/sales_order_create/" page like this: 
So there is simply another text field on each products line where the seller can enter the IMEI code. This only needs to be in the adminhtml.
So as far as I know:
I need to define a module (lets call it TSC_Serialnumbers)
I need a way to overwrite app\design\adminhtml\default\default\template\sales\order\create\items\grid.phtml
And I need a way to save the entered values so they can be used in; invoice, ordermail, etc.
If lets say a customer loses his invoice we should be able to retreive it after a few months and print it again.
My goal is to create a fully functioning module and place it on Magento Connect FOR FREE! Any help is greatly appreciated and I will give everybody credit who help out!
EDIT 17/07:
Meanwhile I have been busy trying to create a module: So far I got this, please correct me if I'm wrong! I started this with the http://www.silksoftware.com/magento-module-creator/
My config.xml:
<?xml version="1.0"?> <config> <modules> <TSC_Serialnumbers> <version>0.1.0</version> </TSC_Serialnumbers> </modules> <global> <helpers> <serialnumbers> <class>TSC_Serialnumbers_Helper</class> </serialnumbers> </helpers> <models> <serialnumbers> <class>TSC_Serialnumbers_Model</class> <resourceModel>serialnumbers_mysql4</resourceModel> </serialnumbers> </models> <resources> <salesattribute1437139568_setup> <setup> <module>TSC_Serialnumbers</module> <class>Mage_Sales_Model_Mysql4_Setup</class> </setup> <connection> <use>core_setup</use> </connection> </salesattribute1437139568_setup> <salesattribute1437139568_write> <connection> <use>core_write</use> </connection> </salesattribute1437139568_write> <salesattribute1437139568_read> <connection> <use>core_read</use> </connection> </salesattribute1437139568_read> </resources> </global> </config> and sql\salesattribute1437139568_setup\mysql4-install-0.1.0.php
<?php $installer = $this; $installer->startSetup(); $installer->addAttribute("order_item", "serialnumber", array("type"=>"varchar")); $installer->endSetup(); EDIT 23/07/2015
Ok, I'm going to try it using custom options like @Fabian Blechschmidt suggested, But I still have no clue on how to begin.
As I read I need to use this code
$existentOptions = $orderItem->getProductOptions(); if (!isset($existentOptions['additional_options'])) { // If special options of options array is set before, create it. $existentOptions['additional_options'] = array(); } // Adding visible options value $existentOptions['additional_options'][] = array( 'label' => 'Your Option Label', 'value' => 'Your Option Value', // The last one that is optional (if not set, value is used) 'print_value' => 'Your Option Value shown in printed documents' ); $orderItem->setProductOptions($existentOptions); Do I need to start writing a new module for this?
How can I change the contents of app\design\adminhtml\default\default\template\sales\order\create\items\grid.phtml without overwriting core files?