The online winestore is primarily aimed as an e-commerce site to sell
wine.
The system doesn't manage accounting, stock control,
payroll, ordering, and other tasks.
Users may select wines and add them to a shopping basket. Users may
purchase the items in their shopping baskets for up to one day after
the first item is added to the basket. Users have only one shopping
basket each and may empty their basket at any time.
Users of the site may be anonymous and can remain anonymous until
they agree to purchase the items in the shopping basket.
To purchase items in a shopping basket, the user must log in to the
system. To log in, a user must have an account. To get an account, a
user must provide at least his surname, first name, one address line,
a city, a zip code, a country, his birth date, an email address, and
a password. The email address is used as the user's
login name. The user may also optionally provide a middle initial, a
title, two additional address lines, a state, a telephone number, and
a fax number.
When a user purchases wines, his order is archived.
A user may receive a percentage discount on the price of an order. A
discount can be levied on a particular day, a minimum threshold
quantity, or given to a regular customer.
An order may have a delivery charge that is levied according to the
user's location and the delivery mode. Delivery
modes include sea mail, regular mail, and express mail. An order may
also have a note that is directed to the delivery company; for
example, a note might indicate to "leave the wines
at the back door of the house."
Wines are classified into broad types of red, white, sparkling,
sweet, and fortified. Wines also have a name, a vintage, and a
description; descriptions are optional free-form text that are
typically a review of the wine similar to that found on the label.
Wines are made with different grape varieties, including Chardonnay,
Semillon, Merlot, and so on. A wine can be made of any number of
grape varieties, and the order of these grape varieties is important.
For example, for a wine made of two varieties, Cabernet and Merlot, a
Cabernet Merlot is different from a Merlot Cabernet.
Users may browse wines at the winestore by type or wine region.
Wines are produced by one winery.
Wineries have a description—which is typically a
review—as well as a phone and fax number.
Wineries are in one region. A region is an area—for example,
the Barossa Valley in South Australia—and each region has a
description and, possibly, an image or map of the area.
A shopping basket is an incomplete order that contains items. It can
be converted to a completed order after the user logs in. Each item
in an order is for a particular wine, a quantity of that wine to be
purchased, and a price per bottle. The price of the wine is always
the price of the first bottle of wine added to the shopping cart,
which in turn is always the cheapest available inventory price.
The quantities of wines in the shopping basket can be updated by the
user, and items can be removed from the shopping basket.
The wines available for sale are stored in an inventory. Each
inventory record has a date added and is for a particular wine. The
inventory contains a stock quantity available at a particular
per-bottle and per-case price. There can be several inventory records
for a wine, representing different shipments that arrived at the
winestore on different dates or that have a different price.
The user will always be advertised prices from the cheapest inventory
for each wine. When a user adds a wine to her shopping basket, she is
guaranteed this price.
A user can purchase only wines that are in stock.
When a user converts his shopping basket to an order, the
availability of sufficient inventory to complete the order is
checked. If insufficient wine is available, the user is alerted, and
the quantities in the shopping basket are updated; this situation can
occur if a user adds more wine to his basket than is available.