Customer self-service
Customer self-service
"Customer self-service" refers to a collection of Storefront pages used for viewing or editing customer information such as addresses, orders, email addresses and passwords. Each of these pages uses the standard Storefront Spring MVC infrastructure. The URL for the pages is mapped to an associated Controller class in url-mapping.xml. Self-service pages are restricted to customers with non-anonymous accounts who are signed in. This restriction is enforced by security and configured in security.xml. The following URLs are part of the customer self-service area.
Page | URL | Controller | Velocity Template |
---|---|---|---|
Main Self-service page | manage-account.ep | manageAccountController | manage.vm |
Edit Personal Info | edit-account.ep | editAccountFormController | account/edit.vm |
Address Book | edit-address.ep / create-address.ep | addressFormController | address/create.vm |
Credit Cards | edit-credit-card.ep / create-credit-card.ep | creditCardFormController | creditCard/create.vm |
Order History | order-details.ep | viewOrderController | checkout/orderDetails.vm |
Self service features
The Self service (aka Manage Account) page contains several subsections: Personal Info, Address Book, Credit Cards, and Orders.
Personal information
This section essentially displays the singular fields in the Customer object: Name, Email address, and Password (obscured).
To edit the information, the manageAccountController will send the user to the Edit Account screen, which will be handled by the editAccountFormController.
Address book
The addresses are obtained from a collection of addresses contained within the Customer class. The Customer contains only one List of addresses; however, it also has references to the PreferredBillingAddress and the PreferredShippingAddress within that List. The preferred billing and shipping addresses are automatically set during the checkout process, and are used to set other defaults at that time.
To create or edit an address, the manageAccountController will send the user to the Create Address screen, which is handled by the addressFormController. This controller is also used to edit existing addresses while the user is in the checkout process. In this case, the addressFormController will redirect the request to the shippingAddressFormController or the billingAddressFormController, depending on the type of address being edited. The shippingAddressFormController and billingAddressFormController are used during the checkout process to allow the user to select an existing address to use, or enter a new one. However, all address editing is delegating to the addressFormController, which is the same controller used for creating and editing addresses from the manage account screen.
Credit cards
Like addresses, the Customer object also has a collection of CustomerCreditCard objects. A CustomerCreditCard maintains a flag to indicate whether it is the default card; this flag is preset during checkout.
If creating a new Credit Card, the manageAccountController will send the user to the Create Credit Card screen, which will be handled by the creditCardFormController. If editing an existing Credit Card, the controller will redirect the request to the creditCardFormController with the credit card ID, which will then display the Edit Credit Card screen using the same create.vm template, allowing the user to edit their card information. The creditCardFormController is also used for editing existing credit cards while the user is in the checkout process.