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.
You can get the names of a the addresses with 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-target]" 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, you can place 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.
If you want to change the fields that are recalled or saved, you can 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.