Đồ á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

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.

doc117 trang | Chia sẻ: oanh_nt | Lượt xem: 1484 | Lượt tải: 0download
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:

  • docP0088.doc