Lời nói đầu
Thơng mại diện tử ngày một phát triển trên thế giới và ở Việt Nam nói
riêng. Sự ra đời các ngôn ngữ lập trình cho phép ban thiết kế và xây dựng các
ứng dụng thơng mại điện tử dới nhiều hình thức khác nhau. Cho nên việc phân
tích thiết kế là việc đầu tiên trong triển khai xây dựng một chơng trình.
Sau đó ta có thể sử dụng những ngôn ngữ lập trình khác nhau để xây dựng nên
chơng trình ứng dụng. Một trong những ứng dụng thơng mại điện tử đó là xây
dựng ứng dụng bán hàng qua mạng là một trong những ứng dụng mà đó là mục
tiêu phát triển cho mỗi công ty, cũng là chiến lợc cho mỗi quốc gia.
Từ ý tởng xây dựng ứng dụng trên ta đi bớc đầu tiên là phân tích hệ thống
quản lý trên. Qua khảo xát thống để đi đến xây dựng các biểu đồ phân cấp chức
năng, biểu đồ luồng dữ liệu và đi tới xây dựng biểu đồ luồng dữ liệu logic,sau đó
ta đi đến thiết kế hệ thống.
Từ mục tiêu trên ta xây dựng các biểu đồ sau:
Hệ thống bán hàng
1
Quản lý hợp đồng
Tệp hoá
đơn
Yêu cầu hợp
đồng
Quản lý hợp đồng
Tệp hoá
đơn
Yêu cầu báo
cáo
Hợp đồng
Từ chối hợp
đồng
Các loại
báo cáo
2
Q uản lý hợp đồng
Tệp hàng
Cập nhật hàng
mới về
Hàng mới về
đơn đặt hàng
Tệp phân
loại hàng
Tệp danh
mục
Tìm kiếm hàng
Yêu cầu tim
hàng
Danh sách
hàng
Trả lời hàng
Thanh toán
Biểu đồ phân cấp chức năng
3
Hệ thống quản lý bán
hàng qua mạng
Quản lý hàng Báo cáo Quản lý hợp đồng Tìm kiến hàng
Cập nhật
Phân loại
Liệt kê
Tạo danh
mục hàng
Tồn kho
Số luơng
khách
Thanh toán
Tìm kiếm
Lập giỏ
hàng
Liệt kê giỏ
hàng
Khách
Hợp đồng
Ký HĐ/Từ chối HĐ
Hàng mua
Yêu cầu hợp đồng
Tìm hàng
Lập hoá đơn
Thanh toán
Yêu cầu báo cáo
Báo cáo
Cập nhật hàng
Phân loại
Bộ phận
quản lý
Khách
Hệ thống
quản lý bán hàng
trên mạng
Biểu đồ luồng dữ liệu mức khung cảnh
4
Tệp đơn hàng
Tệp thanh toán
Tệp danh mục hàng
Tệp hàng
Quản lý
hàng
Báo cáo
Tìm kiếm
Y
ê
u
c
ầ
u
đ
ặ
t
h
à
n
g
C
h
ấ
p
n
h
ậ
n
/
T
ừ
c
h
ố
i
T
h
a
n
h
t
o
á
n
Quản lý
hợp đồng
Tệp nợ
Phân loại hàng
Y
ê
u
c
ầ
u
c
ậ
p
n
h
ậ
t
T
i
ê
u
c
h
í
p
h
â
n
l
o
ạ
i
B
á
o
c
á
o
Y
ê
u
c
ầ
u
b
á
o
c
á
o
Bộ phận
quản lý
T
ì
m
h
à
n
g
biểu đồ luồng dữ liệu mức đỉnh
L
i
ệ
t
k
ê
khách hàng
Biểu đồ cấu trúc dữ liệu theo mô hình quan hệ
Từ các biểu đồ trên để đi đến phân tích chi tiết
1.Giới thiệu shopping cart
sản phẩm theo hai định dạng khác nhau. Cho dù định dạng nào đi nữa,
bạn cũng cho phép khách hàng chọn một sản phẩm và xem các thông tin chi tiết
của sản phẩm.
Trong trờng hợp khách hàng muốn đặt hàng sản phẩm họ vừa chọn, điều đầu
tiên khách hàng phải thực hiện là lu chúng vào giỏ hàng (shopping cart).
Khái niệm giỏ hàng là một nơi lu trữ những sản phẩm khách hàng chọn, sau
khi kết thúc quá trình tìm kiếm và chọn sản phẩm, họ có thể đặt hàng những sản
phẩm đó bằng cách liệt kê những sản phẩm đã chọn trong giỏ hàng để đi đến
quyết định cuối cùng có đặt hàng hay không?.
Trong thế giới thực của chức năng mua sắm trong siêu thị chẳng hạn, sau khi
khách hàng tìm kiếm sản phẩm và lấy chúng bỏ vào giỏ hàng, tiếp đó họ sẽ đến
quầy tính tiền để thanh toán.
Tơng tự nh vậy trong thơng mại điện tử, bằng cách sử dụng ý tởng nào đó bạn
có thể, nhằm lu lại những sản phẩm mà khách hàng chọn và lu vào giỏ hàng.
Nh vậy, giỏ hàng chẳng qua là một nơi lu trữ sản phẩm đã chọn của kháh hàng
với một browser hiện hành. Điều này có nghĩa là ứng với một browser sẽ có
một giỏ hàng cho mỗi khách hàng.
5
Khách Hoá đơn
Chi tiếtHàng
Để làm điều này, bạn có thể chọn nhiều cách khác nhau, nhng trong trờng
hợp này, chúng tôi muốn trình bày cho bạn cách sử dụng biến session để thực
hiện ý tởng này.
2. xây dựng shopping cart
Để xây dựng Shopping cart(giỏ hàng), bạn có thể bắt đầu từ kết quả tìm
kiếm hay liệt kê sản phẩm, khi ngời dùng chọn một sản phẩm bất kỳ để xem chi
tiết.
2.1 Thêm sản phẩm vào giỏ hàng.
Sau khi xem xét chi tiết sản phẩm, nếu khách hàng muốn lu sản phẩm vào
giỏ hàng, khách hàng chỉ cần chọn nút Add To Cart.
2.2 Liệt kê giỏ hàng
Sau khi kết thúc quá trình tìm kiếm và chọn sản phẩm để thêm vào giỏ hàng,
khách hàng chọn vào biểu tợng (View Cart) trên thực đơn của ứng dụng.
Biểu tợng View Cart đợc thiết kế nhiều hình thức khác nhau, bạn có thể sử
dụng hình có hình tợng nh giỏ mua hàng trong thực tế hay một liên kết để trỏ
đến trang viewcart.asp.
Khi ngời dùng chọn trang viewcart.asp , những sản phẩm mà khách hàng đã
lu trữ trong giỏ hàng sẽ đợc liệt kê.
Trong khi liệt kê sản phẩm trong giỏ hàng, bạn nên chọn sẵn cho khách hàng.
Điều này có nghĩa là mặc định khách hàng chọn tất cả những sản phẩm trong
giỏ hàng.
Tuy nhiên, trong trờng hợp khách hàng quyết định không đặt hàng sản phẩm
nào trong danh sách, họ có thể uncheck. Đồng thời bạn cũng mặc định số lợng
sản phẩm cần đặt hàng là 1 trong thẻ text, nh cột Quantity
Chú ý : Vấn đề cần giải quyết là tên của thẻ dạng text cho số lợng mua hàng.
Để có thể phân biệt đợc thẻ text ứng với sản phẩm nào, chúng tôi đề nghị bạn
đặt tên bao gồm txtqtty .
Kết quả khi tham chiếu đến thẻ này, bạn phải tham chiếu bằng tên txtqtty ứng
với mã sản phẩm đang truy lục.
6
Mỗi khi ngời dùng không chọn hay chọn sản phẩm bằng cách check hay
uncheck và thẻ checkbox có tên chkid, bạn đều kiểm tra nếu tất cả các thẻ chkid
đều check thì thẻ chkall sẽ check và ngợc lại bằng phơng thức javascript có tên
docheckone().
L u ý : Nếu mẩu tin nhiều hơn 1(lớn hơn 1 mẩu tin), bạn truy cập trên các thẻ
chkid bằng hình thức mảng dữ liệu. Ngợc lại, bạn chỉ truy cập vào thẻ chkid
đơn.
Ngoài ra, để thêm chức năng lu trữ mà sản phẩm và số lợng tơng ứng mà ng-
ời dùng chọn và tính tiền trong bớc này, bạn có thể khai báo biến session với
kiểu dữ liệu dạng mảng hai chiều.
Sau mỗi lần ngời dùng thay đổi sản phẩm hay số lợng, bạn có thể cập nhật lại
giá trị trong mảng này, sau đó, đọc trong mảng và trình bày lên màn hình, nếu
làm điều này, nguời dùng sẽ tính đợc số tiền họ cần phải trả ngay trong bớc này
thay vì chọn cách tính tiền trong bảng kế tiếp.
Điều này có nghĩa là nếu một mẩu tin, thì tổng số phần tử trong form là
<=5(hai nút, 1 thẻ text, 2 thẻ checkbox).
Trong trờng hợp không có sản phẩm nào trong giỏ hàng, nếu khách hàng
chọn ViewCart, trang viewcart.asp sẽ xuất hiện thông báo.
Nếu khách hàng chọn Continue mà không chọn bất kỳ sản phẩm nào trong
danh sách, bạn cũng không cho phép họ tiếp tục xử lý bằng cách khai báo đoạn
JavaSript có tên checkinput và gọi nó trong biến cố onsubmit của thẻ form.
Kế đến, khách hàng chọn nút Comtinue, trang xác nhận các sản phẩm khách
hàng chọn ứng với số lợng đặt hàng (preorder.asp) .
Bằng cách đọc giá trị từ thẻ hidden có tên chkid trong trang viewcart.asp, bạn
nhận đợc số lợng sản phẩm khách hàng chọn mua.
Ngoài ra, để tiếp tục trong các trang kế tiếp, bạn cần phải lu mã sản phẩm, tên
sản phẩm, số lợng đơn giá và các giá trị nh giảm giá và biến session.
Trong trờng hợp khách hàng không chấp nhận với các thông tin của sản phẩm
đã chọn, khách hàng sẽ bấm nút Back để trở về trang trớc đó.
7
3.đặt hàng qua mạng
Sau khi xác nhận sản phẩm và số lợng cần mua, khách hàng bấm nút
Continue từ trang perorder.asp, trang custtype.asp sẽ xuất hiện.
3.1 Đăng nhập
Nếu khách hàng là khách hàng thờng xuyên, điều này có nghĩa là có đăng ký
thông tin công ty hay cá nhân trớc đây, bạn chỉ cần cho phép họ đăng nhập bằng
cách cung cấp username (email address) và password, trong trờng hợp này
khách hàng chọn thứ 2 và nhập password nếu có.
Tuy nhiên, nếu khách hàng lần đầu tiên mua hàng, bạn có thể yêu cầu họ
chọn tuỳ chọn thứ 1.
Trong trờng hợp, khách hàng cho rằng họ là khách hàng thờng xuyên và đã
đăng ký trớc đây, nhng cung cấp username haypassword sai, bạn cần phải xử
lý.
Để làm điều này, trong trang kế tiếp sẽ giải quyết và trở về trang custtype.asp
với biến session có tên errors có giá trị là old, có nghĩa là khách hàng có tài
khoản trong hệ thống nhng không cung cấp đúng username haypassword .
Bạn phải thông báo cho khách hàng biết rằng họ không cung cấp đúng
username haypassword.
Ngoài ra, để kiểm tra ngời dùng chọn tuỳ chọn và cung cấp username hay
password trớc khi tiếp tục hay không, bạn cần khai báo phơng thức javascript
và gọi chúng cho biến cố onsubmit của thẻ form .
3.2 Đăng ký tài khoản ngời dùng.
Nếu khách hàng lần đầu tiên mua hàng hay họ không muốn sử dụng tài khoản
đã có nếu họ không cần, bạn yêu cầu khách hàng cung cấp các thông tin giao
hàng nh: Tên (txtfullname), địa chỉ (txtaddress), điện thoại (txttel),...bằng cách
trỏ đến trang registry.asp.
8
Khi đăng ký ngời dùng vào hệ thống, họ có thể muốn trở thành khách hàng
thờng xuyên bằng cách chọn vào tuỳ chọn thứ 2. Điều này có nghĩa là họ có thể
sử dụng lại tài khoản này cho lần mua hàng kế tiếp.
Ngoài ra, trong form đăng ký ngời dùng trên, chúng tôi yêu cầu khách hàng
cung cấp các thông tin bắt buộc, ứng với các fiedl có dấu* màu đỏ, để ràng
buộc quá trình đăng ký, chúng tôi viết một phơng thức JavaScript và gọi nó
trong biến cố onsubmit của thẻ form.
3.3 Đặt hàng
Sau khi cung cấp đầy đủ các thông trên, nếu khách hàng bấm nút Order, trang
orders.asp sẽ xuất hiện với các thông tin đăng ký nếu ngời dùng mới từ trang
registry.asp, đọc thông tin từ tblCustormers nếu ngời dùng đăng nhập thành
công.
Ngợc lại, trờng hợp đăng nhập với tài khoản trong hệ thống thành công từ
trang custtype.asp, bạn dẫn khách hàng đến trang ordres.asp và kiểm tra
username tồn tại hay không.
Để tiếp tục cho các trang kế tiếp, ứng với trờng hợp khách hàng có tài khoản
trong hệ thống và đăng nhập thành công, bạn cần phải lu trữ lại mã khách hàng .
.....
Ngoài ra, nếu khách hàng chọn nút Order trên trang orders,asp. Điều này có
nghĩa là khách hàng đặt hàng qua mạng, bạn đọc các thông tin và lu vào cơ sở
dữ liệu.
Nhng sau khi lu dữ liệu thành công, nếu ngời dùng tiếp tục bấm nút Refresh
trên trình dyệt hay F5 hoặc Back trở lại và tiếp tục bấm nút Order, ứng dụng sẽ
lu dữ liệu thêm một lần nữa.
Để tránh sự cố này, trong trang kế tiếp chỉ lu dữ liệu vào cơ sở dữ liệu khi biến
session có tên $isSave có giá trị là .
3.4 Lu dơn đặt hàng vào cơ sở dữ liệu
9
Trớc khi lu dữ liệu vào cơ sở dữ liệu, bạn cần phải kiểm tra biến session coss
tên $isSave có giá trị là rỗng thì cho phép lu, nếu giá trị khác rỗng đợc xem nh
đã lu trớc đó.
3.4.1 Thông tin khách hàng
Trong trờng hợp khách hàng đăng nhập, bạn chỉ cần lấy mã khách hàng từ biến
form.
Ngợc lại, bạn phải đọc giá trị từ các thẻ hidden trong trang trớc và lu vào
tblCustomers hay tblTempCustomers. Lu vào một trong hai bảng này phụ thuộc
vào tuỳ chọn của khách hàng. Nếu khách hàng muốn trở thành khách hàng th-
ờng xuyên, họ tuỳ chọn thứ 2 trong trang orders.asp.
Trong trờng hợp khách hàng đăng ký nhiều lần, điều này có nghĩa là họ mua
nhiều lần mà không cần đăng ký tài khoản, email của khách hàng sẽ lặp lại.
3.4.2 Lu thông tin hợp đồng mua hàng.
Cho dù khách hàng có tài khoản trong hệ thống hay vừa đăng ký, bạn đều phải
lu thông tin hợp đồng mua vào tblOrders ứng với mã khách hàng vừa có(từ đăng
nhập hay vừa đăng ký).
4.phơng thức thanh toán
Trong khi thanh toán, tuỳ khả năng cho phép mà cửa hàng hay siêu thị có
thể thanh toán tiền với khách hàng bằng nhiều phơng thức khác nhau.
Trong thực tế, bạn có thể trả tiền mặt, chuyển khoản ngân hàng, trả bằng
Card do cửa hàng hay siêu thị phát hành.
Ngoài ra, nếu ở một số nớc tiến bộ có hệ thống thanh toán bằng Credit Card
Đối với thơng mại điện tử cũng tơng tự, nếu ứng dụng của bạn không có khả
năng liên thông với ngân hàng, bạn không thể thu tiền bằng phơng thức nào
khác với phơng thức thanh toán tiền mặt.
Điều này có nghĩa là ngời mua hàng sẽ đến trả tiền công ty hay nhân viên công
ty sẽ đến lấy tiền khi giao hàng.
10