NAME

UserDB.pm -- MiniVend User Database Functions

SYNOPSIS

userdb $function, %options

DESCRIPTION

The MiniVend user database saves information for users, including shipping, billing, and preference information. It allows the user to return to a previous session without the requirement for a "cookie" or other persistent session information.

It is object-oriented and called via Perl subroutine. The main software is contained in a module, and is called from MiniVend with a GlobalSub. The GlobalSub would take the form:

GlobalSub <<EOF
sub userdb {
	my($function, %options) = @_;
	use Vend::UserDB;
	$obj = new Vend::User->DB %options;
	$obj->$function
		or return $obj->{ERROR};
	return $obj->{MESSAGE};
}

It restores and manipulates the form values normally stored in the user session values -- the ones set in forms and read through the [value variable] tags. A special function allows saving of shopping cart contents.

The preference, billing, and shipping information is keyed so that different sets of information may be saved, providing and "address_book" function that can save more than one shipping and/or billing address. The set to restore is selected by the form values s_nickname, b_nickname, and p_nickname.

METHODS

User login:

$obj->login();        # Form values are
                      # mv_username, mv_password

Create account:

$obj->new_account();  # Form values are
                      # mv_username, mv_password, mv_verify

Change password:

$obj->change_pass();  # Form values are
                      # mv_username, mv_password_old, mv_password, mv_verify(new)

Get, set user information:

$obj->get_values();
$obj->set_values();
$obj->clear_values();

Save, restore filed user information:

   $obj->get_shipping();
   $obj->set_shipping();

   $obj->get_billing();
   $obj->set_billing();

   $obj->get_preferences();
   $obj->set_preferences();

   $obj->get_cart();
   $obj->set_cart();

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
address
city
state
zip
country
phone_day
mv_shipmode

The values are saved with the $obj->set_shipping() method and restored with $obj->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.

Accounts Book

The accounts book saves information relevant to billing the order. By default these form values are included:

b_nickname
b_name
b_address
b_city
b_state
b_zip
b_country
b_phone
mv_credit_card_type
mv_credit_card_exp_month
mv_credit_card_exp_year
mv_credit_card_info

The values are saved with the $obj->set_billing() method and restored with $obj->get_billing. A list of the keys available is kept in the form value accounts, suitable for iteration in an HTML select box or in a set of links.

Preferences

Preferences are miscellaneous session information. They include by default the fields email, fax, phone_night, and fax_order. The field p_nickname acts as a key to select the preference set.