It's possible to customize the self registration of new customers via the customer.pl. So you can add more optional or required fields (like address, location, ...).
In our example we want to add a required "address" field.
Edit your "Kernel/Output/HTML/Standard/CustomerCreateAccount.dtl" and add your wanted fields. We want an "address" field, so add:
[...] <tr> <td>$Text{"Address"}: </td> <td> <input type="text" name="Address" value="$Data{"UserAddress"}" size="35" maxlength="50"></td> </tr> [...] |
You need also to add an "address" entry to you customer source map so add to your Kernel/Config.pm the "CustomerUser" (customer source map) from Kernel/Config/Defaults.pm and add the "address" option. Then the "CustomerUser" config option should look like that:
[Kernel/Config.pm] $Self->{CustomerUser} = { Module => 'Kernel::System::CustomerUser::DB', Params => { Table => 'customer_user', }, Map => [ # note: Login, Email and CustomerID needed! # var, frontend, storage, shown, required, storage-type, link [ 'UserSalutation', 'Salutation', 'salutation', 1, 0, 'var' ], [ 'UserFirstname', 'Firstname', 'first_name', 1, 1, 'var' ], [ 'UserLastname', 'Lastname', 'last_name', 1, 1, 'var' ], # our new option [ 'UserAddress', 'Address', 'address', 1, 1, 'var' ], [ 'UserLogin', 'Login', 'login', 1, 1, 'var' ], [ 'UserPassword', 'Password', 'pw', 0, 1, 'var' ], [ 'UserEmail', 'Email', 'email', 1, 1, 'var' ], [ 'UserCustomerID', 'CustomerID', 'customer_id', 1, 1, 'var' ], [ 'UserComment', 'Phone', 'comment', 1, 0, 'var' ], [ 'ValidID', 'Valid', 'valid_id', 0, 1, 'int' ], ], Key => 'login', CustomerID => 'customer_id', }; [...] |
We also need to add a new column to our "customer_user" table.
mysql> ALTER TABLE customer_user ADD address VARCHAR (200); Query OK, 0 rows affected (0.21 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> |