Quản lý bán hàng trên mạng

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ạn

doc33 trang | Chia sẻ: huyen82 | Lượt xem: 1347 | Lượt tải: 0download
Tóm tắt tài liệu Quản lý bán hàng trên mạng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
g 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: 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 Hệ thống bán hàng 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 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 Biểu đồ luồng dữ liệu mức khung cảnh Biểu đồ cấu trúc dữ liệu theo mô hình quan hệ Khách Hoá đơn Chi tiết Hàng 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à lưu chúng vào giỏ hàng (shopping cart). Khái niệm giỏ hàng là một nơi lưu 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 lưu lại những sản phẩm mà khách hàng chọn và lưu vào giỏ hàng. Như vậy, giỏ hàng chẳng qua là một nơi lưu 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. Để làm điều này, bạn có thể chọn nhiều cách khác nhau, nhưng 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 lưu 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 đã lưu 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. 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 lưu 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 lưu 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 đó. 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, nhưng 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 nhưng 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. 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 lưu 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à lưu vào cơ sở dữ liệu. Nhưng sau khi lưu 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ẽ lưu dữ liệu thêm một lần nữa. Để tránh sự cố này, trong trang kế tiếp chỉ lưu dữ liệu vào cơ sở dữ liệu khi biến session có tên $isSave có giá trị là “ “. 3.4 Lưu dơn đặt hàng vào cơ sở dữ liệu Trước khi lưu 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 lưu, nếu giá trị khác rỗng được xem như đã lưu 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à lưu vào tblCustomers hay tblTempCustomers. Lưu 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 Lưu 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 lưu 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. Trong trường hợp bạn có tài khoản ngân hàng chẳng hạn, uy tín công ty của bạn được người dùng đánh giá rất cao. Khách hàng có thể trả tiền thông qua ngân hàng trước khi nhận hàng, bằng cách chuyển khoản số tiền mua hàng vào tài khoản của công ty. Sau khi, bạn nhận được thông báo của ngân hàng, số tiền của khách hàng đó chuyển vào tài khoản của công ty, bạn sẽ giao hàng cho khách hàng với chi phí vận chuyển đã được kèm trong tổng gía trị hàng mua. Tuy nhiên trong trường hợp công ty của bạn có đối tác của ngân hàng, thông qua ngân hàng việc chuyển khoản tiền vào tài khoản của công ty, bạn có thể liên doanh với ngân hàng để phát hành loại Card cửa hàng với danh nghĩa công ty. Để làm được điều này, bạn phải lưu ý rằng phải có sự đồng ý của ngân hàng và một số quy định pháp lý khác. Trong trường hợp này, số tiền của khách hàng (mệnh giá của Card mà khách hàng đã mua) nằm trong ngân hàng. Mỗi nghiệp vụ mua bán trên ứng dụng của bạn với khách hàng đều được chi trả bằng loại Card này. Như vậy, khi thanh toán trên mạng bằng Card do công ty phát hành, nghiệp vụ này phải được liên thông với ngân hàng. Điều này có nghĩa là khi khách hàng mua hàng trên mạng, họ có thể trả số tiền bằng tổng giá trị giá mua hàng, số tiền đó sẽ bị trừ vào tài khoản trong ngân hàng ứng với mã Card mà khách hàng dùng để mua. Sau khi khách hàng nhận được sản phẩm của công ty, ngân hàng bắt đầu chuyển số tìên đó vaò tài khoản của công ty, đồng thời số tiền của khách hàng cũng bị trừ đi số tiền đúng bằng số tiền mua hàng cộng thêm chi phí thanh toán nếu có. quản lý danh mục 1.Giới thiệu tổng quan về chức năng admin. Như đã giới thiệu ở trên, trong ứng dụng có sử dụng cơ sở dữ liệu, bạn phải xây dựng hai phần: phần thứ nhất chính là phần cho phép người dùng sử dụng, phần thứ hai là phần cho phép bộ phận doanh nghiệp quản lý ứng dụng. Trong phần thứ hai, chúng tôi giới thiệu với các bạn các chức năng chính như sau: Danh mục. Danh mục hay còn gọi là thư viện, chúng bao gồm các bảng dữ liệu dạng danh mục như tblProvinces, tblCategories, tblItems, tblGroups…… Đối với loại này, chúng bao gồm chức năng phụ như: thêm mới một mẩu tin, cập nhật, xoá mẩu tin, tìm kiếm và Activate hay Deactivate (cập nhật cột activate với một trong hai giá trị 0,1) của mẩu tin đó. Để thực hiện chức năng Directories, chúng tôi lấy các mặt hàng (Items) để làm mẫu. Các danh mục còn lại, bạn có thể sao chép và đổi tên giống như thay thế một số cột dữ liệu chẳng hạn, để trình bày cho phù hợp. Ngoài ra, trên quan điểm trình bày dữ liệu dạng liệt kê, chúng tôi đều cài đặt navigation, paging, searching và sắp xếp theo ký tự alphanumeric, bạn có thể tham khảo chi tiết trong phần kế tiếp. Tương tự, như trong trường hợp Items, bạn thực hiện quá trình sao chép và sửa đổi ứng với các danh mục khác như: tblAuthors, tblGroups, tblProvines.. 1.2 Quản trị người dùng(Users) Phần này cũng tương tự như phần trên, các chức năng thêm mới một mẩu tin, cập nhật, xoá mẩu tin, tìm kiếm và Activate hay Deactivate (bật cột activate với một trong hai giá trị 0, 1), chúng tôi cũng cài đặt navigation, paging, searching và sắp xếp theo ký tự alphanumeric. Tuy nhiên trong phần này, chúng tôi muốn đề cập đến vấn đề phân quyền, ứng với mỗi người dùng họ sẽ có một trong 3 quyền cơ bản trên mỗi module. Sau khi tham khảo phần này, bạn có thể tự thiết kế chi tiết cho từng chức năng con trong mỗi module, ví dụ trong ứng dụng này, cứ một người dùng có thể có một quyền trên module có tên là Directories. Nếu quyền của người dùng là F, điều này có nghĩa là họ có thể có tất cả quyền thao tác trên phần này. Trong trường hợp người dùng có quỳên R trên module này, họ chỉ có quyền xem tìm kiếm dữ liệu chẳng hạn. Ngoài ra họ không thể thao tác thêm mẩu tin hay cập nhật dữ liệu cũng như xoá mẩu tin. Thêm vào đó, nếu người dùng có quyền được gán là N, khi chọn module này, chương trình sẽ dẫn người dùng đến trang errors,asp với thông báo chẳng hạn như: You do not have permission to access this module. Please contact administrator for more information 1.3 Quản lý khách hàng Đối với module này, chúng tôi trình bày phần thao tác trên danh sách khách hàng tương tự như phần trên, chúng cũng bao gồm các chức năng thêm mới một mẩu tin, cập nhật, xoá mẩu tin, tìm kiếm và Activate hay Deactivate (bật cột activate với một trong hai giá trị 0, 1) của mẩu tin đó. Ngoài ra, trên quan điểm trình bày dữ liệu, chúng tôi đều cài đặt navigation, paging, searching và sắp xếp theo ký tự alphanumeric, bạn có thể tham khảo trong phần kế tiếp. Đặc biệt với phần quản lý khách hàng, chúng tôi trình bày làm thế nào để theo dõi bắt đầu quá trình đặt hàng cho đến khi kết thúc hợp đồng. 1.4 Nhân viên kinh doanh. Đối với phần phục vụ cho nhân viên kinh doanh, chúng tôi trình bày làm thế nào để theo dõi hợp đồng, thanh toán và phân công giao hàng cho nhân viên giao hàng chẳng hạn. 1.5 Feedback Feedback là tất cả các thông tin mà người dùng gửi đến công ty, bao gồm vấn đề góp ý kíên, khiếu nại, cũng như các hướng dẫn hỗ trợ từ phía dịch vụ. Phần này, bạn cần phải thực hiện phúc đáp cho người dùng những thông tin họ gửi đến, trong thực tế phần này bao gồm cả ngân hàng dữ liệu cho quá trình cung cấp dịch vụ cho khách hàng. 1.6 Báo cáo. Phần cuối cùng là phần báo cáo các loại, bao gồm báo cáo doanh số bán hàng, thanh toán và các báo cáo khác phục vụ cho quá trình kinh doanh ứng dụng Web. 1.7 Phần khác. Ngoài các phần trên, trong phần quản trị ứng dụng Web, chúng tôi trình bày logic cho một người dùng từ khi đăng nhập chp đến khi thoát khỏi ứng dụng. 2.các tập tin chèn. Để tạo ra một kiểu thồng nhất cho tất cả các trang trong ứng dụng quản trị ứng dụng, chúng tôi xây dựng một số trang ASP, Javascript, HTML dùng chung. Bạn có thể sử dụng các trang này khi cần xây dựng các module của ứng dụng. Tuy nhiên, bạn cũng có thể tự mình tối ưu hoá hay có thể thêm vào những phần đặc thù cho ứng dụng của mình, bằng cách khai báo tương tự như vây. Trong trương hợp này, chúng tôi tạo một thư mục có tên là includes( nằm trong thư mục Examples). Trong thư mục này, bao gồm các trang bottom.htm, trang này dùng để khai báo require() hay include() vào mỗi cuối trang Web để trình bày thông tin về công ty và bản quỳên (copyright). Trong quá trình xây dựng ứng dụng hoàn chỉnh, chúng ta có thể tạo thêm một số phương thức khác, bạn có thể tìm hiểu cách viết javascritp . Để cho phép người dùng chọn một phần tử từ thẻ select dạng listbox bên trái rồi thêm vào thẻ select dạng listbox bên phải và ngược lại, chúng tôi cũng xây dựng một trang javascritp có tên là lib.js, trang này có hai phương thức AddTo (srcobj, desobj ) và SortItem (obj). Phương thức AddTo (srcobj, desobj ) cho phép thêm phần tử được chọn từ thẻ select này sang thẻ select khác. Nhiệm vụ của phương thức này là, duyệt trên các phần tử của thẻ select nguồn. Nếu có chọn thì thêm chúng vào thẻ select đích. Sau đó xoá các phần tử này khỏi danh sách của thẻ select nguồn và gọi phương thức sắp xếp giá trị phần tử trong cả hai thẻ. Để sắp xếp phần tử trong hai thẻ, chúng ta thiết kế một phương thức có tên SortItem (obj). Phương thức này đọc tất cả các phần tử ( value và label của thẻ option) và lưu vào hai mảng tương ứng (anArrayValue, anArraytext). Sau đó, dùng thụât toán sắp xếp buble sort, chúng ta khai báo biến tạm và duyệt tất cả các phần tử mảng, đồng thời sắp xếp chúng theo chiều tăng dần. Sau khi có hai mảng dữ liệu sắp xếp theo thứ tự tăng dần, chúng ta xoá hết các phần tử trong thẻ select và sử dụng phát biểu vòng lặp for để đọc dữ liệu từ hai mảng trên vào thẻ select trở lại. Tương tự như vâỵ, module quản trị chúng ta thường cài đặt phần cho phép người dùng chọn hay không chọn tất cả các thẻ checkbox. 2.1 Các trang JavaScript khai báo chèn. Khi người dùng chọn và liên kết Check All, tất cả các thẻ checkbox có tên chkid trên đều được đánh dấu chọn (checked) Ngược lại, trong trường hợp người dùng chọn Clear All, tất cả các thẻ checkbox trên đều unchecked. Đối với trường hợp này, chúng ta viết phương thức docheck( status bar) trong rang javascript. Làm việc với thẻ option bằng trang ASP. Nếu bạn muốn khai báo thẻ select bằng các thẻ option tĩnh, điều này có nghĩa là nhãn và giá trị của thẻ option được định nghĩa sẵn, bạn có thể làm điều này một cách dễ dàng. Tuy nhiên, trong trường hợp bạn đọc dữ liệu từ bảng trong cơ sở dữ liệu và tạo danh sách thẻ option, sau đó đưa vào thẻ select, bạn có thể tạo một trang ASP với chức năng đọc Table và tạo ra danh sách thẻ option. Khi người dùng chọn nhãn trên thẻ select, ứng với nhãn đó chúng có giá trị khai báo bên trong. Sau khi người dùng chọn một nhãn ứng với một giá trị, trong trang kế tiếp chẳng hạn, bạn có thể trình bày tên ( nhãn) ứng với giá trị người dùng chọn thay vì trình bày giá trị . Tương tự như vậy, trong trường hợp mỗi trang liệt kê, chúng tôi trình bày menu(submenu) có 3 chức năng New, Search, Back . Ngoài ra, còn hai menu chính khác, menu phía trên hết là menu chính của ứng dụng quản trị bao gồm các liên chính của ứng dụng. Menu kế tiếp là menu cho từng module của ứng dụng. 3. cài đặt session và permission Mỗi người dùng muốn sử dụng một trong các chức năng cuả phần quản trị đều phải đăng nhập, điều này có nghĩa là nếu người dùng chưa đăng nhập hay biến session của họ hết hạn, ứng dụng sẽ yêu cầu bạn đăng nhập trở lại. Tuy nhiên, một người dùng đã đăng nhập thành công không có nghĩa là họ có thể thực hiện mọi chức năng của ứng dụng. Trong trường hợp này, chúng ta phải xây dựng Module có tên Users Management, trong đó bao gồm việc phân quyền cho từng người dùng đối với từng chức năng với 3 quyền cơ bản như: Full Control( F), Read Only(R), No Access(N). Để kiểm tra quyền của người dùng đối với từng chức năng ta sẽ viết riêng một trang ASP có tên permission.asp. 4. chức năng quản lý danh mục Trên quan điểm trình bày dữ liệu dạng liệt kê, chúng tôi đều cài đặt navigation, paging, searching và sắp xếp theo ký tự alphanumeric, bạn có thể tham khảo chi tiết trong phần kế tiếp. Tương tự như trong trường hợp Items, bạn thực hiện quá trình sao chép và sửa đổi ứng với các danh mục khác như: tblAuthors, tblGroups, tblProvines.. Liệt kê sản phẩm. Trước tiên chúng tôi trình bày phần quản lý sản phẩm hàng bán. Khi người dùng chọn liên kết Items hay Directories trong menu chính, trang items.asp sẽ xuất hiện. Thêm mới sản phẩm. Chức năng thêm mới sản phẩm chỉ cho phép người dùng có quyền là F. Điều này có nghĩa là họ có quyền thêm, xoá, cập nhật mẩu tin. Nếu người dùng có quyền là N hay R, lập tức trang errors. asp sẽ xuất hiện. Kích hoạt và cập nhật sản phẩm 4.4 Tìm kiếm sản phẩm. Để tìm kiếm một sản phẩm, bạn cũng có thể thiết kế các danh mục khác cũng tương tự như danh mục sản phẩm. Trong trường hợp này, chúng tôi thiết kế một trang itemsearch.asp bao gồm một số criteria điển hình. Đối với trang này bạn có thể khai báo chèn tập tin menu.asp. Kế đó bạn có thể thiết kế form cho phép người dùng nhập các tiêu chuẩn và action đến trang itemresult.asp . Trong trường hợp, bạn yêu cầu người dùng cung cấp ít nhất một từ khoá để tìm kiếm, bạn có thể víêt thêm phương thức checkInput() và gọi nó trong biến cố onsubmit của form. Sau khi người dùng cung cấp thông tin tìm kiếm hợp lệ, nếu họ nhấn nút Search, trang kết quả tìm kiếm có tên itemresult.asp. Nội dung bên trong trang kết quả này cũng tương tự như trang item.asp . Khi người dùng chọn một hay nhiều sản phẩm trên trang kết quả tìm kiếm hay trang item.asp, nếu họ bấm nút Delete/Activate hay Deactivate thì trang itemdo.asp sẽ được gọi. Tuỳ thuộc vào hành động của người dùng, chúng ta phân biệt gía trị của nút $cmdaction để biết được người dùng đang bấm một trong 3 nút Delete/Activate hay Deactivate. Nếu lần đầu tiên người dùng bấm một trong 3 nút đó, chúng tôi trình bày dữ liệu dưới dạng xác nhận. Trong trường hợp người dùng tiếp tục bấm nút tương tự trong trang itemdo.asp, chúng tôi thực hiện việc cập nhật hay xoá trong cơ sở dữ liệu. Sau khi thực hiện thành công yêu cầu người dùng, nếu họ bấm nút Continue, hệ thống sẽ trỏ đến trang items.asp . Phân quyền người sử dụng đối với ứng dụng 1.kiểm soát quyền người dùng. Trong thương mại địên tử với chức năng qua mạng, bạn phải xây dựng phần phân quyền cho người sử dụng, để kiểm soát các hành động của họ đối với ứng dụng mỗi khi họ đăng nhập và làm việc trên từng Module. Trong phần thứ nhất, chúng tôi cài đặt phần kiểm soát phân quyền người dùng vào mỗi trang ASP. Nếu quyền của người dùng có giá trị là N( No Access), lập tức hệ thống sẽ trỏ đến một trang có tên là errors.asp. Trang này sẽ thông báo cho người dùng biết rằng, họ không có quyền truy cập vào các tập tin thuộc chính Module này. Tương tự như vậy, trong trường hợp người dùng có quyền là R( Read Only), người dùng có thể duyệt trang Web nhưng không thể xoá, cập nhật hay thêm mới phần tử. Ngược lại của hai quyền trên là F(Full Control) , hệ thống cho phép người dùng xoá, cập nhật hay thêm mới các phần tử bằng cách xuất hiện các liên kết cũng như các nút liên quan đến các hành động thao tác trên cơ sở dữ liệu. Nói chung, nếu người dùng có quyền là F, họ có thể thao tác và xử lý mọi vấn đề trên cơ sở dữ liệu mà ứng dụng cho phép. 2. xây dựng bảng dữ liệu Ngoài bảng lưu trữ danh sách người sử dụng có tên tblUsers, chúng tôi khai báo thêm hai bảng liên quan đến cấu trúc phân quyền là tblmodule và tblmoduleanduser. Bảng tblmodule cho phép bạn lưu trữ các module , chẳng hạn trong trường hợp ứng dụng đính kèm, chúng tôi khai báo các module có tên: Directories, Users, Customers, Sales… Để biết được quyền của người dùng trên từng Module, chúng tôi thiết kế bảng tblmoduleanduser, bảng này lưu trữ thông tin quyền người sử dụng ứng với một Module là một trong 3 giá trị N, F, R . 3.quản lý người sử dụng Để quản lý người sử dụng, bạn cũng có thể xây dựng các trang ASP tương tự như trong trường hợp quản lý sản phẩm. Trong trường hợp này, chúng tôi xây dựng thêm một số trang dùng chung. Người sử dụng có thể còn hiệu lực sử dụng ứng dụng, nhưng cũng có một số người sử dụng không còn hiệu lực . Tuy nhiên, họ vẫn còn lưu trữ trong cơ sở dữ liệu. Nếu bạn chọn All trong thẻ select dạng Combobox có tên là cbtype, tất cả người sử dụng trong bảng dữ liệu có tên tblusers đều xuất hiện. Trong trường hợp bạn chọn Activate, hệ thống trình bày các người sử dụng có giá trị trong cột Activate xuất hiện. Để làm điều này, trước tiên chúng tôi viết một hàm listof() trong trang ASP dùng chung có tên combo.asp, hàm này trình bày thẻ select dạng combo với 3 gía trị tuỳ chọn: All, Activate, Deactivate. Hàm này có 3 tham số, tham số thứ nhất chính là giá trị hiện tại của thẻ cbtype, mục đích để chọn lại đúng gía trị của người sử dụng đã chọn. Chẳng hạn như trong trường hợp bạn chọn Activate, lập tức hệ thống trình bày những người sử dụng có giá trị trong cột Activate là 1. Tham số thứ hai chính là tên của trang ASP cần submit đến. 3.1 Liệt kê người sử dụng . Trở lại trang users.asp, để trình bày nội dung trang này cũng tương tự như cách trình bày trong trang items.asp đã trình bày trong chương trước. Tuy nhiên, trong trường hợp này có sự phân biệt giá trị trong cột Activate dựa trên tuỳ chọn người dùng chọn từ cbtype. Cũng như trong trang items.asp, để người dùng sử dụng được trang users.asp. Trước tiên bạn cũng cần kiểm tra biến session để biết người dùng đã đăng nhập hay chưa, kế tiếp bạn kiểm tra quyền sử dụng của người dùng đối với Module này. Tuỳ thuộc vào giá trị của tuỳ chọn cbtype, nút Activate hay Deactiate xuất hiện cùng với nút Delete hay một trong hai nút thì form sẽ được submit đến trang userdo.asp. 3.2 Delete và Activate hay Deactivate Nếu như người dùng chọn hai mẩu tin từ trang users.asp. để Deactivate. Trong trang này có khai báo một thẻ hidden có tên là “chon”, thẻ này lưu lại giá trị của các thẻ chkid. Sau khi người dùng chọn mẩu tin và bấm nút Deactivate, trang users.asp sẽ được gọi, trang này xác nhận lại với người sử dụng hai mẩu tin cần được Deactivate. Mỗi khi bạn muốn xoá người sử dụng trong cơ sở dữ liệu, bạn cần phải xoá những mẩu tin liên quan đến người sử dụng này, trong trường hợp này là danh sách quỳên của người sử dụng trên từng Module. Thêm người sử dụng vào cơ sở dữ liệu . Để thêm người sử dụng vào cơ sở dữ liệu, bạn có thể tham khảo trang users.asp. Cập nhật người sử dụng . Nếu một người sử dụng đang tồn tại trong bảng tblUsers, người dùng muốn cập nhật thông tin về họ, người dùng cần phải edit dữ liệu bằng cách gọi trang useredit.asp. Trang này trình bày thông tin về người sử dụng, cho phép người dùng thay đổi thông tin và cập nhật trở lại cơ sở dữ liệu. Sau khi người dùng nhập mới người sử dụng hay hiệu chỉnh thông tin một người sử dụng, người dùng chọn nút Save hay Update để lưu hay cập nhật thông tin trở lại cơ sở dữ liệu. Sau khi kiểm tra quyền sử dụng của người dùng, đối với trường hợp thêm mới, chúng ta kiểm tra người sử dụng đã tồn tại hay chưa trong cơ sở dữ liệu. 4. Phân quyền người sử dụng trên ứng dụng Để gán quỳên sử dụng của người sử dụng cho từng Module của ứng dụng, sau khi bạn có danh sách các Module trong tblModules như ở phần thiết kế bảng dữ liệu liên quan, bạn có thể trình bày danh sách người sử dụng. Những người sử dụng đã phân quyền sử dụng trên các Module, chúng tôi sử dụng dấu + để hiển thị quyền của họ trên từng Module. Nếu người dùng chọn vào dấu + của người sử dụng, lập tức danh sách các Module cùng với quyền của người sử dụng đó xuất hiện. Cập nhật quyền sử dụng cho người sử dụng. Khi người dùng chọn vào link ứng với tên người sử dụng, nếu người dùng đã có cấp quỳên sử dụng trước đây, trang kế tiếp là usermoduleedit.asp sẽ hiển thị quyền sử dụng của người sử dụng ứng với từng Module của ứng dụng. Trong trường hợp người sử dụng chưa cấp quyền sử dụng trên từng Module của ứng dụng, lập tức những quyền này được gán với giá trị mặc định là No Access(N). Trong khi trình bày danh sách các Module của ứng dụng, nếu người sử dụng có giá trị cột Assign là 0, tất cả các quyền sử dụng của từng Module được gán giá trị mặc định là No Access. Cấp quyền sử dụng cho người sử dụng. Nếu người dùng chọn vào link, trang kế tiếp (usermodulenew.asp) sẽ hiển thị danh sách người sử dụng bằng thẻ select dạng combobox cùng với quyền sử dụng trên từng Module của ứng dụng mặc định là No Access. Bằng cách chọn một trong những người sử dụng chưa cấp quyền sử dụng trong thẻ select dạng combobox , kế tiếp bạn chọn các quyền tương ứng với từng Module của ứng dụng mà bạn cho phép người sử dụng này quyền sử dụng. Lưu quyền sử dụng vào cơ sở dữ liệu. Sau khi cập nhật lại quyền sử dụng hay cấp quyền sử dụng của từng Module cho người sử dụng, người dùng chọn nút Save hay Update dể tiếp tục lưu dữ liệu vào cơ sở dữ liệu, trang usermodulenew.asp được gọi dể thực hiện quá trình này. quản lý khách hàng hợp đồng mua hàng 1.Quản lý khách hàng Trong các ứng dụng thương mại điện tử đều có chức năng bán hàng qua mạng. Điều này có nghĩa là bạn phải xây dựng phần quản lý khách hàng và hợp đồng của họ. Để dễ quản lý khách hàng, chúng tôi phân ra làm hai loại khách hàng ứng với hai bảng dữ liệu. Liệt kê khách hàng. Mỗi khi khách hàng đăng ký làm đại lý, bạn luôn cấp giá trị mặc định cho cột Activate là 0. Điều này có nghĩa là khi nhân viên chịu trách nhiệm về Module này duyệt họ trở thành khách hàng chí._.

Các file đính kèm theo tài liệu này:

  • docP0139.doc
Tài liệu liên quan