The address data page is used to query the customer for his or her address information. This page can display all input fields which are set in the editor. An automatic check will be performed on fields which are mandatory or which require a certain type of input (like the zip code). The customer can be given the option to choose whether the billing and delivery screen are the same. When the customer finishes filling in the page, he or she will submit the address data and continue to the next order screen.
The address fields
The address fields (or ‘customer-fields’ as used in the extensions) can be displayed in two ways. The first involves a loop structure in which all the labels and input fields are generated automatically (much like a standard productlist). The second method allows you to control the fields more flexibly, using extensions for each separate input field. The first method is the most easy and standard way. We will describe this method here, for the second method we refer you to another section of these help pages.
The first method uses the myshop-repeat:customer-fields and myshop-repeat:customer-fields-delivery extensions. The myshop-repeat:customer-fields is used for displaying the billing part of the address fields. The myshop-repeat:customer-fields-delivery extension is used for displaying the delivery part of the address fields. Within each of these repeat sections the following extensions can be used:
Displays the label for this input field
Displays the control for this input field (which might be an text field, drop down list, etc)
This is an conditional check to see if the current field is required or not
See, for the second method the following page:
Letting the customer choose for a separate delivery address
It is possible to hide the delivery section by default, and give the customer the option to choose for a different delivery address when required. This possibility consists of two extensions:
This extension is used to display a control (radio buttons) for the delivery section
This myshop block marks the delivery section, and will be hidden by default (can be shown with the control from myshop-value:delivery-selection-control)
Saving the address information for further use
With the extension myshop-value:save-control, the customer can choose wether or not to save the filled in information for further use (only for that shop, on the computer the customer is using at that time). This extension shows and checkbox, you can set the displayed label yourself.
<?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><title>Example address data page</title></head> <body> <table cellspacing="0" cellspaccing="0" border="0" width="100%"> <tr> <td align="center" width="100%"> <table width="50%"> <tr style="myshop-repeat:customer-fields"> <td width="50%"> <span style="myshop-value:label" /><span style="myshop-is:required-field">*</span> </td> <td width="50%"> <span style="myshop-value:control"/> </td> </tr> <tr> <td>Delivery address:</td> <td><span style="myshop-value:delivery-selection-control"/></td> </tr> </table> <table width="50%" style="myshop-block:delivery-selection"> <tr> <td colspan="2"><b>Delivery address</b></td> </tr> <tr style="myshop-repeat:customer-fields-delivery"> <td width="50%"> <span style="myshop-value:label" /><span style="myshop-is:required-field">*</span> </td> <td width="50%"> <span style="myshop-value:control"/> </td> </tr> </table> </td> </tr> <tr> <td align="center"> <table align="center" width="100%"> <tr> <td align="left"> <a style="myshop-action:previous-page"><<Previous page</a> </td> <td align="right"> <a style="myshop-action:next-page">Next page>></a> </td> </tr> </table> </td> </tr> <tr> <td colspan="2" align="left">Fields marked with a * are mandatory</td> </tr> <tr> <td colspan="2" align="left"> <span style="myshop-value:save-control">Remember this information for further use (only on this computer)</span> </td> </tr> </table> </body> </html>