8.4. Address Book
Address_book is a shipping address book. The shipping address book saves information relevant to shipping the order. In its simplest form, this can be the only address book needed. By default these form values are included:
s_nickname name fname lname address address1 address2 address3 city state zip country phone_day mv_shipmode
The first field is always the name of the form variable that contains the key for the entry. The values are saved with the [userdb function=set_shipping] tag call, and are recalled with [userdb function=get_shipping]. A list of the keys available is kept in the form value address_book, suitable for iteration in an HTML select box or in a set of links.
To get the names of the addresses, use the get_shipping_names function:
[userdb function=get_shipping_names]
By default, they are placed in the variable address_book. Here is a little snippet that builds a select box:
<FORM ACTION="[process]" METHOD=POST> [userdb function=get_shipping_names] [if value address_book] <SELECT NAME="s_nickname"> [loop arg="[value address_book]"] <OPTION> [loop-code] [/loop] </SELECT> <INPUT TYPE=submit NAME=mv_check VALUE="Recall Shipping"> </FORM>
The same principle works with accounts, carts, and preferences.
To restore a cart based on the above, put in an mv_check routine:
[set Recall Shipping] mv_todo=return mv_nextpage=ord/basket [userdb function=get_shipping nickname="[value s_nickname]"] [/set]
When the mv_check variable is encountered, the contents of the scratch variable Recall Shipping are processed and the shipping address information inserted into the user form values. This is destructive of any current values of those user session variables, of course.
To change the fields that are recalled or saved, use the shipping parameter:
[userdb function=get_shipping nickname=city_and_state shipping="city state"]
Only the values of the city and state variables will be replaced.