Chính vì điều này chúng em đã xây dựng một hệ thống TMĐT dựa trên công nghệ mã nguồn mở PHP cùng với công cụ Drupal để thực hiện đề tài “Tìm hiểu Drupal và Xây dựng trang website bán lin
Trang 1Tiểu luận Cử Nhân Khoa Học Tin Học
Người hướng dẫn khoa học:
Cô LÊ THỊ NGỌC THẢO
THÀNH PHỐ HỒ CHÍ MINH 2008
Trang 2Lời Cám Ơn -♣♣♣ -
Chúng em xin chân thành cảm ơn Khoa Công Nghệ Thông Tin, trường Đại Học Tôn Đức Thắng, TPHCM đã tạo điều tốt cho chúng em thực hiện đề tài tốt nghiệp này
Chúng em xin gửi đến tất cả các thầy cô trong Khoa CNTT-TƯD, trường Đại Học Tôn Đức Thắng, TPHCM lòng biết ơn sâu sắc về những gì thầy cô đã dành cho chúng em trong suốt thời gian qua
Và hơn hết, chúng em xin chân thành cám ơn Cô Lê Thị Ngọc Thảo, người
đã tận tình hướng dẫn, giúp đỡ cho chúng em rất nhiều về mặt kiến thức cũng như ủng hộ động viên về mặt tinh thần trong suốt thời gian thực hiện đề tài
Chúng em xin gửi lòng biết ơn sâu sắc đến ba mẹ, các anh chị và bạn bè đã ủng hộ, giúp đỡ và động viên chúng em trong suốt thời gian học tập và nghiên cứu
Mặc dù chúng em đã cố hoàn thành đề tài tốt nghiệp trong phạm vi và khả năng cho phép, nhưng chắc chắn sẽ không tránh khỏi những thiếu sót, kính mong sự cảm thông và góp ý của quý Thầy Cô và các bạn
Nhóm sinh viên thực hiện Trương Quốc Hưng 810863T Nguyễn Thị Thanh Thảo 810982T
Trang 3
Trang 4
Trang 5
Lời Mở Đầu
-♣♣♣ -
Hiện nay, chúng ta đang sống trong thời đại khoa học công nghệ phát triển cao Với sự phát triển nhanh chóng của công nghệ, nhất là công nghệ thông tin đã hình thành nên Thương Mại Điện Tử (TMĐT) Sự phát triển của TMĐT đã làm thay đổi cách thức mua bán, giao dịch truyền thống giữa khách hàng và nhà cung cấp
TMĐT không chỉ đem lại các lợi ích to lớn cho các nhà doanh nghiệp như giúp công ty mở rộng thị trường (trong và ngoài nước), nhanh chóng tăng thêm được lượng khách hàng, quảng cáo công ty, cải tiến và đơn giản hóa các quy trình mua bán, dễ dàng cập nhật thông tin, tăng khả năng đáp ứng cho khách hàng cũng như tăng lợi nhuận hàng năm cho công ty Mặt khác, TMĐT còn tạo cho khách hàng khả năng lựa chọn các nhà cung cấp khác nhau, cũng như thị trường khác nhau
về một loại sản phẩm mà họ quan tâm như giá cả, mẫu mã, dịch vụ và thực hiện các giao dịch trên mạng, 24/24 giờ tất cả các ngày trong tuần
Mặc dù, TMĐT rất phổ biến trên thế giới nhưng tại Việt Nam thì chưa vì hầu hết các doanh nghiệp vừa và nhỏ còn chưa có đầu tư thích đáng cho việc phát triển Website Thương Mại Điện Tử Thêm vào đó, các chi phí bản quyền cho các công
cụ mã nguồn đóng thì khá cao Qua nhận định nói trên, chúng ta thấy rằng Việt Nam vẫn chưa thật sự ứng dụng TMĐT vào trong cuộc sống, nếu có thì cũng còn rất nhiều mặt hạn chế Do vậy, việc tìm hiểu và khai thác thế mạnh của TMĐT ở Việt Nam là điều cần thiết Chính vì điều này chúng em đã xây dựng một hệ thống TMĐT dựa trên công nghệ mã nguồn mở PHP cùng với công cụ Drupal để thực
hiện đề tài “Tìm hiểu Drupal và Xây dựng trang website bán linh kiện máy tính”
nhằm mục đích tạo ra một website cung cấp cho người dùng các thông tin xác thực
và chi tiết một cách nhanh chóng trong môi trường mạng và tạo khả năng chuyên môn hóa cao trong kinh doanh
Trang 6Nội dung tiểu luận: gồm có 5 chương
Chương 1: Giới thiệu về CMS, công cụ Drupal và thương mại điện tử: là
chương đầu, trình bày các kiến thức về CMS, mã nguồn mở Drupal và thương mại
điện tử
Chương 2: Yêu cầu thực tế và mục tiêu đặt ra : giới thiệu về nhu cầu thực tế
và l ý do thực hiện đề tài, đồng thời giới thiệu sơ lược về đề tài và mục tiêu phải đạt được
Chương 3: Phân tích và Thiết kế hệ thống: trình bày các phân tích và thiết kế
Trang 7MỤC LỤC
Lời Cám Ơn 2
Lời Mở Đầu 5
Danh mục các hình 10
CHƯƠNG 1 GIỚI THIỆU VỀ CMS, CÔNG CỤ DRUPAL VÀ THƯƠNG MẠI ĐIỆN TỬ 11
1.1 Tổng quan về CMS 11
1.1.1 CMS là gì? 11
1.1.2 Các thành phần của CMS 11
1.1.3 Các tính năng của CMS nói chung 12
1.2 Tổng quan về Drupal 13
1.2.1 Lịch sử phát triển của Drupal 13
1.2.2 Drupal là gì? 14
1.2.3 Nhiệm vụ của Drupal 15
1.2.4 Các nguyên tắc 15
1.3 Các đặc tính của Drupal 16
1.3.1 Các đặc tính chung 16
1.3.2 Quản lý người dùng (User Management) 17
1.3.3 Quản lý nội dung (Content Management) 17
1.3.4 Đặc tính cộng đồng 17
1.3.5 Sự hiện thực và tính biến đổi được 18
1.4 Các thành phần chính trong Drupal 18
1.4.1 Kỹ thuật phân tầng trong Drupal (Technology Stack) 18
1.4.2 Nhân (Core ) 20
1.4.3 Các Module 21
1.4.4 Hooks 22
1.4.5 Các Theme giao diện (Themes) 23
1.4.6 Nodes 24
1.4.7 Blocks 25
1.4.8 CCK (Content Construction Kit) 26
1.4.9 Views 31
1.5 Thương mại điện tử (E-Commerce) 34
1.6 Thương mại điện tử và lợi ích cho doanh nghiệp 35
1.7 Các bước triển khai thương mại điện tử 36
CHƯƠNG 2GIỚI THIỆU 37
2.1 Yêu cầu thực tế và lý do thực hiện đề tài 37
2.1.1 Yêu cầu thực tế 37
2.1.2 Lý do thực hiện đề tài 38
2.2 Mục Tiêu Đề Ra 39
2.2.1 Về mặt lý thuyết 39
2.2.2 Về mặt ứng dụng 39
CHƯƠNG 3 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 40
3.1 Phân tích thực tế 40
3.1.1 Yêu cầu thực tế 40
Trang 83.1.2 Bản đặc tả Website 40
3.2 Đặc tả Use-case 42
3.2.1 Sơ đồ Use-case 42
3.2.2 Phân tích Actor 43
3.3 Phân tích Use-case 44
3.3.1 Đăng ký tài khoản 44
3.3.3 Quản lý thông tin cá nhân 49
3.3.4 Tìm kiếm sản phẩm 50
3.3.5 Xem chi tiết sản phẩm: 52
3.3.6 Đặt hàng 53
3.3.7 Đánh giá sản phẩm 54
3.3.8 Bình luận 55
3.3.9 Gửi câu hỏi và trả lời câu hỏi 56
3.3.10 Mua hàng trực tuyến 57
3.3.11 Quản lý bài bình luận 58
3.3.12 Quản lý thông tin sản phẩm 59
3.3.13 Quản lý thông tin đơn đặt hàng 60
3.3.14 Quản lý thông tin khuyến mãi 61
3.3.15 Báo cáo thống kê 62
3.3.16 Quản lý tài khoản 63
3.3.17 Thay đổi giao diện 64
3.4 Thiết kế cơ sở dữ liệu 65
3.4.1 Mô hình cơ sở dữ liệu 65
3.4.2 Mô tả chi tiết từng thành phần 66
CHƯƠNG 4 HIỆN THỰC 72
4.1 Hiện thực Use-case theo Module 74
4.1.1 Các Module tích hợp sẵn của Drupal ( bộ Core) 74
4.1.2 Các Module thêm vào ( add-on) 74
4.1.3 Các Module mới được xây dựng thêm 77
4.2 Hiện thực cơ sở dữ liệu 79
4.2.1 Bảng Product 79
4.2.2 Bảng Product_Type 80
4.2.3 Bảng Product_detail 80
4.2.4 Bảng khuyến mãi ( tặng hàng và giảm giá ) 80
4.2.5 Đơn đặt hàng (Order) 80
4.2.6 Chi tiết đơn đặt hàng 81
4.2.7 Hóa đơn 81
4.2.8 Thành viên 81
4.2.9 Bảng tài khoản 82
4.2.10 Bảng bình luận (comment) và bảng câu hỏi 82
4.2.11.Giỏ hàng (Cart) 83
4.3 Mô hình màn hình phối hợp 84
4.3.1 Use-case đăng ký 84
4.3.2 Use-case đăng nhập 84
4.3.3 Use-case xem thông tin hàng 84
Trang 94.3.4 Use-case Tìm Kiếm 84
4.3.5 Use-case tạo sản phẩm 85
4.3.6 Use-case đặt hàng 85
4.3.7 Use-case Khuyến mãi 85
4.3.8 Use-case Quản trị 86
4.3.8.1 Quản trị nội dung 86
4.3.8.2 Quản trị bài bình luận 86
4.4 Màn hình của trang Web 88
CHƯƠNG 5 TỔNG KẾT 95
5.1 Tổng kết 95
5.1.1 Về mặt lý thuyết 95
5.1.2 Về mặt ứng dụng 95
5.2 So sánh và đánh giá 96
5.2.1 So sánh 96
5.2.2 Đánh giá 96
5.3 Hướng phát triển 97
5.3.1 Đối với các dịch vụ dành cho khách hàng 97
5.3.2 Đối với các dịch vụ dành cho doanh nghiệp 97
PHỤ LỤC 98
Hướng dẫn cài đặt XAMPP và Drupal 98
Cách cài đặt XAMPP 98
Cách cài đặt website bán linh kiện máy tính 105
Trang 10Danh mục các hình
Hình 1.4.1 Kỹ thuật phân tầng của Drupal 18
Hình 1.4.2 Tổng quan Nhân Drupal 20
Hình 1.4.3 Sự cho phép các module bổ sung giúp cho việc mở rộng các tính năng21 Hình 1.4.5 Một số trường trong CCK 29
Hình 1.4.6 Một số thứ tự cho các field sẽ làm việc 30
Hình 3.2.1 Sơ đồ Use-case 42
Hình 3.3.1 Đăng ký thành công 45
Hình 3.3.2 Đăng ký thất bại do tài khoản đã tồn tại 46
Hình 3.3.3 Đăng ký thất bại do sai thông tin quy cách 46
Hình 3.3.4 Đăng nhập thành công 47
Hình 3.3.5 Đăng nhập thất bại 48
Hình 3.3.6 Chỉnh sửa thông tin cá nhân 49
Hình 3.3.7 Tìm kiếm sản phẩm theo tên 50
Hình 3.3.8 Tìm kiếm sản phẩm theo nhà cung cấp 51
Hình 3.3.9 Tìm kiếm sản phẩm theo giá 51
Hình 3.3.10 Xem chi tiết thông tin sản phẩm 52
Hình 3.3.11 Đặt hàng 53
Hình 3.3.12 Đánh giá sản phẩm 54
Hình 3.3.13 Bình luận 55
Hình 3.3.14 Gửi câu hỏi 56
Hình 3.3.15 Mua hàng trực tuyến 57
Hình 3.3.16 Quản lý bài bình luận 58
Hình 3.3.17 Quản lý thông tin sản phẩm 59
Hình 3.3.18 Quản lý thông tin đặt hàng 60
Hình 3.3.19 Quản lý thông tin khuyến mãi 61
Hình 3.3.20 Báo cáo thống kê 62
Hình 3.3.21 Quản lý tài khoản 63
Hình 3.3.22 Thay đổi giao diện 64
Hình 3.4.1 Mô hình cơ sở dữ liệu 65
Hình 4.3.1 Trang quản trị nội dung 86
Hình 4.3.2 Trang quản trị bình luận 86
Hình 4.4.1 Trang chủ 88
Hình 4.4.2 Trang đăng ký 89
Hình 4.4.3 Đăng ký thất bại 89
Hình 4.4.4 Trang đăng nhập và thông báo đăng nhập thất bại 90
Hình 4.4.5 Trang chi tiết sản phẩm, bình chọn và bình luận 90
Hình 4.4.6 Trang tìm kiếm 91
Hình 4.4.7 Trang kết quả tìm kiếm 91
Hình 4.4.8 Trang tạo sản phẩm 92
Hình 4.4.9 Trang giỏ hàng 92
Hình 4.4.10 Trang tạo địa chỉ giao hàng 93
Hình 4.4.11 Trang chọn địa chỉ nơi nhận hàng và thanh toán 93
Hình 4.4.12 Trang thông tin khuyến mãi 94
Hình 4.4.13 Trang tạo khuyến mãi 94
Trang 11CHƯƠNG 1 GIỚI THIỆU VỀ CMS, CÔNG CỤ DRUPAL VÀ THƯƠNG MẠI ĐIỆN TỬ
Trong đó nội dung có thể là:
Thông tin (information) – ví dụ như các ảnh (image) và các đoạn văn bản (text) – mà ta thấy trên các website khi truy cập chúng
Các ứng dụng (application) hay phần mềm (software) chạy trên các Server để hiển thị thông tin trên các Website
1.1.2 Các thành phần của CMS
CMA (Content Management Application): Ứng dụng quản lý nội dung
CMA quản lý vòng đời đầy đủ của các thành phần nội dung, từ khi bắt đầu đến khi xóa bỏ chúng CMA có các chức năng sau: Approval, Design, Authorizing, Editing, Layout, Testing, Staging, Deployment, Maintenance, Archival, Removal
MMA (Metacontent Management Application): Mục tiêu của siêu dữ liệu
là cung cấp giao diện (interface) đơn giản, ổn định, thân thiện với người dùng cho một Website Vì thế dù là Website có hỗ trợ hoặc có chứa các thành phần như hình ảnh, âm thanh, video, hay form thì MMA chỉ là sự kết hợp của các thành phần: Templates, Scripts, Programs, Runtime Dependencies
CDA (Content Delivery Application): Công việc của ứng dụng phân phối
nội dung CDA là đưa các thực thể nội dung ra ngoài hệ thống nơi lưu trữ của
Trang 12“Quản trị nội dung” và hiển thị chúng bằng cách sử dụng hệ thống MMA ra trang web
Cấu trúc của một CMS
1.1.3 Các tính năng của CMS nói chung
Chuẩn giao diện cho việc tạo, chỉnh sửa, phê duyệt, triển khai (Creating, Editing, Approving, Deploying)
Kho lưu trữ chung (Common Repository)
Quản lý phiên bản, lưu vết và quay lui (Version Control, Tracking, Rollback)
Luồng công việc (WorkFlow)
Tạo trang động (Dynamic Page Generation)
Cá nhân hóa (Personalization)
Quản lý Cache (Cache Management)
Chuyển đổi nội dung (Content Conversion)
Tích hợp tìm kiếm (Search Integration)
Giám sát, phân tích, báo cáo nội dung
Trang 131.2 Tổng quan về Drupal
Drupal là một nền tảng quản lý nội dung nguồn mở (CMS – Control Management System) Được trang bị với sự kết hợp sức mạnh của các tính năng, Drupal có thể hỗ trợ nhiều thể loại và phạm vi website lớn như các trang blog cá nhân, những trang web lớn có các liên kết và các website lớn về điều khiển cộng đồng
Drupal là mạng - hệ thống quản lý nội dung cơ sở Văn bản và những con trỏ trỏ tới những loại nội dung khác được lưu trữ trong cơ sở dữ liệu, tự động được khôi phục và biên soạn, và giới thiệu đến người dùng trong cơ chế đáp lại một yêu cầu được gửi thông qua trình duyệt web (web-browser)
Drupal cũng là một khung quản lý nội dung (CMF – Content Management Framework)
1.2.1 Lịch sử phát triển của Drupal
Vào năm 2000, do có những kết nối Internet thường xuyên tại trường Đại học Antwerp, vì vậy Dries Buytaert và Hans Snijder thiết lập một mạng bắc cầu không dây giữa tập thể sinh viên của họ để chia sẻ kết nối modem Hans’ ADSL giữa tám sinh viên Trong khi đây là một tình trạng vô cùng xa hoa trong thời gian
ấy, một số thứ không có sẵn như là: Không có phương tiện để bàn luận hoặc chia sẻ các thứ đơn giản
Việc này cho phép các nhóm của những người bạn Dries có thể để lại trạng thái của mạng, cho biết nơi họ đang ăn tối hoặc chia sẽ vài tiết mục đáng nhớ
Phần mềm chưa có một cái tên cho đến ngày Dries chuyển nhà đi sau khi tốt nghiệp Nhóm quyết định sử dụng một website trực tuyến nội bộ để có thể liên lạc
và chia sẻ các khám phá thú vị và kể lại những mẩu truyện nhỏ về cuộc sống cá nhân của họ Trong khi tìm kiếm một tên miền thích hợp, Dries đã đăng ký tên miền
‘drop.org’ sau khi anh đánh sai tên và anh nhận ra rằng ‘dorp.org’ vẫn còn giá trị
Dorp là một từ Hà Lan dùng để chỉ về một “ngôi làng”, được xem như tên một cộng đồng nhỏ
Khi drop.org được thiết lập trên Web, thính giả của nó thay đổi những thành
viên và bắt đầu nói về các công nghệ Web mới, chẳng hạn như sự điều chỉnh, sự
Trang 14phân loại và chứng thực phân tán Drop.org dần dần trở thành một môi trường tăng thêm kinh nghiệm cá nhân, được điều khiển bởi những buổi thảo luận và những dòng ý tưởng Những buổi thảo luận về các công nghệ web được thử trên chính
drop.org như là một phần mềm bổ sung chạy trên site
Tháng 1 năm 2001, Dries quyết định đưa ra phiên bản phần mềm là Drupal
trên trang drop.org – Drupal trở thành công trình nguồn mở Mục đích của nó là
cho phép những người khác sử dụng và mở rộng dựa trên những cái đã có để có thể tìm ra những hướng phát triển mới cho Drupal Tên Drupal được phát âm là “Droo - puhl”; trong tiếng Anh, được chuyển từ từ “Druppel” của tiếng Hà Lan, nghĩa là
“giọt nước”
Từ tháng 5/2006 đến tháng 4/2007, mã nguồn Drupal đã được tải từ website
drupal.org hơn 600,000 lần Hiện nay, có một cộng đồng lớn đang giúp đỡ phát
cố gắng làm cho đoạn code rõ ràng hơn Drupal được thiết kế để tùy chỉnh, nhưng
sự tùy chỉnh này chỉ mang tính chất kế thừa và mở rộng các module đã có sẵn, hoặc
là thêm vào các module mới, không chỉnh sửa trong nhân của Drupal Nó cũng thành công trong việc tách riêng việc quản lý nội dung và việc biểu diễn nội dung
Drupal có thể được sử dụng để xây dựng cổng thông tin; một web site cá nhân, văn phòng hay tập đoàn; một web site thương mại điện tử; … Thậm chí, nó còn được sử dụng để dạy học từ xa Một nhóm bảo mật Drupal sẽ thiết lập việc bảo mật Drupal bằng cách phản ứng lại các mối đe dọa và đưa ra các bản cập nhật bảo mật Và một cộng đồng trực tuyến lớn mạnh của những người sử dụng, những người quản trị, những người thiết kế, và những người phát triển web làm việc liên tục để cải thiện phần mềm ở trên trang http://drupal.org và http://groups.drupal.org
Trang 151.2.3 Nhiệm vụ của Drupal
Do việc xây dựng dựa trên các tiêu chuẩn và các công nghệ nguồn mở nên Drupal hỗ trợ và tăng cường tiềm năng của Internet như là một môi trường đa dạng
và có tính cục bộ - các cá nhân và các nhóm được phân ra có thể cùng đưa ra và chia sẻ thông tin hay những ý tưởng để cùng thảo luận Với những sở thích chung
và tập trung vào tính cộng đồng và tính cộng tác, tính linh hoạt của Drupal cho phép các sản phẩm mang tính hợp tác có thể đưa thông tin lên mạng
1.2.4 Các nguyên tắc
Modular and extensible (Theo dạng hướng module và khả năng mở
rộng): Mục tiêu của Drupal là cung cấp một nhân gọn và rất mạnh để có thể sẵn
sàng cho việc mở rộng thông qua các module tùy biến
Quality coding (Sự mã hóa chất lượng): Những đoạn mã chất lượng cao, dễ
nhìn và được lưu dưới dạng văn bản được ưu tiên trong việc lập ra các hàm
Standards-based (Dựa trên các tiêu chuẩn): Drupal hỗ trợ việc thiết lập và
việc nảy sinh các chuẩn Những tiêu chuẩn đặc biệt bao gồm XHTML và CSS
Low resource demands (Các yêu cầu về tài nguyên thì ít): Để đảm bảo cho
hiệu suất được tối đa, Drupal thiết lập các các tối ưu cho việc viết code (chẳng hạn như: giảm tối thiểu các câu truy vấn cơ sở dữ liệu) Drupal cung cấp các yêu cầu về phần mềm tối thiểu nhất về phía server Đặc biệt, Drupal cần phải thao tác hoàn toàn trên một server với web server là Apache có hỗ trợ PHP và cơ sở dữ liệu MySQL hay PostgreSQL
Open source (Nguồn mở): Drupal thì dựa vào triết học nguồn mở của sự
phát triển phần mềm tự do cộng tác và được cho phép bởi GPL Drupal chính nó là nguồn mở và nó tiếp tục xây dựng và hỗ trợ những dự án nguồn mở khác Drupal được viết bằng ngôn ngữ PHP và hỗ trợ nguồn dữ liệu chính của cơ sở dữ liệu nguồn mở theo định dạng MySQL và PostgreSQL
Ease of use (Đơn giản cách sử dụng): Drupal nhắm vào các tiêu chuẩn cao của tính khả dụng cho những người phát triển, người quản trị và người dùng
Collaboration (Sự cộng tác): Sự phát triển Drupal hỗ trợ những hệ thống và
những cách tiếp cận chia sẻ thông tin mở và cộng tác
Trang 161.3 Các đặc tính của Drupal
1.3.1 Các đặc tính chung
- Collaborative Book (đặc tính viết sách cộng tác) – Đây là đặc tính duy nhất cho
phép bạn tạo một “cuốn sách” và cho phép các cá nhân khác cùng hợp tác xây dựng nội dung
- Friendly URLs (những đường link thân thiện) – Drupal sử dụng hàm
mode_rewrite() của Apache cho phép tùy chọn URLs (Uniform Resource Locator –
là địa chỉ của một đối tượng) và điều đó sẽ giúp cho người dùng và tất cả các phương thức tìm kiếm thân thiện hơn
- Module – Cộng đồng Drupal đã đóng góp nhiều module mà nó cung cấp tính năng
mở rộng cho nhân Drupal
- Online help – Như một số dự án mã nguồn mở, chúng ta không thể nói rằng sự
giúp đỡ trực tuyến của chúng ta hoàn hảo nhưng đã tạo nên một hệ thống giúp đỡ trực tuyến mạnh được xây dựng bên trong dựa vào những tài liệu giúp đỡ gốc, sẵn
có trên site của bạn
- Open source – Mã nguồn mở của Drupal thì tùy thích sẵn có dưới thời hạn của
GNU General Public License 2 (GPL) Không giống Blogging cá nhân hay những
hệ thống quản lý nội dung, tập hợp đặc tính của Drupal thì sẵn có hoàn toàn có thể
mở rộng hoặc điều chỉnh tùy ý khi cần
- Personalization (cá nhân hóa) – Một môi trường cá nhân hóa mạnh mẽ ở nhân
Drupal Cả nội dung lẫn hình thức có thể được cá nhân hóa dựa vào những sự ưu tiên do người dùng quy định
- Role based permission system (Quản lý người dùng dựa trên vai trò) – Những
người quản trị Drupal không phải thực hiện lặp đi lăp lại công việc thiết lập quyền cho mỗi người dùng Thay vào đó, họ sẽ gán quyền cho những vai trò và sau đó nhóm những người dùng vào trong một nhóm vai trò mới cho phù hợp với nhu cầu
Mặc định, Drupal xây dựng sẵn 3 vai trò (không thể sửa/xóa):
admin: một vai trò trừu tượng, không hiển thị ra giao diện hệ thống chỉ có
một người dùng có vai trò admin - người điều hành site, có đầy đủ quyền sử dụng mọi chức năng trên hệ thống
Trang 17 authenticated: người sử dụng đã ghi danh và đã đăng nhập vào hệ thống
- Searching (Tìm kiếm) – Tất cả các nội dung trong Drupal hoàn toàn được chỉ số
hóa và có khả năng tìm kiếm bất cứ lúc nào nếu bạn sử dụng module Tìm kiếm
1.3.2 Quản lý người dùng (User Management)
- User authentication (sự chứng thực người dùng) – Người dùng có thể đăng ký và
xác nhận cục bộ hay sử dụng một nguồn chứng thực bên ngoài như OpenID hoặc website Drupal khác Để dùng trên một mạng nội bộ, Drupal có thể kết hợp với một LDAP server (Lightweight Directory Access Protocol – Giao thức truy nhập thư mục nhanh)
1.3.3 Quản lý nội dung (Content Management)
- Polls – Drupal hình thành một mô hình (module) kiểm tra tuần tự cho phép người
quản trị hay người dùng tạo ra những kiểm tra tuần tự và hiển thị chúng trên nhiều trang khác nhau
- Templating – Hệ thống đề tài (theme) của Drupal có thể tách biệt nội dung và sự
biểu diễn, điều này cho phép bạn điều khiển được vẻ ngoài của site Drupal của bạn Những khuôn mẫu (template) được tạo ra từ các đoạn mã HTML hay PHP chuẩn,
điều này có nghĩa là bạn không phải học một ngôn ngữ templating riêng nào khác
- Threaded comments – Drupal cung cấp một mô hình (module) bình luận mạnh để
cho phép thảo luận trên nội dung đã được xuất bản Những bình luận thì có thứ bậc trong một nhóm thảo luận hay diễn đàn
- Version control – Hệ thống điều khiển phiên bản của Drupal sẽ ghi nhận lại
những chi tiết nội dung cập nhật bao gồm người thay đổi, cái gì được thay đổi, ngày tháng và thời gian của những sự thay đổi trong nội dung của bạn và nhiều hơn nữa Những đặc tính điều khiển phiên bản (Version control) cung cấp một tùy chọn để giữ một bản ghi bình luận và cho phép bạn quay lại với những phiên bản cũ hơn
1.3.4 Đặc tính cộng đồng
- Discussion forums – Những đặc tính đầy đủ của một diễn đàn được xây dựng sẵn
trong Drupal tạo ra các vị trí cộng đồng sống động
Trang 181.3.5 Sự hiện thực và tính biến đổi được
- Caching – Cơ chế đệm làm giảm thiểu và tăng tốc độ thực hiện các câu truy vấn
cơ sở dữ liệu và giảm thiểu sự truyền tải của server Caching không chỉ có thể điều chỉnh thời gian thực, trong khi site của bạn đang được truyền tải, mà nó còn được kiểm tra thành công dưới một “slashdotting” và được thực hiện cực kỳ tốt
1.4 Các thành phần chính trong Drupal
1.4.1 Kỹ thuật phân tầng trong Drupal (Technology Stack)
Các mục đích của việc thiết kế Drupal là bao gồm cả việc nó không chỉ có thể hoạt động tốt trên những tài khoản hosting mạng giá rẻ mà nó còn có khả năng
mở rộng các trang web (chia một website khổng lồ thành những phần nhỏ theo một
tỉ lệ nhất định) Mục tiêu đơn giản của Drupal là sử dụng các kỹ thuật phổ biến nhất
và việc viết code phải cẩn thận và chặt chẽ Hình dưới đây sẽ minh họa cho kỹ thuật
sử dụng Stack của Drupal:
Hình 1.4.1 Kỹ thuật phân tầng của Drupal
Hệ điều hành là mức thấp nhất trong tầng của Drupal Drupal hoạt động được trên tất cả hệ điều hành có hỗ trợ PHP
Apache là web server được dùng phổ biến nhất cùng với Drupal, tuy nhiên còn có một số web server khác (bao gồm Microsoft IIS) có thể được sử dụng
Trang 19Drupal đưa các tập tin htaccess vào trong root của nó để đảm bảo sự an toàn trong
khi cài đặt Drupal
Các giao diện của Drupal với lớp kế tiếp của tầng (cơ sở dữ liệu) thông qua một lớp cơ sở dữ liệu trừu tượng Lớp này điều khiển việc cải thiện các câu truy vấn SQL và giúp cho nó có thể sử dụng những cơ sở dữ liệu của những nhà cung cấp khác nhau mà không cần chỉnh sửa code của bạn Các cơ sở dữ liệu được sử dụng phổ biến là MySQL và PostgreSQL
Drupal được viết bằng PHP Đặc điểm của PHP là rất dễ học đối với người mới bắt đầu Cũng giống như nhiều ngôn ngữ lập trình khác, PHP cũng thường bị lạm dụng để tấn công nhanh vào các hệ thống Tuy nhiên, PHP cũng có thể được dùng để viết các đoạn mã chặt chẽ và đáng tin cậy Tất cả các đoạn mã được tích hợp vào nhân Drupal để đảm bảo tính chính xác của các chuẩn mã
Trang 201.4.2 Nhân (Core )
Một framework rất gọn đã hình thành nên nhân Drupal Nhân Drupal có thể
lấy về khi bạn download Drupal từ trang drupal.org Nhân của Drupal chịu trách
nhiệm cung cấp các tính năng cơ bản mà được sử dụng để hỗ trợ những phần khác của hệ thống
Nhân của Drupal bao gồm đoạn mã cho phép hệ thống Drupal có thể chuyển tiếp (bootstrap) khi nó nhận một yêu cầu Một thư viện các tính năng thông dụng được sử dụng bên trong Drupal, và các module cung cấp các tính năng cơ bản như user management taxonomy, và các mẫu giao diện được minh họa bằng hình sau đây:
Hình 1.4.2 Tổng quan Nhân Drupal
Trang 21Mọi chức năng của Drupal đều được viết với dạng Modules Mặc định Drupal có hơn 30 modules Các modules này có thể đáp ứng chức năng của một trang thương mại điện tử cơ bản Tuy nhiên người quản trị hệ thống có thể thêm bất
cứ module khác vào một cách đơn giản
Trang 22Một điểm hay của module là có thể cho phép người phát triển module có thể
sử dụng lại các hàm ở module khác để xây dựng cho module của mình Như vậy việc phát triển module càng thêm dễ dàng hơn
1.4.4 Hooks
Các Hook được xem như các sự kiện bên trong nhân Drupal Chúng được gọi
là những hàm callbacks(), được gắn kết với các chức năng của Drupal Hooks cho
phép các module “hook into” những gì đang diễn ra bên trong Drupal
Giả sử một người dùng đăng nhập vào website Drupal Tại cùng một thời điểm mà người dùng đăng nhập, Drupal sẽ phát ra hook user, nghĩa là lúc này tất cả
các hàm hook user có trong tất cả các module sẽ được gọi Ví dụ comment_user() trong module comment, locale_user() trong module locale, node_user() trong
module node và bất kỳ những gì có hàm cùng tên user sẽ được gọi
Có thể viết một module spammy.module tùy biến theo ý của bạn và được đặt bên trong thư mục modules, và module này sẽ gọi hàm spammy_user() để gửi email
cho người dùng, lúc này thì hàm của bạn cũng sẽ được gọi
->Đây là cách phổ biến nhất để tương tác với nhân Drupal thông qua hiện thực các hook trong module
Trang 231.4.5 Các Theme giao diện (Themes)
Khi tạo một trang web để gửi đến một trình duyệt web, có 2 vấn đề cần quan tâm đó là: dữ liệu có thích hợp và trang trí lại cho dữ liệu đó Trong ngữ cảnh của Drupal, thuật ngữ “theme” có nghĩa là một tập hợp các file chịu trách nhiệm với vẻ ngoài của website Những hệ thống khác thì sử dụng những cái tên khác nhau để dành cho các file này dùng để thực hiện cùng một chức năng trên những hệ thống đặc biệt của họ - ngoài ra còn có một thuật ngữ được sử dụng phổ biến là
“template”
Trong Drupal, lớp theme dùng để lo việc tạo HTML cho các trình duyệt web nhận Drupal cho phép vài cách để có thể thay đổi tùy biến giao diện trang web Đơn giản nhất là sử dụng các file CSS (cascading style sheet) để ghi đè lên các lớp IDs được tích hợp sẵn bên trong Drupal
Muốn thay đổi cách trình bày của HTML thì cũng có thể dễ dàng thực hiện việc này bằng cách sửa đổi các template hiện có sẵn với cách thức tổ chức rất chuẩn mực do Drupal đề ra
Drupal có thể có một hay nhiều theme Người điều hành có thể quyết định chọn theme phù hợp với nhu cầu của trang web Theme định nghĩa cách trình bày tổng quát của site: Site name, Slogan, Mission, Layout, CSS, Block style, Node style,
Trang 24Hình 1.4.4 Theme Garland là theme mặc định của Drupal
1.4.6 Nodes
Node là cấu trúc riêng biệt của Drupal, quản lý tất cả mọi bài viết trên hệ thống Các kiểu nội dung trong Drupal được bắt nguồn từ một kiểu nội dung cơ bản
được xem như node Drupal cung cấp các hàm cơ bản giúp xây dựng những kiểu
nội dung mới, các kiểu nội dung này có cách xử lý và hiển thị khác nhau nhưng chúng đều lưu dữ liệu xuống ở dạng node Đây là điểm hay của Drupal chỉ với một cấu trúc có thể phát triển thành vô số nội dung khác nhau với cách hiển thị và xử lý cũng khác nhau
Người phát triển module có thể thêm các tính năng như sự phân loại, các lời bình luận, các file đính kèm,… mà không cần phải quan tâm loại node là blog, hay recipe, Node cũng bao gồm một tập các thuộc tính cơ bản cho phép kế thừa tất cả các kiểu nội dung khác Bất kỳ node nào cũng có thể được đưa ra trang chủ, phát hành hoặc không phát hành hoặc thậm chí là các sự kiện tìm kiếm Bởi vì chúng có
Trang 25cấu trúc giống nhau nên giao diện quản trị thường làm việc và thao tác sửa đổi trực tiếp trên các node
1.4.7 Blocks
Một Block là một khối chứa đựng thông tin mà có thể được cho phép hay vô hiệu hóa ở một vị trí xác định trong website của bạn Ví dụ, một block có thể hiển thị số lượng người dùng đang hoạt động trên site của bạn
Block liên quan trực tiếp đến giao diện của Drupal Khi xây dựng giao diện người phát triển phải quy định khu vực sẽ hiển thị block Người quản trị hệ thống có thể định vị trí của block vào các khu vực đã quy định, sắp xếp thứ tự hiển thị của block, có thể cho phép hoặc không cho phép block hiển thị
Bạn có thể tạo một block chứa đựng các thông tin về các người dùng đang hoạt động hay một danh sách các sự kiện mới được đưa lên Block thường được đặt
ở bên trái, bên phải, đầu trang, hay cuối trang của một trang web
Khối nội dung bao gồm những thuộc tính:
Region (Vị trí trình bày): được trình bày ở phải/ trái/ trên/ dưới/ của
site Region được theme định nghĩa
Weight (Thứ tự trình bày): Xác định thứ tự trình bày block Block có
weight càng nhỏ có độ ưu tiên càng cao
Title: Tiêu đề của block
Body: Nội dung trình bày chính của block
Access: Xác định block có được trình bày hay không đối với người dùng
có những vai trò nhất định
Custom pages: Giới hạn trình bày block ở một số trang xác định
Ví dụ : user login là 1 block và thường được đặt ở bên trái (left-sidebar) Bạn
có thể tạo 1 block chứa số lượng người đang truy cập, font chữ ở các block bên trái nhỏ hơn các block phía bên phải, các block bên phải có màu sắc, độ bo viền khác với các block ở footer,…
Trang 261.4.8 CCK (Content Construction Kit)
1.4.8.1 CCK là gì?
- CCK được coi như là module chủ yếu mà đa số mọi người đều cần và sử dụng đến CCK cho phép tạo ra và tùy chọn các field sử dụng trong trình duyệt web
- CCK cho phép thêm các trường tùy biến vào bất kỳ kiểu nội dung nào
- Ở các phiên bản khác nhau chức năng và các thao tác của CKK có thể khác nhau
Sự khác biệt đó như sau: Trong phiên bản 4.7 CCK tạo ra các trường và các kiểu nội dung tùy ý Trong phiên bản 5.x các kiểu nội dung tùy ý có thể được tạo trong phần nhân (core) của Drupal
- Ở đây ta chỉ nói về Drupal 5.x:
Bật tính năng CCK module theo Adminnister>>Site building>>Modules
Các kiểu nội dung hiện nay được quản lý trong bộ nhân (core) của Drupal
Có thể thêm và chỉnh sửa theo Administer>>Content Management>> Content types
Cấu hình các trường trong CCK bằng cách theo Administer>>Content Management>>Content types và chọn 1 kiểu nội dung để thay đổi Trong màn hình chỉnh sửa sẽ có các tab để quản lý hoặc thêm 1 trường (field)
Việc tạo và thay đổi các quyền cho các kiểu nội dung bằng cách vào User Management >> Access Control
Trang 271.4.8.2 Bắt đầu với CCK:
- CKK có thể tạo ra các kiểu nội dung theo yêu cầu cá nhân
- CCK cũng cho tùy biến các trường hợp trong bất kỳ Views nào nếu sử dụng Module Views
- Có thể download CCK và cài đặt CCK bằng cách giải nén module trên trang web
và vào admin/build/modules để kích hoạt nó
-CCK là 1 nhóm các module Module chủ yếu là ‘content’ và bắt buộc phải có, để
sử dụng các module khác trong CCK Trong file nén trên bao gồm một module khác, được kèm chung với các module CCK chính Gồm có: text, Number, Nodereference, UserReference, OptionWindgets, Fieldgroup
- Ngoài ra có rất nhiều module khác đi kèm với module CCK trên trang drupal.org
1.4.8.3 Các bước để thêm một field mới trong CCK
- Bước 1:
Theo hướng dẫn Administer>>Content Management>>Content Types (admin/ content/tpyes) nơi chứa danh sách các kiểu nội dung có một cặp module trong một phần của sự cài đặt chuẩn của Drupal và có thể sử dụng trong số đó hoặc
có thể thêm vào một kiểu nội dung của chính mình Ví dụ : thêm vài trường trong kiểu nội dung ‘Story’
Tùy chọn ‘edit’ cho kiểu ‘story’ Trên màn hình nơi mà bạn có thể chỉnh sửa kiểu nội dung Bạn sẽ thấy thẻ ‘Manage Field’, ‘Display Field’, ’Add new Field’.Nếu chọn ‘Manage Field’, ‘Display Field ’thì sẽ không thấy gì cả, vì lúc này bạn chưa tạo bất kỳ trường nào, hãy bắt đầu tùy chọn Add New Field
Trên màn hình Add new Field sẽ yêu cầu điền tên cho trường, có thể điền bất
kỳ vào đây bao gồm các khoảng trắng, những gì điền vào đây sẽ là tên của trường mình muốn dùng trong cơ sở dữ liệu Ví dụ điền vào ‘My Text’ thì tên thật của trường này là field_my_text Và sẽ dùng tên field này nếu muốn tùy biến bất kỳ trên giao diện Chú ý tên machine name của trường không được thay đổi
Hình duới đây là danh sách các trường hiện tại Các trường cốt lỗi như Text, Integer, Decimal, Nodereference, Userreference Có các kiểu nội dung có thể tạo với các trường đó
Trang 28Trường ‘Text’ sẽ tạo kiểu nội dung được lưu trong cơ sở dữ liệu dưới dạng text Trường ‘Integer’ và ‘Decimal’ sẽ tạo kiểu nội dung lưu trong cơ sở dữ liệu dưới dạng số Trường ‘Nodereference’, ‘Userreference’ được lưu trữ hoặc là node hoặc là userId trong cơ sở dữ liệu , cho phép liên kết đến các node hoặc các bản user
Mỗi kiểu của trường dưới đây là vài tùy chọn cho dữ liệu sẽ được đưa vào cho trường này (CCK gọi là widgets) Nó điều khiển cách các trường này sẽ trông như thế nào Các giá trị sẽ khác nhau cho từng trường một, nhưng các thứ như textfield và một hộp trắng (blank box) nơi mà người sử dụng đánh chữ vào và hệ thống sẽ tự hoàn tất phần text cho họ với các biến hợp lệ trong cơ sở dữ liệu, lựa chọn từ các list, các checkbox, và các nút radio Màn hình sẽ trong như thế này :
Trang 29Hình 1.4.5 Một số trường trong CCK
Trang 30- Bước 2: Định nghĩa một số thứ cho các field sẽ làm việc
Hình 1.4.6 Một số thứ tự cho các field sẽ làm việc
Label: đặt tên một nhãn ở đây Đây là cơ hội để tạo nhãn mà các thành phần
khác biệt hơn tên máy của trường Nó có thể bao gồm các kí tự trắng, hoặc các kí tự không phải mã ASCCII và có thể được thay đổi
Rows: là một tùy chọn mà bạn đã thấy trong trường ‘text’, nó sẽ lưu trữ
trong cơ sở dữ liệu Nếu chọn một con số lớn hơn 1, sẽ có một textarea trong mẫu lựa chọn số hàng tại đây , được lưu trữ là một trường text trong cơ sở dữ liệu
Default Value: nơi đưa vào các giá trị mặc định của trường này, có thể sử
dụng hoặc để trống
Group: Nếu có bật module Fieldgroup sẽ thấy tùy chọn đặt một nhóm vào
nơi đó Nếu chưa tạo nhóm nào thì sẽ không có bất kỳ ảnh hưởng nào
Help Text: bất kỳ kiểu gì bên trong box ‘help text ‘ sẽ xuất hiện cho người
dùng như là một cách để mô tả cho cái mẫu này
Trang 31 Request: Nếu lựa chọn để tạo một trường bị bắt buộc thì người sử dụng buộc
phải nhập
Multiple Values: nhiều tùy chọn là một phần trong toàn bộ sự mạnh mẽ của
module CCK Nếu được chọn nguời sử dụng sẽ có thể lựa chọn hoặc tạo nhiều hơn một kiểu item
Text Processing: đây là tùy chọn khác để duy nhất áp dụng cho trường text
Xác định nếu người sử dụng cho phép lựa chọn một bộ lọc (filter) cho text processing Đảm nhận tạo một text area bằng cách chọn nhiều hơn một hàng
Maximum Length: (độ dài tối đa) tùy chọn chiều dài tối đa hoặc để trống
nếu là tùy chọn unlimit Nếu đây là một textfield , giá trị này sẽ dùng để sắp xếp khi tìm kiếm theo kích cỡ
Allowed values list: nơi có thể định nghĩa danh sách các tùy chọn mà người
Views sử dụng nhiều thuật ngữ để mô tả như là:
View: một view trình bày nội dung như một phần đơn lẻ của nội dung hoặc
nhiều phần của nội dung
Page View: được thể hiện theo cách bình thường chỉ trình bày những ý chính
của một mẫu tin
Block View: được trình bày theo khối tương tự như navigation bar, các mẫu
tin mới và các mẫu tin được xem nhiều nhất của một block view
List view: cách trình bày đơn giản nhất của View là list view Cung cấp danh
sách không thứ tự , ví dụ như thẻ <UL> Hoặc có thứ tự theo tiêu đề được gửi
Table view: trình bày theo bảng định dạng của nội dung, mỗi mẫu tin là một
hàng Có thể sắp xếp theo một trật tự nào đó của người thiết kế table view này
Trang 32 Teaser view: trình bày tiêu đề của các bài gửi và liên kết đến phần nội dung
đầy đủ của chúng Một ví dụ tốt nhất để hiểu là xem trang chủ của http://drupal.org
Field: Khi view tham chiếu đến một field đã được trình bày trong phần
View Ví dụ: một tracker view (trình bày những gì được cập nhật mới nhất trong một table) liệt kê theo kiểu tiêu đề, tác giả, số thứ tự của comment Mỗi entry là một field, Views duy nhất sử dụng các field trong danh sách và table views
Arguments: Views có thể có vài argument trong địa chỉ URL Số 1 là
argument dùng để lọc view xem cụ thể hơn
Argument default: khi một view có argument và một argument không được
cung cấp thì argument mặc định sẽ được dùng để mô tả hành động của View Có hành động được diễn ra:
- “Page not found”có thể được thể hiện
- Liệt kê tất cả các giá trị Ví dụ: nếu argument được hỗ trợ cho User
ID, views sẽ liệt kê các bài viết của user đó Tuy nhiên argument không được cung cấp và argument mặc định được thiết lập “all values” thì view sẽ liệt kê các bài viết của tất cả các user
- Trình bày theo Summany View Trong cơ chế này view sẽ phát sinh tất cả các argument có thể để đưa vào trong cơ sở dữ liệu và cung cấp một bảng danh sách cho phép người dùng chọn Đây là dạng archive-style view
Ví dụ : view thiết lập giá trị URL là “archive” Nếu View argument có tùy chọn là “Year + Month” và giá trị thiết lập là “Summany View”, thì View sẽ liệt kê kết hợp cả hai kiểu để tìm những bài gửi theo year và month
- Fitter: dùng để lọc kết quả Ví dụ : Nếu View không được thiết lập
thì kết quả sẽ liệt kê tất cả các nội dung tìm thấy Nếu chọn fitter thì sẽ lọc những gì cần xem
- Expossed Fitter: là bộ lọc cho phép người sử dụng lựa chọn theo
dạng textbox hoặc listbox, chỉ có giá trị dùng cho dạng page view
Trang 33- Sort Critenia: Nội dung cần được sắp xếp theo một trật tự nào đó
Mặc định Drupal sẽ sắp xếp theo dạng ngày tháng (date), tức là nội dung được gửi mới đây nhất Điều này rất cần thiết cho trang chủ
- Default View: Views là các module để có thiết lập mặc định của
chúng Các view sẽ tự động xuất hiện trên hệ thống khi nó được cài đặt và
có thể được tắt hay mở (disable hay enable ) Cũng có thể ghi đè bằng cách tạo một cái cùng tên Cách đơn giản nhất để làm ra là nhấn add và sau đó
chỉnh sửa view theo ý rồi lưu lại
1.4.9.2 Các tùy chọn cơ bản của View:
Views có 3 tùy chọn cơ bản :
Name: mỗi View phải có một đơn vị tên, để xác định views trong Drupal
Tên có thể quan trọng nếu view ghi đè lên default view, và cũng dùng cho giao diện, tên không dùng khoảng trắng và dấu gạch dưới
Access: có thể điều khiển các role access của view, đơn giản là check vào
các role này Nếu các role này không được check thì tất cả các role sẽ được truy cập Phải chắc chắn là không có tùy chọn nào tại “access all views” cho nhóm người dùng nặc danh (anonymous) trong admin, user, access page
Description: mô tả của View sẽ duy nhất được trình bày trên trang quản trị
View, có thể điền bất kỳ gì tại đây
Trang 341.5 Thương mại điện tử (E-Commerce)
- Thương mại điện tử chỉ việc thực hiện các giao dịch thương mại dựa trên các công
cụ điện tử mà cụ thể là mạng Internet và WWW (tức là những trang web hay website) Ví dụ: việc trưng bày hình ảnh hàng hóa, thông tin về doanh nghiệp trên website hay liên lạc với khách hàng qua email
- Thương mại điện tử có thể được chia làm bốn loại:
Mô hình Business-to-Consumer (từ doanh nghiệp tới khách hàng):
trong mô hình này, thương mại điện tử được diễn ra, điều khiển bởi một khách hàng là người dùng ở nhà trên một máy tính và một doanh nghiệp
Mô hình Business-to-Business (từ doanh nghiệp tới doanh nghiệp):
trong mô hình này, thương mại điện tử được tiến hành giữa hai doanh nghiệp Nó bao gồm hàng hóa thương mại như là sự thoả thuận doanh nghiệp, những dịch vụ chuyên nghiệp, và những giao dịch bán sỉ Đôi khi, doanh nghiệp có thể tồn tại giữa những công ty ảo, mặc dù không có bất kỳ mối quan hệ vật lý nào
Mô hình Consumer-to-Consumer (từ khách hàng tới khách hàng):
trong mô hình này, thương mại điện tử được diễn ra giữa hai khách hàng Việc này có thể được tìm thấy ở nơi bán đấu giá Trong ví dụ này, thương mại được diễn ra giữa khách hàng là người đang bán đấu giá và những khách hàng đang đặt giá cho nó Người khách hàng đang bán đấu giá sẽ quyết định giá cho sản phẩm Những khách hàng đang đặt giá sẽ phân tích sản phẩm và quyết định chúng đáng giá bao nhiêu
Mô hình Consumer-to-Business (từ khách hàng tới doanh nghiệp):
trong mô hình này, thương mại điện tử được diễn ra giữa một khách hàng
và một doanh nghiệp Mô hình này vẫn còn nằm trong giai đoạn phát triển Nó sẽ trở thành một mô hình mà trong đó hàng hóa được sản sinh
và giá của sản phẩm sẽ phụ thuộc vào khách hàng hơn là nhà cung cấp Điều đó sẽ chỉ ra con đường cách mạng hóa mà các doanh nghiệp sẽ được chỉ đạo qua mạng hoặc bằng cách khác
Trang 35- Có nhiều cấp độ thực hiện thương mại điện tử Ở cấp độ cơ bản, doanh nghiệp chỉ
có thể mới có website trưng bày thông tin, hình ảnh, tìm kiếm khách hàng qua mạng, liên hệ với khách hàng qua email Cấp độ cao hơn thì doanh nghiệp đã có thể thực hiện một số giao dịch trên mạng như cho khách hàng đặt hàng thẳng từ trên mạng, quản lý thông tin khách hàng, có thể xử lý thanh toán qua mạng bằng thẻ tín dụng …
- Đối với tình hình Việt Nam hiện nay thì thương mại điện tử giúp rất nhiều cho việc marketing và tìm kiếm khách hàng qua mạng Đặt biệt là các doanh nghiệp sản xuất hàng hóa xuất khẩu
1.6 Thương mại điện tử và lợi ích cho doanh nghiệp
- Thương mại điện tử nên được xem là một công cụ hỗ trợ thương mại truyền thống trong bối cảnh Việt Nam hiện nay Ở Việt Nam hiện nay chưa có doanh nghiệp nào
có các hoạt động kinh doanh hoàn toàn dựa trên mạng Internet Các lý do bên dưới
sẽ giúp bạn nhận ra những lợi ích mà thương mại điện tử sẽ mang lại cho doanh nghiệp của bạn:
Quảng bá thông tin và tiếp thị cho một thị trường toàn cầu với chi phí cực thấp: chỉ với vài chục đô-la Mỹ mỗi tháng, bạn có thể đưa thông tin
quảng cáo của bạn đến với vài trăm triệu người xem từ các nơi trên thế giới
Dịch vụ tốt hơn cho khách hàng: với thương mại điện tử bạn có thể cung
cấp thông tin, bảng báo giá cho đối tượng khách hàng một cách cực kỳ nhanh chóng, bạn có thể tạo điều kiện cho khách hàng mua hàng trực tuyến từ trên mạng …
Tăng doanh thu: với thương mại điện tử, đối tượng khách hàng của bạn giờ
đây đã không còn bị giới hạn về mặt địa lý hay thời gian làm việc Bạn không chỉ có thể bán hàng cho cư dân trong thành phố của bạn, mà bạn còn
có thể bán hàng trong cả nước Việt Nam hoặc các nước khác
Giảm chi phí hoạt đông: với thương mại điện tử bạn không phải tốn kém
nhiều cho việc thuê cửa hàng, mặt bằng, đông đảo nhân viên phục vụ, bạn cũng không phải đầu tư nhiều cho kho chứa …
Trang 36 Lợi thế cạnh tranh: việc kinh doanh trên mạng là một “sân chơi” cho sự
sáng tạo, nơi đây bạn tha hồ áp dụng những ý tưởng hay nhất, mới nhất về dịch vụ hỗ trợ, chiến lược tiếp thị…
1.7 Các bước triển khai thương mại điện tử
- Các doanh nghiệp vừa và nhỏ Việt Nam muốn áp dụng thương mại điện tử vào kinh doanh cần tham khảo năm bước sau, trong đó ba bước đầu rất cần thiết, hai bước sau tùy chọn, phụ thuộc vào nhu cầu thực tế của doanh nghiệp và của khách hàng của doanh nghiệp Các bước đó là:
a/ Hiện diện trên mạng: có một website giới thiệu thông tin, hình ảnh, hàng hóa,
dịch vụ…
Mua tên miền (domain)
Mua dịch vụ lưu trữ trực tuyến (hosting)
Viết nội dung cho các trang web
Thiết kế web
Bảo trì web và cập nhật thông tin
b/ Quảng bá website: (e-marketing)
c/ Hỗ trợ khách hàng qua mạng:
Thanh toán qua mạng: không nhất thiết phải thực hiện, nếu không thực sự có nhu cầu, hiện nay chỉ có nhu cầu nếu doanh nghiệp bán lẻ hàng hóa ra nước ngoài
Đổi mới phương thức kinh doanh: dành cho doanh nghiệp “nghiêng” nhiều hơn về những mô hình kinh doanh trên mạng
d/ Đổi mới tư duy
e/ Đổi mới cung cách kinh doanh
Trang 37CHƯƠNG 2 GIỚI THIỆU
2.1 Yêu cầu thực tế và lý do thực hiện đề tài
Chúng em tìm hiểu về Drupal và xây dựng web bán hàng qua mạng để cung cấp cho người dùng các thông tin và chi tiết xác thực của các mặt hàng và tạo khả năng chuyên môn hóa cao trong kinh doanh
2.1.1 Yêu cầu thực tế
Trong những năm gần đây, sự phát triển của Thương Mại Điện Tử Commerce) đã đem lại nhiều lợi ích to lớn cho nền kinh tế toàn cầu Thông qua Thương Mại Điện Tử, nhiều loại hình kinh doanh mới được hình thành, trong dó có mua bán hàng trên mạng Với hình thức mới này, người tiêu dùng có thể tiếp cận với hàng hoá một cách dễ dàng và nhanh chóng hơn rất nhiều so với phương thức mua bán truyền thống
(E-Những tưởng với những thế mạnh của các trang web bán hàng sẽ dần thay thế các gian hàng hay các siêu thị truyền thống Nhưng trên thực tế người mua vẫn còn rất mặn mà với phương pháp mua bán cũ Một phần vì phương thức mua bán cũ dần dần từng bước chuyển từ thói quen thành một nếp văn hóa, văn hóa mua sắm Khi đó, người ta xem hoạt động mua sắm là một hoạt động không thế thiếu trong nền văn hóa đó, điều đó có thể tạo nên một sự chuyển biến lớn trong nền thương mại nói chung Mặt khác, các trang web bán hàng hiện nay dù đã được phát triển nhưng thực sự vẫn chưa thể thay thế được các cửa hàng thực tế
Trang 382.1.2 Lý do thực hiện đề tài
Tuy mới phát triển mạnh mẽ khoảng hơn 10 năm qua nhưng Thương Mại Điện Tử đã khẳng định được vị thế và xu hướng tất yếu của nền kinh tế hiện đại Trước sức cạnh tranh mạnh mẽ trên phạm vi toàn cầu, Internet và Thương Mại Điện
Tử đã mở ra một thị trường không biên giới khắp toàn cầu, tạo cho các doanh nghiệp nhiều cơ hội mới để tiếp cận với bạn hàng khắp nơi trên thế giới
Thực sự thị trường kinh doanh điện tử đã tạo ra một sân chơi nơi các nhà cung cấp nhỏ có thể cạnh tranh tốt với những công ty lớn Tuy nhiên không phải mọi người bán đều muốn sự bình đẳng của sân chơi Tham gia sân chơi này, các nhà cung cấp nhỏ có thể tăng được số lượng mặt hàng nhưng điều đó cũng có nghĩa
là họ phải cạnh tranh khốc liệt về mặt giá cả
Trong quá trình hội nhập kinh tế Quốc tế, đòi hỏi các doanh nghiệp phải nâng cao trình độ quản lý, trình độ kinh doanh và trình độ ứng dụng khoa học kỹ thuật Vì vậy, phát triển Thương Mại Điện Tử là vấn đề cần được quan tâm
Muốn vậy, chúng ta cần nắm rõ tình hình Thương Mại Điện Tử của các nước trên thế giới Từ đó áp dụng sao cho phù hợp với tình hình kinh tế thế giới Từ đó,
áp dụng sao cho phù hợp với tình hình kinh tế Việt Nam
Trên cơ sở đó, chúng em quyết định tìm hiểu về Drupal và xây dựng trang web bán hàng qua mạng phù hợp với tình hình trong nuớc
Trang 392.2 Mục Tiêu Đề Ra
2.2.1 Về mặt lý thuyết
Nắm được các kiến thức cơ bản về Thương Mại Điện Tử
Nắm được cơ sở lý thuyết chung về công cụ Drupal và các vấn đề trong Drupal
Nhận ra những mặt thiếu sót của các trang web bán hàng hiện nay Những tiện ích, dịch vụ mà các trang web cần cung cấp hoặc nâng cao hơn để có thể nâng cao vị thế của mình trong nền kinh tế hàng hóa
2.2.2 Về mặt ứng dụng
Xây dựng cơ sở dữ liệu đáp ứng cho việc lưu trữ tất cả các loại mặt hàng
Dựa vào tình hình TMĐT Việt Nam, xây dựng nên trang web thích hợp với nền kinh tế đất nước, hỗ trợ tốt cho các doanh nghiệp cũng như khách hàng
Trang 40Sức mạnh và thuận lợi của công nghệ Web đã giúp các công ty, doanh nghiệp đưa các hoạt động kinh doanh của mình đến gần với người dùng hơn Sử dụng Web các công ty có thể đưa đến người dùng từ những mẫu quảng cáo nhỏ, các mặt hàng, dịch vụ mà công ty cung cấp đến các hoạt động mua bán với khách hàng Chính điều đó đã hình thành một phương thức mua bán hoàn toàn mới mẻ và đang trở nên hoạt động phổ biến trên Internet, mua bán hàng qua mạng dựa trên cơ chế doanh nghiệp với khách hàng (B2C – Business To Customer)
3.1.2 Bản đặc tả Website
- Khi lần đầu tiên vào trang Web người dùng có thể:
Xem thông tin sản phẩm
Tìm kiếm thông tin sản phẩm