[TYPO3-commerce] additional address form fields

Heiko Hänsge mailinglisten at wild-wild-web.de
Tue Dec 11 15:59:00 CET 2007


Hi Ingo,

just tried to 'extend my little HowTo' by evaluating some of the address 
form fields, for example the 'zip' field:

plugin.tx_commerce_pi3 {
    billing.sourceFields {
      // zip field is mandatory     
      zip.mandatory = 1
      // zip field value should be a 5 digit integer
      zip.eval = min_5,max_5,int
    }
    delivery.sourceFields {
      // we do not want an email field in the delivery address form
      email <
    }       
    _LOCAL_LANG.de {
       // don't forget to declare proper error messages
        error_field_int = <span class="error">Bitte nur Zahlen 
eingeben.</span>
        error_field_alpha = <span class="error">Bitte nur Ziffern 0-9 
eingeben.</span>
        error_field_min = <span class="error">Dieser Wert ist zu 
klein.</span>
        error_field_max = <span class="error">Dieser Wert ist zu 
groß.</span>
    }
}


Somehow the check for an integer failes constantly,
as if the value of the 'zip' field is never an integer, even if I enter 
digits only.

See the according lines 1441 ff. in 
/typo3conf/ext/commerce/pi3/class.tx_commerce_pi3.php

case 'int':
    if (!is_integer($value))    {
        $this->formError[$name] = $this->pi_getLL('error_field_int');
        $returnVal = false;
    }
    break;

Any ideas how to succeed?

Regards,
Heiko




------------ Original-Nachricht ------------
Ingo Schmitt schrieb am 29.11.2007 18:04 Uhr:
> Hi Heiko,
>
> could you add this to the wiki?
>
> ingo
>   
>> Hello,
>>
>> I just wandet to share how to manage additional address form fields if 
>> they are needed.
>> In our case we also need the fields 'telephone', 'fax', 'customer 
>> number' and 'gender'.
>>
>> The TS setup has to get extended by those fields to produce the form 
>> fields:
>>
>> plugin.tx_commerce_pi3 {
>>    billing.sourceFields {
>>       phone.mandatory = 0
>>       fax.mandatory = 0
>>       custnumber.mandatory = 0
>>       gender.mandatory = 1
>>     }
>> }
>>
>> If possible we use the field names according to already existing DB 
>> fields in tt_address table.
>> If we need fields not yet existing in the tt_address table we have to 
>> add them to the table, for example with the kickstarter.
>>
>> All additional fields are now put at the end of the form which is not 
>> nice for the 'gender' field since we would expect it to stick in front 
>> of the name field. Unfortunately I couldn't find a solution yet to sort 
>> the form fields in the frontend form. Somebody knows a solution?
>>
>> Next we need to add the labels for our new fields in the TS setup (in 
>> our case in German):
>>
>> plugin.tx_commerce_pi3 {
>>    _LOCAL_LANG.de {
>>        general_phone = Telefon
>>        general_fax = Fax
>>        general_custnumber = Kundennummer
>>        general_gender = Anrede
>> }
>>
>> Now the new form fields shoud occur with labels in the frontend.
>> One has to be carefull with the tt_address fields 'title' and 
>> 'description' because the form fields are generated correctly BUT the 
>> labels are not getting parsed correctly. They will be overwritten by the 
>> following label values for billing or delivery :
>>
>> plugin.tx_commerce_pi3 {
>>    _LOCAL_LANG.de {
>>        billing_title = Rechnungsadresse
>>        billing_description = Angaben zur Rechnungsadresse
>> }
>>
>> This might be a bug though.
>>
>> Our new address form field values are getting stored in the DB 
>> automaticly while checking out.
>> Next step is to create additional markers for the email template and to 
>> substitute them by the form field values.
>> That's were I'm just working on...
>>
>> regards
>> Heiko
>>     
>
>
> Mit freundlichen Gruessen
>   


More information about the TYPO3-project-commerce mailing list