Ngày nay, internet ngày càng trở nên cần thiết cho cuộc sống, đặc biệt trong lĩnh vực kinh doanh. Thương mại điện tử hiện đang là ngành kinh tế thu lợi nhuận cao của nhiều nước trên thế giới. mặc dù vậy, nước ta lại chưa phát triển loại hình này do các điều kiện khách quan. tuy nhiên, sớm hay muộn thì chắc chắn cũng phải có phần đáp ứng được nhu cầu của khách hàng và nhà thương mại. vì buôn bán là một hoạt động không thể thiếu trong đời sống hiện nay, và cũng nhờ sự phát triển của thương mại điện tử mà các nhà thương mại có cơ hội quảng cáo sản phẩm của mình rộng rãi hơn.
Víi đề tài:“Xây dựng website bán hàng trực tuyến tại Tổng công ty Thương mại Hà Nội” nhằm làm quen với thương mại điện tử và bắt kịp sự phát triển của nước ta cũng như thế giới. Ứng dụng cũng đã triển khai được phần lớn các yêu cầu chính mà một ứng dụng thương mại điện tử cần đáp ứng.
Do thời gian hạn chế, việc tìm hiểu và xây dựng một ứng dụng trên công nghệ ASP đối với em còn gặp nhiều khó khăn, chắc chắn Đề tài sẽ có thiếu sót, em rất mong có sự góp ý của các thầy, cô và các bạn để em có thể hoàn thiện đề tài trong tương lai được tốt hơn.
117 trang |
Chia sẻ: oanh_nt | Lượt xem: 1554 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Đồ án Xây dựng website bán hàng trùc tuyÕn t¹i Tæng c«ng ty Thương mại Hà Nội, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
là các Built-in-Object, bao gồm:
Request: lấy thông tin từ một user
Response: gửi thông tin tới một user
Server: điều khiển môi trường hoạt động của ASP
Session: lưu giữ thông tin về 1 session của user
Application: chia sẻ thông tin giữa các user trong cùng một ứng dụng
Cú pháp của các đối tượng
Cú pháp của các đối tượng không phụ thuộc vào scripting language mà người lập trình sử dụng.
Để truy xuất thông tin của một đối tượng ta dùng các phương thức (method) và các thuộc tính (property).
Sử dụng các Method
Một method là một procedure hoạt động trên một đối tượng nào đó. Cú pháp tổng quát của method là:
Object.Method [parameters]
parameter là các thông số của method
Sử dụng các Property
Một property là một tính chất được đặt tên của một đối tượng. Chúng định nghĩa các tính chất của đối tượng như kích thước, màu, vị trí trên màn hình hay thể hiện các trạng thái của đối tượng như được phép (enable) hay không được phép (disable). Cú pháp tổng quát của property là:
Object.Property [parameters]
parameter là các thông số của Property
Parameter thường là các biến, dữ liệu, chuỗi ký tự, hoặc là một URL.
2.1. Request object
Request Object lấy các giá trị mà client browser gởi lên server thông qua một HTTP request. Đây là cách mà các ứng dụng ASP lấy được thông tin gửi tới từ user, ví dụ: khi user Submit thông tin từ một FORM.
Request Object cho phép truy xuất tới bất kỳ thông tin nào do user gởi tới bằng giao thức HTTP như:
Các thông tin chuẩn nằm trong các biến Server (variable server)
Các tham số được gửi tới bằng phương thức POST
Các thông tin được gửi tới bằng phương thức GET
Các cookies (là các thông tin của user được gửi kèm theo) tới từ Browser.
Các Client Certificates
Request Object có 5 collection sau:
QueryString Nhận giá trị của các biến trong HTML querystring, đó là giá trị được gởi lên theo sau dấu chấm hỏi (?) trong HTML request.
Form Nhận các giá trị của các phần tử trên FORM sử dụng POST method.
Cookies Cho phép nhận những giá trị của cookies trong một HTML request
ServerVariable Nhận các giá trị của các biến môi trường.
ClientCertificate Nhận certificate fields từ request của Web browser.
2.2. Response object
Việc gửi thông tin tới cho user được thực hiện nhờ đối tượng Response qua việc gọi các phương thức sau:
Response.Write : Gửi thông tin trực tiếp tới user
Response.Redirect : Gửi thông tin trực tiếp tới user ở một URL khác với URL đã yêu cầu.
Response.ContentType: Thay đổi kiểu của nội dung cần gửi.
Response.Cookies : Thiết lập các giá trị cookies.
Response.Buffer : Đệm thông tin xuất.
. Server object
Property
ScriptTimeOut khoảng thời gian chạy của một script
Methods
CreateObject tạo một instance cho một server component
Cú pháp: Server.CreateObject(ProgID), trong đó ProgID là tên của đối tượng cần tạo.
HTMLEncode áp dụng sự mã hóa HTML lên một string được chỉ định
MapthPath ánh xạ một đường dẫn tương đối hoặc virtual tới một thư mục vật lý trên server.
URLEncode mã hóa một string thành dạng URL
Ngoài các Built-in object, ASP còn cung cấp sẵn một số ActiveX Server component, được thiết kế để chạy trên các Web server như là một phần của các ứng dụng Web. Mỗi một server component là một thư viện các Class (hay Object) được thiết kế ở dạng Automation Server, thực hiện một nhóm công việc chung nhất cho một thao tác nào, ví dụ như việc truy xuất cơ sở dữ liệu, truy xuất file… nhờ đó ta không phải tạo lại các chức năng này nữa. Tuy nhiên, ASP vẫn cho phép người lập trình có thể tạo riêng server component của mình và add vào ứng dụng Web.
Các component được cài sẵn trong Active Server Pages gồm:
Adrotator
Browser Capabilities
Database Access
Content Linking
File Access
Tạo các instance của các component
Dùng phương thức CreateObject của đối tượng Sever, cú pháp như sau:
Server.CreateObject(“ComponentName”)
Ví dụ: Tạo một đối tượng connection là Conn từ ADO component
Trong phạm vi của Đồ án tốt nghiệp là tìm hiểu các công cụ của ASP hỗ trợ cho việc phát triển ứng dụng Web database, nên phần tiếp theo đồ án sẽ trình bày ADO component với các method và property của nó là điểm mạnh nhất của ASP trong việc truy xuất cơ sở dữ liệu.
2.3. Dreamweaver
Dreamweaver được thiết kế để hỗ trợ việc xây dựng,kiểm sóat, chỉnh sửa hoặc phát triển trang Web với các chức năng phong phú, dễ dùng, hiệu quả và rất mạnh mẽ. Một đặc điểm quan trọng của Dreamweaver gọi là Rountrip HTML, nhờ nó bạn có thể tạo ra các trang HTML trong bất kỳ chương trình nào, khi mở trong Dreamweaver, mã HTML gốc sẽ không bị thay đổi. Đây là điểm mạnh của Dreamweaver mà một số trình thiết kế Web khác không có được, chẳng hạn như FrontPage.
Một số đặc điểm trong Dreamweaver
Bảng điều khiển Assets trong Dreamweaver cung cấp cách thức truy cập dễ dàng đến thư viện và các trang mẫu của Dreamweaver. Bảng Assets cung cấp một vị trí trung tâm nơi lưu giữ tất cả những gì của website, bao gồm các hình ảnh, màu sắc, URL bên ngoài, các mã kịch bản, các tập tin Flash. Có thể kéo và thả chúng từ bảng điều khiển Assets vào trong hồ sơ HTML .
Cửa sổ Site kèm theo các biểu tượng cho Design Notes, vì thế có thể dễ dàng xác định được một tập tin có một ghi chú được gắn với nó hay không. Cũng có thể thay đổi cách thể hiện ghi chú thiết kế, chẳng hạn như Due Date và Status.
Các vùng có thể soạn thảo trong phần Templates có các thẻ và một outline giúp cho người dùng dễ dàng biết được vùng nào trong một trang mẫu có thể thay đổi được.
Trình soạn thảo có khả năng tạo các tập tin JavaScript, tập tin XML và các tập tin văn bản khác trong Dreamweaver Code View, kèm theo các màu đánh dấu cú pháp sống động.Đặc điểm này được thiết kế cho những người sử dụng có hiểu biết kỹ thuật của Dreamweaver và được dùng cho lập trình chất lượng cao.
Extension Manager giúp cho việc bổ sung các phần mở rộng của Dreamweaver dễ dàng hơn.
Các đặc điểm Flash Buttons và Flash Text là kết quả của việc tích hợp với chương trình tạo hoạt hình Flash của Dreamweaver. Có thể chọn kiểu Flash được định nghĩa trước hoặc có thể bổ sung các nút tuỳ biến của riêng mình hoặc văn bản và sau đó dễ dàng bổ sung chúng vào bất kỳ trang web nào trong website.
Intergrate Mail giúp liên kết với các địa chỉ thư điện tử
Trình soạn thảo văn bản HTML được tích hợp.
Chế độ thể hiện Table Layout cho phép vẽ, di chuyển các ô bảng trực tiếp trên trang Web
Đặc điểm Split view giúp có thể đồng thời soạn thảo mã nguồn HTML ở một phần màn hình và phần soạn thảo WYSIWYG ở phần còn lại.
Macromedia Fireworks giờ đây đã được tích hợp hoàn toàn với Dreamweaver, vì thế các hình ảnh và các bảng HTML đã được tạo ra trong Fireworks và được đưa vào trong Dreamweaver sẽ có cửa sổ kiểm soát Property riêng cho mình. Giao diện đặc biệt trong Fireworks giúp có thể chuyển qua lại giữa Fireworks và Dreamweaver, cập nhật tập tin HTML mỗi khi kết thúc sử dụng Fireworks và giữ lại các thay đổi lớn đã thực hiện trong Dreamweaver.
Đặc điểm Site Reporting của Dreamweaver sẽ giúp cho việc tìm kiếm ra các vấn đề thường gặp, như là hồ sơ không có tiêu đề hoặc thiếu các thẻ ALT dễ dàng hơn.
Sơ lược về Flash MX.
Flash MX là một công cụ phổ biến để hỗ trợ tạo ra các trang Website có tính động và hấp dẫn người dùng.Với Flash, trang Web trở nên sống động hơn với những đọan phim họat hình, âm thanh, các nút bấm, các ứng dụng multimedia hoặc các hiệu ứng đẹp mắt, Flash MX còn cung cấp các khả năng quản trị, liên kết, tương tác cho Website thông qua các Action Script được hỗ trợ trong Flash.
Một lợi điểm nữa của FLASH đó là những tập tin của Flash khi được xuất lên Web thường có kích thước nhỏ,điều này giúp cho các trang Web vẫn rất sinh động đồng thời thời gian chờ truy cập trang Web vẫn không bị lâu hơn.
1. Flash làm việc như thế nào?
Điều đầu tiên nhận thấy sau khi tạo ra nội dung của Flash ta cần hai nội dung để thực hiện tiến trình công việc: Một tập tin làm việc (nơi tạo ra nội dung, chuyển động và tương tác) và một phiên bản ở dạng nén đã được tối ưu của tập tin này, thường được viết dưới dạng phim Flash.
Tập tin làm việc (.fla) là nơi lưu trữ công việc làm ra, vì thế ta có thể sửa đổi nó sau này. Nó chứa toàn bộ các đối tượng âm thanh, ảnh bitmap, các nét vẽ, văn bản và sự tương tác mà ta muốn đoạn phim cuối cùng sẽ có. Tập tin làm việc là đoạn phim ở trạng thái chưa tối ưu-có nghĩa là nó có thể có kích thước lớn gồm nhiều megabyte. Từ đây ta sẽ xuất một phim Flash ( có đuôi mở rộng là .swf), chương trình Flash sẽ nén và tối ưu nó để cho kích thước tập tin nhỏ hơn rất nhiều. Tập tin có kích thước nhỏ này sẽ được đưa vào trang web và phần lớn là không thể chỉnh sửa được.
Chúng ta không chỉ tạo các tập tin phim Flash từ các tập tin làm việc mà còn có thể xuất nó sang dạng phim QuickTime, các dạng tập tin GIF động và kể cả các đối tượng đồ hoạ tĩnh hoặc không chuyển động và có thể dùng Flash để tạo ra toàn bộ các dạng này một cách đồng thời. Điều này có nghĩa là có thể tạo một tập tin làm việc và xuất bản nó ra theo nhiều cách (phim Flash, phim QuickTime, GIF động, JPEG...)
2. Hoạt hình trong Flash
Flash MX có hai phương pháp làm hoạt hình: Hoạt hình theo dạng khung hình nối tiếp khung hình và hoạt hình dạng biến đổi.
Hoạt hình theo dạng khung hình nối tiếp khung hình : Làphương pháp tạo chuyển động được sử dụng rộng rãi vàđược nhiều người biết nhất. Phương pháp này được dùng làm nhiều thứ từ việc tạo phim hoạt hình cho đến mang những hình thể con người và cuộc sống. Loại hình này yêu cầu chụp nhanh một khung hình, rồi thay đổi đi một ít, xong lại lấy nội dung của khung hình khác, lại thay đổi nội dung... ta sắp xếp các khung hình này theo thứ tự và thực hiện liên tiếp đủ nhanh sẽ tạo ra sự chuyển động và hoạt hình. Tuy nhiên việc thực hiện hoạt hình theo phương pháp này đòi hỏi rất công phu và tốn rất nhiều thời gian.
Hoạt hình theo dạng biến đổi: Với phương pháp này ta có thể tạo ra hoạt hình một cách nhanh chóng và dễ dàng hơn phương pháp khung hình nối tiếp khung hình. Chỉ cần sử dụng các khung hình khóa để định nghĩa hai điểm: Sự xuất hiện của hình ảnh từ lúc bắt đầu và lúc kết thúc của hoạt hình. Sau đó xác định thời gian dài bao nhiêu cho hoạt hình sẽ trông như thế nào trong toàn bộ các khung hình và nhanh chóng tạo ra các hoạt hình dạng biến đổi.
3. Action Script
Action Script là ngôn ngữ lập trình sử dụng để kiểm soát các khía cạnh khác nhau của một phim Flash. Action Script là một ngôn ngữ hướng đối tượng, Action Script là một ngôn ngữ kịch bản khá đơn giản nhưng có thể thực hiện một số hành động phức tạp.Về cơ bản, việc tạo một chương trình trong Action Script chủ yếu sẽ là việc lựa chọn các câu lệnh và các tham số từ các danh sách.
Một số lệnh sử dụng trong các đọan phim và các nút có trong đồ án
Stop(): Ngừng phát một đoạn phim
GetURL(URL,Windows,Variable):Liên kết đến một địa chỉ URL
Goto:Chuyển điểm phát cho một đoạn phim đến một Frame nào đó.
. MICROSOFT FRONTPAGE
Microsoft ®FrontPage là một trong những phần mềm soạn thảo web đầy đủ nhất hiện nay. Nó không chỉ có phần soạn thảo văn bản dạng HTML một cách hoàn hảo mà còn cho phép người sử dụng có thể tạo và tổ chức toàn bộ web site từ đầu đến cuối. Microsoft FrontPage có các wizard cho phép tạo ngay các trang web theo các mẩu có sẵn và các công cụ để cho phép người sử dụng có thể quản lý được toàn bộ web site. Đối với người mới làm quen với HTML thì Microsoft FrontPage là một phần mềm rất tốt để tạo các trang web.
Trong quá trình soạn thảo một trang web, có thể nhìn thấy ngay trang web như khi trình duyệt đọc trang web đó lên. Do đó có thể điều chỉnh để các đối tượng trên trang web được phân bố một cách hợp lý nhất .
Hổ trợ khả năng tạo biểu bảng , các khung rất mạnh và có rất nhiều mẫu có sẳn trong template. Có thể quan sát các liên kết giữa các trang nên người sử dụng có thể theo dõi website một cách dễ dàng.
3. MICROSOFT ACCESS
Microsoft Access 2000 là một hệ quản trị cơ sở dữ liệu(Date Base Management Sytem), gọi tắt là DBMS guíp ta quản lý bảo trì và khai thác số liệu được lưu trữ một cách có tổ chức trong máy tính.
So với phần mềm chuyên dụng trong lĩnh vực quản trị cơ sở dữ liệu khác thì Microsoft Access 2000 có nhiều ưu điểm vượt trội, đa dạng hơn, phong phú hơn, tân kỳ hơn.
Access cũng là một ngôn ngữ ứng dụng mạnh trong môi trường Windows. Ngay từ đầu Access đã là một sản phẩm CSDL trong Microsoft Windows. Bởi vì cả Windows và Access đều xuất thân từ hãng Microsoft nên cả hai sản phẩm này làm việc rất tốt cùng với nhau, Access chạy trên Windows nên mọi thế mạnh của Windows cũng thể hiện trong Access. Bạn có thể cắt dán dữ liệu bất cứ một ứng dụng trong môi trường Windows nào cho Access và ngược lại. Bạn cũng có thể liên kết các đối tượng OLE trong Excel, Paintbrush và Word for Windows vào trong môi trường Access.
Vì trọng tâm của Microsoft Access 2000 là quản lý và khai thác cơ sở dữ liệu. Cơ sở dữ liệu là tập hợp những số liệu liên quan đến một chủ đề hay một chủ đích quản lý khai thác nào đó, trong Microsoft Access 2000 ngoài những bảng chứng dữ liệu, còn có những phần khác giúp ta quản lý và khai thác số liệu, đó là những Querier(Bảng truy vấn), những Form(Mẫu biểu), những Record(Báo biểu), những Macro(lệnh ngầm), và những Modul(Đơn thể lập trình). Một cách tổng quát, một cơ sở dữ liệu của Microsoft Access 2000 có thể gồm sáu thành phần sau:
Table
Query
Form
Reports
Macro
modul
Tất cả các thành phần được lưu giữ trong một đơn vị duy nhất là một DateBase Container, khi lưu trữ trên đĩa cứng chỉ dưới dạng một tập tin duy nhất có phần mở rộng là.mdb. ví dụ tập tin Vidu.mdb, việc này chỉ hơi ngại là dung lượng 1 tập tin .Mdb thường khá lớn có khi lên đến hàng chục MB.
III. PHÂN TÍCH VÀ THIẾT KẾ WEBSITE.
1. Yêu cầu của đề tài
1.1. Về mặt ứng dụng.
Xây dựng hệ thống quản lý các dịch vụ bán hàng trên mạng, trong đó hệ thống cho phép các dịch vụ đăng ký một không gian để bán những mặt hàng mình có trên mạng. Mỗi dịch vụ sẽ có một account riêng trong hệ thống, họ có thể cập nhật các mặt hàng, thay đổi thông tin của dịch vụ và quản lý những đơn đặt hàng của khách mua hàng thông qua hệ thống. Tuy nhiên, dịch vụ hay mặt hàng của dịch vụ chỉ thực sự hoạt động khi đã thanh toán những chi phí cần thiết cho hệ thống. Đối với những khách hàng vào hệ thống để mua hàng, hệ thống phải hỗ trợ sao cho khách hàng có thể tìm kiếm, chọn và đặt hàng một cách dễ dàng. Khi khách hàng đặt mua sản phẩm, hệ thống sẽ chuyển đơn đặt hàng này đến dịch vụ bán hàng. Việc giao và nhận hàng diễn ra nội bộ giữa người bán với người mua, hệ thống không tham gia trực tiếp vào việc bán hàng. Hệ thống đóng vai trò như một siêu thị ảo, môi giới cho khách mua hàng với dịch vụ.
Về phía khách hàng
Các khách hàng có thể đăng kí mua hàng, cũng như việc xem và lựa chọn những sản phẩm qua mạng nếu họ đồng ý với những sản phẩm đó.
Khách hàng có thể dễ dàng xem hàng, hoặc đăng ký mua hàng bất cứ lúc nào thông qua mạng máy tính khi mà máy chủ đã khởi động.
Các khách hàng có thể dễ dàng tìm thấy sản phẩm mà mình cần, việc đăng kí mua hàng chỉ thông qua thao tác nhấn chuột trên sản phẩm mà mình lựa chọn.
Các khách hàng còn có thể theo dõi được những sản phẩm mới mà công ty chuẩn bị bán ra trong một thời gian sắp tới.
Khi cần thiết thì khách hàng có thể hỏi đáp thông qua công ty, hoặc thông qua diễn đàn nhằm góp ý cũng như việc thắc mắc với công ty. Diễn đàn sẽ giúp cho khách hàng giải quyết các vấn đề mà mình không giải quyết được.
Về phía người quản lý
Người quản lý có thể theo dõi thành viên, đơn hàng của các khách hàng đang tham gia mua hàng của công ty mình (như số lượng mặt hàng, số tiền, của khách hàng …) và nắm các thông tin của khách hàng như email, địa chỉ để liên lạc khi cần.
Người quản lý có thể thêm sản phẩm, xoá sản phẩm, thêm người quản lý, người sử dụng thông qua chương trình đã được xây dựng.
1. 2. Về mặt kỹ thuật
Bài toán đòi hỏi hệ thống phải có những khả năng về kỹ thuật như sau:
Ứng dụng triển khai trên môi trường JSP.
Hỗ trợ nhiều hệ điều hành (cho phía client).
Hỗ trợ nhiều trình duyệt (như IE, Netscape..)
Hỗ trợ nhiều người dùng.
Số lượng người tham gia đăng ký mua hàng không giới hạn.
Số lượng các sản phẩm, người đăng ký sử dụng thêm vào không giới hạn.
1.3. Một số yêu cầu khác
Ngoài các yêu cầu trên, ứng dụng có thể:
Dễ dàng cài đặt.
Dễ dàng sử dụng.
Như vậy, trước những yêu cầu của bài toán đặt ra như trên, ta cần khảo sát công nghệ và lựa chọn giải pháp thích hợp để có thể triển khai ứng dụng theo yêu cầu của bài toán.
1.4. Đặc tả tính năng
Dựa vào yêu cầu của bài toán, ta nhận thấy hệ thống xây dựng phục vụ chủ yếu cho ba vấn đề sau:
* Quản trị hệ thống.
* Diễn đàn (forum).
* Khách mua hàng.
2. Quản trị hệ thống
Quản trị hệ thống là người làm chủ ứng dụng, họ có quyền kiểm soát mọi hoạt động của hệ thống. Mỗi quản trị hệ thống sẽ được cấp một username và password, để thực hiện những chức năng của mình, họ phải đăng nhập vào hệ thống bằng username và password của họ.
Nếu như quá trình đăng nhập thành công thì quản trị hệ thống có những chức năng sau:
* Chức năng của quản trị đối với quản trị:
Thay đổi những thông tin của quản trị.
Thêm quản trị.
Xóa bỏ quản trị.
* Chức năng của quản trị đối với sản phẩm:
Thêm sản phẩm mới.
Xóa sản phẩm.
Cập nhật lại sản phẩm.
Hiển thị các sản phẩm, hay xóa sản phẩm khi hết hạn sử dụng.
* Chức năng của quản trị đối với đơn đặt hàng:
Hiển thị đơn đặt hàng.
Xóa đơn đặt hàng.
* Chức năng của quản trị đối với khách hàng:
Thêm khách hàng mới.
Thay đổi thông tin khách hàng.
Xoá bỏ khách hàng.
3. Khách mua hàng
Khách mua hàng là những người vào hệ thống để tìm kiếm các mặt hàng cần mua và đặt hàng với hệ thống.
Khách mua hàng có thể tìm hàng mình cần theo:
Tên mặt hàng (có thể là một ký tự, chữ, câu….).
Tên loại hàng.
Khách hàng có thể thêm bớt những sản phẩm mình muốn hay không muốn mua vào trong hay ra khỏi giỏ hàng của mình.
Sau khi tìm được hàng mình cần, họ đặt mua hàng với hệ thống. Hệ thống sẽ chuyển đơn đặt hàng của họ cho dịch vụ mà họ đặt mua.
Các lưu đồ hoạt động của website.
a. Lưu đồ hoạt động của web site phục vụ khách hàng và người quản trị.
Trang chủ
(Home page)
Thông tin
Xem nội dung chi tiết một sản phẩm
Chọn sản phẩm cần mua thêm vào danh mục giỏ hàng (Shopping Cart)
Xác nhận việc mua hàng (Check out)
Đặt hàng
Thành Viên?
Quản trị
Đăng nhập (login)
Lưu đơn hàng và hẹn ngày giao hàng
Tìm kiếm
Yes
No
Sản phẩm
Ñaêng kyù
c. Lưu đồ mua hàng trên mạng
Tồn tại
Tồn tại
Baét ñaàu mua haøng
Màn hình giao tác
Kết thúc
Chọn hàng hoá
Mặt hàng
Đăng ký thành viên
Kết thúc
Xác nhận đơn hàng
Mở table members
Kiểm tra người dùng ?
Tìm kiếm hàng hóa
. Lưu đồ xử lý kiểm tra khách hàng mua hàng :
Có
Không
Yêu cầu nhập username-password
TB khách hàng đăng nhập hoàn thành
Lưu giữ mã ID khách hàng
Mua hàng
Kết thúc
Mở table members
Kiểm tra có tồn tại?
Bắt đầu đăng nhập
Kiểm tra khách hàng có tồn tại ?
Yêu cầu nhập thông tin khách hàng mới
Lưu đồ xử lý kiểm tra người quản trị.
Có
Không
Yêu cầu nhập username-password
TB quản trị đăng nhập hoàn thành
Lưu giữ mã ID
quản trị
Thao tác của người quản trị
Kết thúc
Mở table members
Kiểm tra có tồn tại?
Bắt đầu đăng nhập
Kiểm tra quản trị có tồn tại ?
Yêu cầu nhập lại
3.1. Thiết kế xử lý.
3.1.1. Thiết kế xử lý cho người quản lý.
Phân tích các hành động.
Để thiết kế các xử lý phục vụ cho người quản lý, ta cần phân tích kỹ các hoạt động của người quản lý để có thể thực hiện trong thực tế. Và từ sự phân tích này ta sẽ có những xử lý thích hợp cho hệ thống.
Các hành động của một công ty trong thực tế để theo dõi quá trình mua bán hàng hóa sẽ được mô tả bằng bảng sau: Các hành động của người quản lý trong thực tế được mô tả bằng bảng sau:
STT
HOẠT ĐỘNG
MÔ TẢ
1
Quản lý khách hàng
Quản lý những khách hàng
2
Quản lý đơn hàng
Quản lý các đơn hàng của khách hàng
3
Quản lý sản phẩm
Cập nhật(thêm, xoá, sửa) các sản phẩm
Thiết kế xử lý.
a. Quản lý khách hàng.
Thay đổi thông tin về khách hàng:
Hoạt động này được người quản lý thực hiện nhằm thay đổi thông tin của khách hàng như password, họ, tên, email, địa chỉ…
Thêm một khách hàng.
Xoá một khách hàng
Một người quản lý có thể xoá bỏ một khách hàng nếu khách hàng đó không đủ những thông tin cần thiết, hoặc khách hàng đó không tuân thủ những qui định của công ty.
Liệt kê danh sách khách hàng
Thay đổi thông tin khách hàng
Thêm khách hàng vào hệ thống
Xóa khách hàng khỏi hệ thống
Tóm lại: các hoạt động mà người quản lý có thể tương tác với server để quản lý khách hàng được mô tả bằng sơ đồ sau:
Như vậy cần thiết kế các khối xử lý sau để đáp ứng các hành động của khách hàng.
XỬ LÝ: Liệt kê danh sách khách hàng(XLKH01)
Xử lý này được mô tả như sau:
Tiếp nhận yêu cầu liệt kê danh sách khách hàng .
Lấy danh sách khách hàng từ cơ sở dữ liệu .
Đưa ra danh sách khách hàng .
XỬ LÝ: Thay đổi thông tin của khách hàng(XLKH02)
Xử lý này được mô tả như sau:
Tiếp nhận yêu cầu thay đổi thông tin.
Lấy các thông tin cần thay đổi.
Cập nhật thông tin thay đổi vào cơ sở dữ liệu.
Thông báo quá trình thay đổi thành công.
XỬ LÝ: Thêm khách hàng(XLKH03)
Xử lý này được mô tả như sau:
Tiếp nhận đăng ký của khách hàng.
Yêu cầu các thông tin về khách hàng cần thêm.
Kiểm tra các thông tin cần thêm vào xem có phù hợp không. Nếu hợp lệ thì tiếp tục, ngược lại báo không hợp lệ và quay lại bước hai của khối xử lý này.
Ghi nhận thông tin của khách hàng vừa thêm vào cơ sở dữ liệu.
Thông báo quá trình đăng ký thành công.
XỬ LÝ: Xoá khách hàng(XLKH04)
Xử lý này được mô tả như sau :
Tiếp nhận yêu cầu xoá khách hàng.
Lấy danh sách khách hàng cần xoá.
Xoá khách hàng khỏi cơ sở dữ liệu.
b. Quản lý sản phẩm:
Thay đổi thông tin sản phẩm .
Thêm sản phẩm.
Xoá một sản phẩm: khi một sản phẩm nào đó mà người quản lý thấy cần phải xoá đi.
Tóm lại: Các hoạt động mà người quản lý tương tác với Server để quản lý sản phẩm được mô tả bằng sơ đồ sau:
Liệt kê các sản phẩm
Thay đổi thông tin sản phẩm
Thêm một sản phẩm
Xoá một sản phẩm
Như vậy các khối xử lý cần thiết để đáp ứng các hành động của người quản lý trong lĩnh vực sản phẩm như sau:
XỬ LÝ: Liệt kê danh sách các sản phẩm (XLSP01)
Tiếp nhận yêu cầu liệt kê danh sách sản phẩm .
Lấy danh sách các sản phẩm từ cơ sở dữ liệu
Đưa ra danh sách các sản phẩm .
XỬ LÝ: Thay đổi thông tin sản phẩm(XLSP02)
Tiếp nhận yêu cầu thay đổi thông tin sản phẩm muốn thay đổi.
Lấy các thông tin muốn thay đổi về sản phẩm .
Thay đổi các thông tin này trên tất cả các bảng có liên quan đến mã sản phẩm cần thay đổi.
Cập nhật lại cơ sở dữ liệu.
XỬ LÝ: Thêm sản phẩm(XLSP03)
Xử lý này được mô tả như sau:
Tiếp nhận yêu cầu thêm sản phẩm
Lấy mã số sản phẩm (item_id) lớn nhất +1 trong bảng items để tạo khoá cho sản phẩm mới sắp tạo.
Kiểm tra các yêu cầu cần thêm vào xem có phù hợp không, nếu hợp lệ thì tiếp tục bước 4 của khối xử lý này, ngược lại thì quay lại bước 2 của khối xử lý này.
Ghi nhận thông tin của sản phẩm vừa thêm vào cơ sở dữ liệu.
XỬ LÝ: Xoá sản phẩm(XLSP04)
Tiếp nhận yêu cầu xoá sản phẩm bằng cách lấy khoá của sản phẩm muốn xoá.
Xoá tất cả các bảng có liên quan đến mã sản phẩm này trong cơ sở dữ liệu.
c. Quản lý đơn hàng:
Xem thông tin đơn hàng .
Xoá một đơn hàng
XỬ LÝ: Liệt kê danh sách các đơn hàng(XLĐH01)
Tiếp nhận yêu cầu liệt kê danh sách đơn hàng.
Lấy danh sách các đơn hàng từ cơ sở dữ liệu.
Đưa ra danh sách các đơn hàng.
XỬ LÝ: Xoá đơn hàng(XLĐH02)
Tiếp nhận yêu cầu xoá đơn hàng bằng cách lấy khoá của đơn hàng muốn xoá.
Xoá tất cả các bảng có liên quan đến mã đơn hàng này trong cơ sở dữ liệu.
Thông báo quá trình xoá thành công.
Tổng kết các xử lý
Như vậy, các xử lý phục vụ cho công ty đã được xây dựng. Chúng được tóm tắt lại bằng bảng mô tả và sơ đồ sau:
XLĐN01
XLKH02
XLKH03
XLKH04
XLKH01
XLSP01
XLSP02
XLSP03
XLSP04
XLKT05
XLĐH01
XLĐH02
Bảng dưới đây chú sẽ chú thích các khối xử lý
STT
KHỐI XỬ LÝ
MÔ TẢ
1
XLĐN01
Đăng nhập vào hệ thống
2
XLKT05
Kết thúc phiên làm việc
3
XLKH01
Liệt kê danh sách khách hàng
4
XLKH02
Thay đổi thông tin khách hàng
5
XLKH03
Thêm khách hàng mới
6
XLKH04
Xoá khách hàng
7
XLĐH01
Liệt kê danh sách đơn hàng
8
XLĐH02
Xoá đơn hàng
9
XLSP01
Liệt kê danh sách sản phẩm
10
XLSP02
Thay đổi thông tin sản phẩm
11
XLSP03
Thêm sản phẩm
12
XLSP04
Xoá sản phẩm
3.1.2. Thiết kế xử lý khách hàng.
Các xử lý được thiết kế trong phần này sẽ đáp ứng các hành động phục vụ khách hàng trong quá trình tìm kiếm và mua mặt hàng mình cần. Danh sách các xử lý được mô tả bằng bảng sau:
STT
XỬ LÝ
HOẠT ĐỘNG
1
Tìm hàng
Tìm kiếm hàng hóa
2
Chọn hàng
Lựa chọn mặt hàng trong hệ thống
3
Liêt kê hàng chọn
Liệt kê danh sách hàng đã chọn
4
Xóa hàng
Xóa mặt hàng đã chọn
5
Cập nhật hàng
Thay đổi số lượng mua của mặt hàng đã chọn
6
Mua hàng
Đặt mua các mặt hàng đã chọn
7
Đăng ký mới
Khách hàng phải đăng ký làm thành viên
a. Tìm hàng.
Hành động tìm hàng được thực hiện khi khách hàng cần tìm một mặt hàng nào đó từ hệ thống. Để thực hiện hành động tìm hàng, khách hàng sẽ đưa ra các từ khóa cho các mặt hàng cần tìm. Server lấy thông tin về các từ khóa này, tìm kiếm các mặt hàng thỏa điều kiện trong cơ sở dữ liệu và hiển thị danh sách các mặt hàng tìm được.
XỬ LÝ: Tìm hàng (XLKH01)
Xử lý này được mô tả như sau:
Tiếp nhận yêu cầu tìm mặt hàng
Lấy các từ khóa tìm hàng từ yêu cầu.
Tìm kiếm các mặt hàng thỏa yêu cầu tìm kiếm trong cơ sở dữ liệu
Hiển thị danh sách các mặt hàng tìm được.
b. Chọn hàng.
Trong quá trình tìm kiếm các mặt hàng ở hệ thống, khách hàng sử dụng hoạt động này để chọn mặt hàng khách hàng cần. Hoạt động này sẽ đặt mặt hàng được chọn vào danh sách các mặt hàng được chọn.
XỬ LÝ: Chọn hàng (XLKH02)
Xử lý này được mô tả như sau:
Tiếp nhận yêu cầu chọn hàng.
Lấy mặt hàng được chọn từ yêu cầu.
Thực hiện việc đặt mặt hàng được chọn vào danh sách hàng chọn.
Thông báo việc thực hiện chọn hàng thành công.
c. Liệt kê hàng chọn.
Hành động này sẽ liệt kê tất cả các mặt hàng mà khách hàng chọn trong quá trình tìm hàng. Hành động này là cơ sở để thực hiện hai hành động: cập nhật hàng chọn và xóa hàng chọn.
XỬ LÝ: Liệt kê hàng chọn (XLKH03)
Xử lý này được mô tả như sau:
Tiếp nhận yêu cầu liệt kê hàng chọn.
Lấy số hiệu session của khách hàng từ yêu cầu.
Lấy các mặt hàng mà khách hàng đã chọn từ số hiệu session này.
Liệt kê danh sách các mặt hàng được chọn.
d. Xóa hàng chọn.
Hoạt động xóa hàng chọn được thực hiện khi khách hàng có nhu cầu xóa một mặt hàng mà họ đã chọn trong quá trình tìm kiếm hàng hóa. Để thực hiện hành động này, khách hàng sẽ cung cấp cho server danh sách các mặt hàng cần xóa.
XỬ LÝ: Xóa hàng chọn (XLKH04)
Xử lý này được mô tả như sau:
Tiếp nhận yêu cầu xóa hàng chọn.
Lấy danh sách các mặt hàng cần xóa từ yêu cầu.
Xóa các mặt hàng thỏa mãn yêu cầu từ danh sách hàng chọn.
Thông báo việc xóa hàng chọn thành công.
e. Cập nhật hàng chọn.
Hoạt động cập nhật hàng chọn được khách hàng sử dụng để cập nhật số lượng hàng mà khách hàng đã sử dụng. Khi thực hiện hành động này, khách hàng sẽ cung cấp tên mặt hàng cũng như số lượng hàng cần cập nhật. Server sẽ tiếp nhận yêu cầu này, thay đổi các thông tin cần thiết và thông báo quá trình cập nhật hàng thành công.
XỬ LÝ: Cập nhật mặt hàng (XLKH05)
Xử lý này được mô tả như sau:
Tiếp nhận yêu cầu cập nhật mặt hàng.
Tiếp nhận mã mặt hàng và số lượng hàng cần cập nhật.
Cập nhật số lượng hàng cần thiết.
Thông báo quá trình cập nhật mặt hàng thành công.
f. Đăng ký mua hàng.
Hoạt động đăng ký mua hàng được khách hàng sử dụng để đăng ký mua các mặt hàng đã chọn. Khi thực hiện hành động này, khách hàng sẽ cung cấp họ tên, địa chỉ giao hàng. Server tiếp nhận các thông tin này và cập nhật đơn đặt hàng của khách hàng vào cơ sở dữ liệu.
XỬ LÝ: Đăng ký mua hàng (XLKH06)
Xử lý này được mô tả như sau:
Tiếp nhận yêu cầu đăng ký mua hàng.
Lấy thông tin của khách hàng từ yêu cầu.
Từ thông tin này và hóa đơn đặt hàng, cập nhật các thông tin cần thiết vào cơ sở dữ liệu.
Thông báo quá trình đặt hàng thành công.
g. Đăng kí mới (Tạo mới khách hàng ).
Khách hàng muốn tham gia mua hàng phải đăng kí, bao gồm các thông tin do công ty bắt buộc thông qua chương trình, để tiện cho việc quản lý. Các bước đăng kí bao gồm:
XỬ LÝ: Đăng kí mới khách hàng(XLKH07)
Tiếp nhận yêu cầu đăng kí username
Tiếp nhận các thông tin đăng kí của username
Kiểm tra các thông tin này xem có phù hợp không như username, password, email… nếu không phù hợp thì quay lại bước hai của khối xử lý này, ngược lại thì tiếp tục.
Lấy max(member_id)+1 theo member_id trong bảng members để tạo khoá cho khách hàng .
Ghi nhận các thông tin vào cơ sở dữ liệu.
Thông báo quá trình đăng kí thành công.
Tổng kết xử lý
XLKH06
XLKH04
XLKH05
XLKH03
XLKH08
XLKH01
XLKH02
XLKH07
Các xử lý đáp ứng các hoạt động của khách hàng được tổng kết bằng sơ đồ và bảng sau:
Bảng dưới đây sẽ chú thích các khối xử lý
STT
KHỐI XỬ LÝ
MÔ TẢ
1
XLKH01
Tìm kiếm hàng hóa
2
XLKH02
Lựa chọn mặt hàng trong hệ thống
3
XLKH03
Liệt kê danh sách hàng đã chọn
4
XLKH04
Xóa mặt hàng đã chọn
5
XLKH05
Thay đổi số lượng đặt mua của mặt hàng đã chọn
6
XLKH06
Đặt mua các mặt hàng đã chọn
7
XLKH07
Đăng ký thành viên mới
8
XLKH08
Kết thúc mua sắm
3.2. Mô hình cơ sở dữ liệu.
IV. MỘT SỐ GIAO DIỆN CHÍNH CỦA CHƯƠNG TRÌNH
Màn hình trang chủ ứng dụng
Trang đăng ký khách hàng
Trang danh mục hàng hóa
Trang hóa đơn mặt hàng đã chọn
Trang phương thức giao hàng
Trang phương thức thanh toán
Trang thông tin khách hàng đã giao dịch
Trang thông tin đề xuất khách hàng
Trang tìm kiếm
Trang cập nhật thông tin khách hàng
V. MÃ NGUỒN CHƯƠNG TRÌNH
<%
' Change these
dim sqltemp
dim ScancelAction
Dim AllowOtherPayment
Dim AllowCreditCards, AllowInvalidCreditCards
Dim encryptkey
dim strocardissue
dim oid
dim dbc
dim rstemp
Dim strOcardtype
Dim strOcardno
Dim strOcardname
Dim strOcardexpires
Dim strOcardaddress
Dim strOOther
Dim StroMore
Dim StrOAuthorization
dim strOCardCVN
dim sAction
Dim CardTypes(10)
Dim CardCount
Dim OtherTypes(10)
Dim OtherCount
Dim PaymentURL
dim strvalidfrom
dim strocardmm,strocardyy
Dim gateways
'
'*******************************************************
' Specify credit cards, non credit cards and whether credit cards should be checked
'********************************************************
AllowCreditCards=Getconfig("xallowcreditcards") ' Select credit Cards
AllowOtherPayment=Getconfig("xallowotherpayments") ' Other payment types
AllowInvalidCreditCards=Getconfig("xallowinvalidcards") ' validate credit card information
gateways=getconfig("xgateways")
paymenturl=getconfig("xpaymenturl")
EncryptKey=getconfig("xEncryptKey") ' Get encrypt key
Setsess "currenturl","shopcheckout.asp"
setsess "followonurl","shopthanks.asp"
SetSess "PaymentURL",paymentURL
'
cardcount=0
If getconfig("Xcreditcardtypes")"" then
parserecord getconfig("xcreditcardtypes"),cardtypes,cardcount,","
end if
othercount=0
If getconfig("XOtherpaymenttypes")"" then
parserecord getconfig("xotherpaymenttypes"),othertypes,othercount,","
end if
GetOrderInfo ' get orderid
sError=GetSess("PaymentError") ' on return for authorization there may be an error
SetSess "PaymentError","" ' reset
If getconfig("xDisplayPrices")"Yes" then
responseredirect GetSess("followonurl") ' go to shopthanks
end if
sAction=Request.form("Action")
if sAction="" then
sAction=Request.form("Action.x")
end if
sCancelAction=Request.form("Cancel")
if sCancelAction="" then
sCancelAction=Request.form("Cancel.x")
end if
'*****************************************************
' see they pushed button or want form displayed
'***************************************************
If sAction = "" and sCancelaction="" Then
ShopPageHeader ' put out normal header
SetDefaultvalues
DisplayForm() ' credit card form
ShopPagetrailer ' trailer
Else
GetFormFields
ValidateData
if sError = "" Then
UpdateCreditInfo ' add payment to daat base
if paymentURL"" then ' if there is an authorization
responseredirect PaymentURL & "?oid=" & oid
else
responseredirect GetSess("followonurl") ' go to shopthanks
end if
end if
ShopPageHeader
DisplayForm
ShopPageTrailer
end if
'****************************************************
' Put our credit card and non credit card form
'*************************************************
Sub DisplayForm
If SError"" then
shopwriteError sError
end if
Displaygateways
Displaycreditcard
DisplayOtherPayment
Displaycancelbutton
End sub
Sub Displaygateways
Performgateway
If gateways="" Then exit sub
exit sub
dim i, files(10), filecount
parserecord gateways,files, filecount,","
for i = 0 to filecount-1
Executefile files(i)
next
end sub
'
Sub Executefile (filename)
'on error resume next
server.execute(filename)
if err.number>0 then
shopwriteerror err.description
shopwriteerror getlang("langmenufilename") & " " & filename
end if
end sub
'
Sub DisplayCreditcard
If AllowCreditCards"Yes" then exit sub
shopwriteheader getlang("langCheckoutCreditCard")
AddCreditImages
Response.Write("")
Response.Write(tabledef)
dim mm, yy
Response.Write(tableRow & tablecolumn & getlang("langCheckoutCardType") & tablecolumnend &"")
GenerateSelectNV CardTypes,stroCardtype,"StroCardtype", CardCount,getlang("langCommonSelect")
response.write ""
Response.Write(tableRow & tableColumn & getlang("langCheckoutCardNumber") & tablecolumnend & "")
Response.Write(tablerow & tablecolumn & getlang("langCheckoutCardName") & tablecolumnend & "")
Response.Write(tablerow & tablecolumn & getlang("langCheckoutExpiry") & tablecolumnend & "")
mm=generatemm ("strocardmm", strocardmm)
yy=generateyy ("strocardyy", strocardyy)
Response.write (mm & "/" & yy & "")
Response.Write(tablerow & tablecolumn & getlang("langCheckoutAddress") & tablecolumnend & "")
if getconfig("xCVNDisplay")="Yes" then
Response.Write(tablerow & tablecolumn & getlang("langCheckoutCVN") & tablecolumnend & "")
end if
If Getconfig("xcardissuenumber")="Yes" then
Response.Write(tablerow & tablecolumn & getlang("langvalidfromdate") & tablecolumnend & "")
Response.Write(tablerow & tablecolumn & getlang("langcardIssue") & tablecolumnend & "")
end if
Response.Write(tabledefend)
Response.write " "
AddWebSessform
shopbutton Getconfig("xbuttoncontinue"),getlang("langCommonContinue"),"Action"
Response.write ""
end Sub
'
'***************************************************
' Non credit card form
'***************************************************
Sub DisplayOtherPayment
If AllowOtherPayment"Yes" Then exit sub
shopwriteheader getlang("langCheckoutOtherPaymentType")
Response.Write("")
Response.Write(tabledef)
Response.Write(tablerow & tablecolumn & getlang("langCheckoutPaymentType") & tablecolumnend & "")
GenerateSelectNV OtherTypes,stroOther,"StroOther", OtherCount,getlang("langCommonSelect")
response.write ""
Response.Write(tablerow & tablecolumn & getlang("langCheckoutAdditional") & tablecolumnend & "")
Response.Write(tabledefend)
AddWebSessform
Response.write " "
shopbutton Getconfig("xbuttoncontinue"),getlang("langCommonContinue"),"Action"
Response.write ""
end Sub
'
'***************************************************
' Non credit card form
'***************************************************
Sub DisplayCancelButton
Response.Write("")
AddWebSessform
shopbutton Getconfig("xbuttoncancel"),getlang("langCommonCancelorder"),"cancel"
Response.write ""
end Sub
Sub GetorderInfo
' Either comes on querystring or on rentry is in session variables
oid=GetSess("oid")
If oid="" then
Checkvalidorder oid
If oid="" then
shoperror getlang("langSessionlost")
end if
end if
end sub
'
'**********************************************************
' did they select credit card or non credit card
'*********************************************************
Sub ValidateData
' see if user cancelled order
dim rc, action
dim cancelaction
if sCancelaction "" then
DeleteOrders ' delete order from database
shoperror getlang("langCheckoutCancelled")
end if
If stroCardtype=getlang("langCommonSelect") then
stroCardtype=""
end if
if stroOther=getlang("langCommonSelect") then
stroOther=""
end if
If stroOther="" and stroCardType="" then
sError=getlang("langCheckoutError01") & ""
exit sub
end if
If AllowCreditCards="Yes" and stroCardtype"" Then
ValidateCreditCards
exit sub
end if
If AllowOtherPayment="Yes" and stroOther"" Then
ValidateOtherPayment
exit sub
end if
end sub
'
Sub ValidateOtherPayment
' No validate needed we just accept it
end sub
'
Sub ValidateCreditCards
If strOcardtype = "" then
sError = sError & getlang("langCheckoutCardType") & ""
End if
If strOcardno = "" Then
sError = sError & getlang("langCheckoutCardNumber") & ""
end if
If strOcardname = "" Then
sError = sError & getlang("langCheckoutCardName") & ""
End If
If strOcardaddress = "" Then
sError = sError & getlang("langcheckoutaddress") & ""
End If
If getconfig("xCVNRequired")="Yes" and strOCardCVN = "" Then
sError = sError & getlang("langcheckoutCVN") & ""
end if
If Serror"" then
Serror = getlang("langCommonrequired") & "" & Serror
exit sub
end if
VerifyCreditCard
ValidateExpiry
ValidateCVN
ValidateSwitch
End Sub
'
Sub VerifyCreditCard
If AllowInvalidCreditCards="Yes" then
exit sub
end if
ShopValidatecreditcard strocardno, strocardtype, serror
end sub
'***************************************************************************
' add credit card info to order
'**************************************************************************
Sub UpdateCreditInfo
if getconfig("xMYSQL")="Yes" then
MYSQLUpdateCreditInfo
exit sub
end if
dim CVN, newcardno, oauthorization
Dim dbc
dim ucardno
OpenOrderDB dbc
ucardno=strocardno
Encryptkey=Getencryptkey
If getconfig("xEncryptCreditcard")="Yes" and encryptkey"" then
newcardno=EnDecrypt(strocardno, encryptkey)
ucardno=Converttoplain(newcardno)
end if
sqltemp="select * from orders where orderid=" & getsess("oid")
Set rstemp = Server.CreateObject("ADODB.Recordset")
rstemp.open sqltemp, dbc, 1, 3
if strOCardType "" then
' Credit card
updatefield "ocardtype",strocardtype
updatefield "ocardno",ucardno
updatefield "ocardname", strocardname
updatefield "ocardexpires",strocardexpires
updatefield "ocardaddress", strocardaddress
if strOCardCVN"" then
CVN="CVN " & stroCardCVN
Setsess "CVN",strocardcvn
oauthorization=cvn
end if
if strocardissue"" Then
If oauthorization="" Then
oauthorization=getlang("langcardissue") &"=" & strocardissue
else
oauthorization=oauthorization & " " & getlang("langcardissue") &"=" & strocardissue
end if
end if
if strvalidfrom"" then
oauthorization=oauthorization & " " & getlang("langvalidfromdate") &"=" & strvalidfrom
end if
updatefield "oauthorization", oauthorization
else
' Other payment
paymenturl=""
updatefield "ocardtype",stroother
updatefield "ocardname", stromore
end if
rstemp.update
rstemp.close
set rstemp=nothing
ShopcloseDatabase dbc
End Sub
Sub UpdateField (fieldname, fieldvalue)
if fieldvalue="" then
exit sub
end if
if ucase(fieldvalue)="NULL" then
rstemp(Fieldname)=NULL
else
rstemp(Fieldname)=fieldvalue
end if
end sub
Sub DeleteOrders
OpenOrderDB dbc
CancelOrderRecord dbc,oid
shopCloseDatabase dbc
ShopCancelOrder
end sub
'
Sub GetFormFields
strOcardtype = Request.Form("strOcardtype")
strOcardno = Request.Form("strOcardno")
strOcardname = Request.Form("strOcardname")
strOcardmm = Request.Form("strOcardmm")
strOcardyy = Request.Form("strOcardyy")
strocardexpires=strocardmm & "/" & strocardyy
strOcardaddress = Request.Form("strOcardaddress")
StroOther=Request.Form("stroOther")
StroMore=Request.form("StroMore")
stroCardcvn=request.form("strOCardCVN")
stroCardIssue=request.form("strOCardIssue")
strvalidfrom=request.form("strvalidfrom")
End Sub
Sub SetDefaultvalues
'***************************************************************************
' Set default values from session variables
'**************************************************************************
If strocardname"" then exit sub
strocardname=getsess("firstname") & " " & getsess("lastname")
strocardaddress=getsess("address")
end sub
'
Sub addCreditImages
dim images, i,words(10), wordcount
images=getconfig("xcreditcardimages")
if images="" then exit sub
parserecord images, words, wordcount,","
Response.write ""
for i = 0 to wordcount-1
If i >0 then
response.write " "
end if
Response.write ""
next
Response.write ""
end sub
%>
<%
Dim dbc, oid
Dim ssl
dim slash, action, tmpstr, rc
ssl=getconfig("xssl")
if ssl"" then
slash=right(ssl,1)
if slash="/" or slash="\" then
else
ssl=ssl & "/"
end if
end if
if GetSess("CartCount")=0 or GetSess("CartCount")="" then
responseredirect "shoperror.asp?msg=" & Server.URLEncode (getlang("langError01"))
end if
if GetSess("AffID")="" and getconfig("xaffiliateUseCookies")="Yes" then
tmpStr=Request.Cookies("affid")
If tmpStr"" then
SetSess "AffID", tmpStr
ShopOpenOtherDB dbc, getconfig("xAffiliateDB")
UpdateAffiliatelog tmpstr,"","1",dbc
shopclosedatabase dbc
end if
end if
action = request("Cancel")
if action="" then
action=request("cancel.x")
end if
If action"" then
ShopCancelOrder
responseredirect "shoperror.asp?msg=" & Server.URLEncode (getlang("langCheckoutCancelled"))
end if
action = request.form("action")
if action="" then
action = request.form("action.x")
end if
' no action so display final form in this session
SetSess "CurrentURL","shopcreateorder.asp"
if Action="" then
if getconfig("Xbypasscreateorderpage")="Yes" then
dim remove
remove="NO"
CartFormat remove
Savethisorder
else
ShopPageHeader
DisplayForm
ShopPageTrailer
end if
else
SaveThisOrder
end if
Sub SaveThisOrder
ShopAddOrder ' add order to database
oid=GetSess( "orderId")
HandleGiftRegistry
HandleGiftPurchase
HandleGiftCertificate
if Getsess("ordertotal")= 0 then
updatepaymentinfo getlang("langpaymentNone")
responseredirect "shopthanks.asp"
end if
if getconfig("xframes")="Yes" and getconfig("xframessl")"" then
responseredirect getconfig("xframeSSL")
end if
If getconfig("xIncludeOidOnLink")="Yes" then
responseredirect ssl & getconfig("xcheckout") & "?oid=" & oid
else
responseredirect ssl & getconfig("xcheckout")
end if
end sub
'
Sub DisplayForm
dim url
If Getconfig("xgiftregistry")="Yes" and getsess(REGISTRANTID)"" Then
DisplayGiftregForm
exit sub
end if
if getconfig("xFrames")="Yes" then
response.write ""
end if
shopwriteheader getlang("LangCreate01")
shopwriteheader getlang("LangCreate02")
If getconfig("xssl")"" Then
shopwriteheader getLang("langCreate03")
end if
response.write ""
response.write ""
shopbutton Getconfig("xbuttoncontinue"),getlang("langCommonOrderNow"),"action"
dim remove
remove="NO"
CartFormat remove
%>
">
<%
response.write ""
shopbutton Getconfig("xbuttoncancel"),getlang("langCommonCancelOrder"),"cancel"
response.write " "
shopbutton getconfig("xbuttoncontinue"),getlang("langCommonOrderNow"),"action"
addwebSessForm
response.write ""
if getconfig("xAllowOrderReview")="Yes" Then
url="shopmailform.asp"
url=addwebsess(url)
response.write "" & getlang("langCreate05") & ""
End if
if getconfig("xAllowSaveCart")="Yes" Then
response.write ""
url="shopsavecart.asp"
url=addwebsess(url)
response.write "" & getlang("langSaveCart") & ""
End if
if getconfig("xWishlist")="Yes" Then
url="shopsaveperm.asp"
url=addwebsess(url)
Response.write "" & "" & getlang("langwishlist") & "" & ""
End if
End Sub
'
Sub UpdatepaymentInfo (paymenttype)
Dim rstemp
OpenOrderDB dbc
Dim sqltemp
sqltemp="update orders set ocardtype='" & paymenttype &"'" & " where orderid=" & getsess("oid")
dbc.execute(sqltemp)
ShopcloseDatabase dbc
end sub
Sub HandleGiftCertificate
dim certificate, amountused, msg
if getconfig("xGiftCertificates")"Yes" then exit sub
Certificate=Getsess("Giftcertificate")
If certificate="" then exit sub
amountused=Getsess("giftamountused")
msg=""
If amountUsed"" then
GiftDecrementAmountUsed certificate,amountused,msg
If msg"" then
Shoperror msg
end if
end if
if Getsess("ordertotal")= 0 then
UpdatepaymentInfo getlang("langgiftcertificate")
responseredirect "shopthanks.asp"
end if
end sub
Sub HandleGiftPurchase
' has someone purchased a gift certificate
if getconfig("xGiftCertificates")"Yes" then exit sub
If Getsess("Giftcount")="" then exit sub
GiftAddtoDatabase ' add to Gift table
oid=GetSess("orderId")
SetSess "Giftid",oid
end sub
Sub HandleGiftRegistry
If getconfig("xgiftregistry")"Yes" then exit sub
If GetSess(REGISTRANTID) "" then
ProcessGiftRegistry oid 'in shopgiftregsubs
Setsess "ordertotal",0
responseredirect "shopthanks.asp"
Else
If GetSess(REGISTRY) "" Then
debugwrite "updating registry"
UpdateRegistry oid 'in shopgiftregsubs
End If
end if
end sub
'
Sub DisplayGiftRegForm
Response.write Largeinfofont
Response.write ""
%>
<%
addwebsessform
If Getconfig("xbuttonGiftRegistry")="" Then
Response.Write("")
else
Response.Write("")
end if
dim remove
remove="NO"
Setsess "smprice",0
CartFormat remove
response.write ""
if getconfig("xAllowSaveCart")="Yes" Then
%>
<%
End if
response.write " "
end sub
%>
<%
'*******************************************************
' Version 5.50 Sept 1, 2004
' Handles customer login
'*******************************************************
dim dbc, url
dim forwardURL
initializesystem
dim strpassword, returnurl
strPassword=Request("strPassword")
stremail=request("stremail")
strLastname = Request.Form("strLastname")
' hacker fix
strlastname=replace(strlastname, "=","")
strpassword=replace(strpassword,"=","")
stremail=replace(stremail,"=","")
stremail=replace(stremail,"'","''")
strpassword=replace(strpassword,"'","")
'
returnurl=request("returnurl")
If strLastname = "" Then
If getconfig("xPasswordLastname")="Yes" or getconfig("Xpassword")="No" then
sError = sError & getlang("langLoginLastname") & ""
end if
End If
if strEmail="" then
sError = sError & getlang("langLoginEmail") & ""
end if
If ucase(getconfig("xpassword"))="YES" then
if strPassword="" then
sError = sError & getlang("langLoginPassword") & ""
end if
end if
If Serror="" then
RetrieveLoginData
else
Serror= getlang("langCommonRequired") & "" & Serror
end if
setsess "Loginerror",Serror
Setupreturnurl url
responseredirect url
Sub RetrieveLogindata
Dim fieldvalue
If GetSess("Login")="" then
SetSess "Login","Force"
end if
LocateCustomer strLastName, stremail , strpassword
If strCustomerID "" then
LngLoginCount=lngLoginCount+1
UpdateCustomerSessionData
UpdateLoginData
SetSess "Login",strlastname
Else
SError = SError & getlang("langLoginLocateFail")
SetSess "Login", ""
' debugwrite "Not found"
end if
ShopCloseDatabase dbc
set rs=nothing
end sub
Sub UpdateLoginData
Dim dbc
'on error resume next
OpenCustomerDB dbc
'response.write "Login count" & lngLoginCount
sql = "update customers set "
sql = sql & "logincount=" & lnglogincount
'sql = sql & ",lastlogindate='" & date() & "'"
sql = sql & ",lastlogindate=" & datedelimit(date() )
sql = sql & " where contactid=" & strcustomerid
dbc.execute(sql)
ShopCloseDatabase dbc
end sub
'*****************************************************************
' determine where to go to
'*****************************************************************
Sub SetupReturnurl (url)
if returnurl"" then
if Serror="" then
url=returnurl
exit sub
else
url="shopcustadminlogin.asp"
end if
exit sub
end if
If Getsess("Followonurl")="" and getsess("Currenturl")="" then
If Serror="" then
url=getconfig("xhome")
else
url="shopcustadminlogin.asp"
end if
exit sub
end if
If Serror="" then
url=GetSess("FollowonURL")
else
url=getSess("CurrentURL")
end if
end sub
KẾT LUẬN
Ngày nay, internet ngày càng trở nên cần thiết cho cuộc sống, đặc biệt trong lĩnh vực kinh doanh. Thương mại điện tử hiện đang là ngành kinh tế thu lợi nhuận cao của nhiều nước trên thế giới. mặc dù vậy, nước ta lại chưa phát triển loại hình này do các điều kiện khách quan. tuy nhiên, sớm hay muộn thì chắc chắn cũng phải có phần đáp ứng được nhu cầu của khách hàng và nhà thương mại. vì buôn bán là một hoạt động không thể thiếu trong đời sống hiện nay, và cũng nhờ sự phát triển của thương mại điện tử mà các nhà thương mại có cơ hội quảng cáo sản phẩm của mình rộng rãi hơn.
Víi đề tài:“Xây dựng website bán hàng trực tuyến tại Tổng công ty Thương mại Hà Nội” nhằm làm quen với thương mại điện tử và bắt kịp sự phát triển của nước ta cũng như thế giới. Ứng dụng cũng đã triển khai được phần lớn các yêu cầu chính mà một ứng dụng thương mại điện tử cần đáp ứng.
Do thời gian hạn chế, việc tìm hiểu và xây dựng một ứng dụng trên công nghệ ASP đối với em còn gặp nhiều khó khăn, chắc chắn Đề tài sẽ có thiếu sót, em rất mong có sự góp ý của các thầy, cô và các bạn để em có thể hoàn thiện đề tài trong tương lai được tốt hơn.
TÀI LIỆU THAM KHẢO
1. “Phân tích thiết kế hệ thống thông tin quản lý”, Thạc sĩ Đinh Thế Hiển, NXB Thống Kê.
2. Bài giảng cơ sở dữ liệu & phân tích và thiết kế hệ thống thông tin quản lý, Ths Nguyễn Hữu Trọng
3.Giáo trình :Hệ thống thông tin ,TS.Trương Văn Tú – TS.Trần Thị Song Minh , NXB Thống kê
4. “Active Server Pages ASP 3.0 ASP.NET ”, Nguyễn Phương Lan, NXB Giáo Dục.
5. Bài giảng cơ sở dữ liệu 1, Ths. Nguyễn Đức Thuần
6.Lập trình visual basic 6.0 và cơ sở dữ liệu.: Nguyễn Ngọc Mai
7. How to buid a e-commercial application , J.J Thompson , McgrallHill -2000
8.ASP 3.0 NXB Microsoft Corporation
MỤC LỤC
Các file đính kèm theo tài liệu này:
- P0088.doc