22
1 ĐẠI HC QUC GIA HÀ NI TRƯỜNG ĐẠI HC CÔNG NGH -------------------------------------------  BÁO CÁO THỰ C TP  NGÀNH: CÔNG NGH THÔNG TIN ĐỀ TÀI: VIT MODULE CHO MAGENTO Cán bhướng dn: Giáp Tùng Lân Ging viên đánh giá: ThS. Tr n Mai Vũ Sinh viên: Vũ Trung Triu Mã sinh viên:11020349 Lớ  p: K56-CB Hà Ni, 9/2014 

Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

Embed Size (px)

Citation preview

Page 1: Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

8/11/2019 Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

http://slidepdf.com/reader/full/vu-trung-trieubao-cao-thuc-tap-chuyen-nganh-1 1/22

1

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ 

-------------------------------------------  

BÁO CÁO THỰ C TẬP 

 NGÀNH: CÔNG NGHỆ THÔNG TIN 

ĐỀ TÀI: VIẾT MODULE CHO MAGENTO 

Cán bộ hướng dẫn: Giáp Tùng Lân 

Giảng viên đánh giá: ThS. Tr ần Mai Vũ 

Sinh viên: Vũ Trung Triệu

Mã sinh viên:11020349

Lớ  p: K56-CB

Hà Nội, 9/2014 

Page 2: Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

8/11/2019 Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

http://slidepdf.com/reader/full/vu-trung-trieubao-cao-thuc-tap-chuyen-nganh-1 2/22

Page 3: Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

8/11/2019 Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

http://slidepdf.com/reader/full/vu-trung-trieubao-cao-thuc-tap-chuyen-nganh-1 3/22

3

Lời cám ơn 

Qua đợ t thực tậ p vừa r ồi giúp em có thêm nhiều kiến thức mớ i bổ ích, trau dồithêm k ỹ năng làm việc nhóm cũng như đượ c tiế p xúc và làm việc vớ i môi trườ ng làmviệc thực tế, giúp em tích lũy thêm kinh nghiệm làm việc

Em xin chân thành cảm ơn các thầy cô trong phòng thí nghiệm KTLab và khoaCông nghệ thông tin đã tổ chức đợ t thực tậ p bổ ích này.

Em xin gửi lờ i cảm ơn tớ i giảng viên hướ ng dẫn –   thầy Tr ần Mai Vũ. Thầy đã chỉ bảogiúp em có thể hoàn thành tốt báo cáo thực tậ p.

Em cũng xin gửi lờ i cảm ơn đến lãnh đạo công ty TruePlus đã tạo điềukiện,giúp đỡ ,tạo ra môi trường cho chúng em có cơ hội làm việc cũng như học tậ ptrong điều kiện r ất tốt.

Cuối cùng em xin gửi lời cám ơn đến các anh,chị hướ ng dẫn: Giáp Tùng Lân, Nguyễn Cẩm Ly ở  công ty,đã giúp đỡ ,giải đáp thắc mắc, giúp em hoàn thành các công

việc đượ c công ty giao

Page 4: Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

8/11/2019 Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

http://slidepdf.com/reader/full/vu-trung-trieubao-cao-thuc-tap-chuyen-nganh-1 4/22

Page 5: Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

8/11/2019 Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

http://slidepdf.com/reader/full/vu-trung-trieubao-cao-thuc-tap-chuyen-nganh-1 5/22

5

3. Quá trình thực tập. 

17/06 –  13/7: Khóa học PHP căn bản.

14/07- 26/8 : Khóa học về Magento cơ bản và làm bài test Magento cơ bản.

21/7- 18/8 : Bài tập magento cơ bản

-  Hoàn thành bài tậ p xây dựng một module magentoEmailmarketing.

Page 6: Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

8/11/2019 Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

http://slidepdf.com/reader/full/vu-trung-trieubao-cao-thuc-tap-chuyen-nganh-1 6/22

6

4. Cơ bản về magento. 

4.1 Magento là gì?

Magento là một mã nguồn mở, được ra đời ngày 31 tháng 3 năm 2008, đượ c sáng lậ p bở i Varien. Phát triển dựa trên nền tảng từ Zend Framework.

Magento dùng để phát triển xây dựng hệ  thống website bán hàng vớ i nhiều tính năngưu việt dựa trên mã nguồn mở   (OS). Magento k ế  thừa các tính năng của những open sourcevề shopping cart trước nó, như Zen cart- oscommerce, cùng vớ i những tính năng vượ t tr ộicủa nền tảng website 2.0. Vì vậy, theo các chuyên gia dự  đoán Magento chính là tươnglai của k ỷ nguyên Thương Mại Điện Tử.

Một số đặc điểm khiến magento tr ở  thành mã nguồn mở  dùng để xây dựng hệ thốngthương mại điện tử tốt nhất:

Về  mặt tính năng magento có 1 số  chức năng nổi bật mà 1 số  mã nguồn mở   kháckhông có được đó là: 

- Wishlists: Bạn có thể tạo ra danh sách sản phẩm yêu thích của mình và chiasẻ vớ i bạn bè.- Multi store/mall feature: bạn có thể  tạo ra nhiều cửa hàng, kho hàng, địađiểm bán hàng khác nhau, cùng 1 sản phẩm nhưng có thể  bán vớ i giá khác

nhau ở  mỗi cửa hàng.- Email lists: Magento có 1 hệ  thống danh sách các email, lọc, sắ p xế p, giúpcho việc marketing dễ dàng với tính năng ưu việt.- Compare product: Tạo ra danh sách các sản phẩm dùng để so sánh.- Bundle/Grouped/Digital products & more: Hệ  thống có thể  tạo ra các gói,nhóm sản phẩm vớ i thuộc tính cho từng loại.- Layered/ Filter naviagation: Giúp ngườ i dùng có thể  lọc, tìm kiếm theo 1haynhiều thuộc tính của sản phẩm.

- Advanced searching: Giúp tìm kiếm nâng cao, tìm kiếm tùy chỉnh.- Seo performance: Magento đã tích hợ  p SEO giúp tối ưu hóa vớ i công cụ tìmkiếm.- CMS page: giúp ngườ i dùng tạo ra những trang laddingpage dễ dàng...- Tích hợ  p google checkout.- Bộ nhớ  cache …. - Cấu trúc thư mục rõ ràng: Magento đượ c phát triển dựa trên nền tảng ZendFramework vớ i mô hình MVC, giúp bạn có thể  quản lý phát triển hệ  thốngdễ dàng, khi có sự update của các phiên bản mớ i.

Page 7: Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

8/11/2019 Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

http://slidepdf.com/reader/full/vu-trung-trieubao-cao-thuc-tap-chuyen-nganh-1 7/22

7

4.2. Cấu trúc một module magento 

Các module của Magento đượ c xây dựng theo mô hình MVC với đầy đủ  các thành

 phần: Controller, Model và View. Trong Magento, View bao gồm Block, layout và các filetemplate.

Controller: là thành phần tiế p nhận các request từ  phía người dùng đượ c gửi đến Serverthông qua browser. Controller yêu cầu View (Layout trong Magento) render ra các đoạnmã HTML (bao gồm cả CSS và Javascript). Sau đó trả về  phía browser để hiển thị cho ngườ idùng.

View: trong Magento, View bao gồm các Layout (định nghĩa bằng các file XML), Block (cácclass PHP), và Template (các file .phtml). Layout có nhiệm vụ render ra các đoạn mã HTML.Layout có thể lấy dữ liệu từ database thông qua các Model Objects.

Model: trong Magento, Model bao gồm 2 thành phần: Object Model và ResourceModel. Trong đó, Object Model không làm việc tr ực tiế p vớ i database. Nó có nhiệm vụ ưu trữ  dữ  liệu tạm thời sau khi đượ c lấy ra từ database. Ngoài ra, nó cung cấ p các operatorfunction như get(), set(), load(), delete(). Resource Model là thành phần làm việc tr ực tiế p vớ i

database. Sau khi truy vấn database, dữ  liệu sẽ  đượ c chuyển vào Object Model để  lưu trữ tạm thờ i.

Page 8: Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

8/11/2019 Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

http://slidepdf.com/reader/full/vu-trung-trieubao-cao-thuc-tap-chuyen-nganh-1 8/22

8

  Cấu trúc thư mục

Các module của Magento được lưu trữ trong 3 thư mục:

  app/code/core: đây là thư mục chứa các module core của Magento

  app/code/local : thư mục này chứa các module mất phí do các provider pháttriển.

  app/code/community : thư mục này chứa các module miễn phí đượ c phát triển bở i cộng đồng Magento.

Page 9: Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

8/11/2019 Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

http://slidepdf.com/reader/full/vu-trung-trieubao-cao-thuc-tap-chuyen-nganh-1 9/22

9

5. Module Emailmarketing

Module cho phép các Account tạo và quản lý các group,các email trong group của

chính mình, và từ đó có thể gửi email đến cho bạn bè trong list contact của mình, tạoevent giảm giá cho sản phẩm, tạo invoice trong checkout

5.1 Xây dựng front end  

5.1.1 Hiển thị danh sách email khách hàng 

Tạo trang hiển thị thông tin khách hàng bao gồm:- Name: họ tên khách hàng

- Email: Địa chỉ email khách hàng- Group: Tên nhóm khách hàng- Edit: Cho phép sửa đổi thông tin khách hàng như group,name,email. - ADD NEW CONTACT: Thêm khách hàng vào contactThiết k ế Cơ sở  dữ liệu :$installer = $this;

$installer->startSetup();

$installer->run("

 DROP TABLE IF EXISTS {$this-

>getTable('emailmarketing/email')};

CREATE TABLE `{$installer->getTable('emailmarketing/email')}` (

`contact_id` int(11) NOT NULL auto_increment,

`name` varchar(50) NOT NULL default '',

`email` varchar(100) NOT NULL default '',

 PRIMARY KEY(`contact_id`)

 )ENGINE=InnoDB DEFAULT CHARSET=utf8;

");

$installer->endSetup();-  Thông tin acccountTạo trang hiển thị thông tin cá nhân của Emailmarketing tại frontend hiển thị:

- Name: Tên (Name + Email + Group)- Form edit thông tin: Name, Email , Group. Click nút Save sẽ  lưu thông tinvào database thông qua model Emailmarketing /Account vàCustomer/Customer. Hiển thị thông báo lỗi/ thành công

-  Hàm xử lý lưu thông tin khách hàng khi add new contact và edit: 

 public function saveAction() {

Page 10: Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

8/11/2019 Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

http://slidepdf.com/reader/full/vu-trung-trieubao-cao-thuc-tap-chuyen-nganh-1 10/22

10

$id = $this->getRequest()->getParam('id');

$session = Mage::getSingleton('core/session');

$email = Mage::getModel('emailmarketing/email');

$data = $this->getRequest()->getPost();

if($id) {$email->load($id);

 }

$email->setData('name',$data['name']);

$email->setData('email',$data['email']);

$email->setData('group_id',Mage::helper('emailmarketing')-

>getGroupIdByGroupName($data['group_name']));

$email->setData('customer_id',Mage::getSingleton('customer/session')-

>getCustomer()->getId());

try{

$email->save();

$id? $session->addSuccess('Edit email successfully') :

12

$session->addSuccess('Add email successfully');

 }catch(Exception $e) {

$session->addError($e->getMessage());

 }

$this->_redirect('emailmarketing'); }

-  Giao diện trang Contact:

Page 11: Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

8/11/2019 Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

http://slidepdf.com/reader/full/vu-trung-trieubao-cao-thuc-tap-chuyen-nganh-1 11/22

11

-  Giao diện Edit Delete email:

-  Giao diện Add New Contact:

Page 12: Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

8/11/2019 Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

http://slidepdf.com/reader/full/vu-trung-trieubao-cao-thuc-tap-chuyen-nganh-1 12/22

12

5.1.2. Trang hiện thị thông tin group 

Tạo trang hiển thị danh sách nhóm khách hàng bao gồm:- Name: Tên nhóm khách hàng.- Description: Mô tả về nhóm khách hàng.- Edit: Cho phép sửa đổi thông tin nhóm như name,description. 

- ADD NEW GROUP: Thêm nhóm khách hàng mớ i .Giao diện hiển thị list group

Page 13: Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

8/11/2019 Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

http://slidepdf.com/reader/full/vu-trung-trieubao-cao-thuc-tap-chuyen-nganh-1 13/22

Page 14: Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

8/11/2019 Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

http://slidepdf.com/reader/full/vu-trung-trieubao-cao-thuc-tap-chuyen-nganh-1 14/22

14

$data = $this->getRequest()->getPost();

 // get group ID

if($this->getRequest()->getParam('id'))

$group_id = $this->getRequest()->getParam('id');

else$group_id = Mage::helper('emailmarketing')-

>getGroupIdByGroupName($data['group_name']);

 //get Message

if(($data['message']))

 Mage::getSingleton('core/session')->setMessage($data['message']);

 //get customer_id

$customer_id = Mage::getSingleton('customer/session')->getCustomer()-

>getId();

 //get sent_time

$sent_time = date('Y-m-d H:i:s');

$model = Mage::getModel('emailmarketing/email')->getCollection()

->addFieldToFilter('group_id',$group_id);

 foreach($model->getData() as $item){

$sendTo[] = array('email'=>$item['email'],'name'=>$item['name']);

 }

try {

 Mage::getModel('emailmarketing/sendemail')->sendEmail($sendTo,Mage::getSingleton('core/session')->getMessage());

 Mage::getSingleton('core/session')->addSuccess('Sent Email successfully');

 /*

* save email info into database

* $email_id pass into saveEmailInfo() either null or set by request

* $emailId 's value get from saveEmailInfo() 's return

*/

if($this->getRequest()->getParam('email'))

$email_id = $this->getRequest()->getParam('email');$emailId = Mage::getModel('emailmarketing/sendemail')-

>saveEmailInfo($email_id,$data['message'],$customer_id,$group_id,$sent

 _time);

 }catch(Exception $e) {

 Mage::getSingleton('core/session')->addError($e->getMessage());

 }

$this->_redirect('*/*/view',array('id'=>$group_id,'email'=>$emailId));

 }

Page 15: Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

8/11/2019 Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

http://slidepdf.com/reader/full/vu-trung-trieubao-cao-thuc-tap-chuyen-nganh-1 15/22

15

-  Giao diện gử i email:

5.2 Xây dựng backend

5.2.1. Contact

Thêm menu Contact và Group vào trong backend:

-Thực hiện hiển thị contact và các action trong trang Contact:+ Xây dựng block hiển thị  danh sách email trong thư mục\app\code\local\Magestore\Emailmarketing\Block\Adminhtml\contact.php

\app\code\local\Magestore\Emailmarketing\Block\Adminhtml\contact\Grid.php

+ Tạo form add contact và edit contact trong thư muc  

Page 16: Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

8/11/2019 Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

http://slidepdf.com/reader/full/vu-trung-trieubao-cao-thuc-tap-chuyen-nganh-1 16/22

16

\app\code\local\Magestore\Emailmarketing\Block\Adminhtml\Emailmarketing\

 Edit\Tab\form.php

+ Các action trong trang contactADD NEW: Thêm email vào contact

Delete: Xóa email trong contactEdit: Sửa thông tin email

Giao diện Contact hiển thị danh sách email khách hàng:

Giao diện thêm,sử a thông tin email khách hàng:

5.2.2. Email group

-Thực hiện hiển thị danh sách nhóm và các action trong trang Group:+ Xây dựng block hiển thị  danh sách nhóm trong thư mục

Page 17: Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

8/11/2019 Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

http://slidepdf.com/reader/full/vu-trung-trieubao-cao-thuc-tap-chuyen-nganh-1 17/22

17

\app\code\local\Magestore\Emailmarketing\Block\Adminhtml\Emailgroup.php

\app\code\local\Magestor\Emailmarketing\Block\Adminhtml\Emailgroup\Grid.p

hp

+ Tạo form add group và edit group trong thư muc 

\app\code\local\Magestore\Emailmarketing\Block\Adminhtml\Emailgroup\Edit\Tab\form.php

+ Các action trong trang Group

  ADD NEW: Thêm nhóm mớ i vào danh sách group

  Delete: Xóa nhóm cũ trong danh sách

  Edit: Sửa thông tin nhóm

Giao diện hiển thị danh sách email group:

Page 18: Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

8/11/2019 Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

http://slidepdf.com/reader/full/vu-trung-trieubao-cao-thuc-tap-chuyen-nganh-1 18/22

Page 19: Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

8/11/2019 Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

http://slidepdf.com/reader/full/vu-trung-trieubao-cao-thuc-tap-chuyen-nganh-1 19/22

19

Giao diện cấu hình:

Page 20: Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

8/11/2019 Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

http://slidepdf.com/reader/full/vu-trung-trieubao-cao-thuc-tap-chuyen-nganh-1 20/22

20

6. Kết quả đạt được, hướng phát triển 

6.1 Kỹ năng & kiến thức thu thập được  

-  Kiến thức + Hiểu biết thêm về mã nguồn mở magento cho việc phát triển trangthương mại điện tử. 

+ Trau dồi ,rèn luyện thêm về ngôn ngữ PHP,HTML và Mysql.

-  Kỹ Năng 

+ Rèn luyện kĩ năng giao tiếp,làm việc độc lập,làm việc nhóm.  

+ Biết cách sắp xếp thời gian,công việc hợp lý để hoàn thành tốt công

việc. 

6.2 Hướng phát triển 

Tìm hiểu và củng cố vững chắc kiến thức về magento.Xây dựng hoàn chỉnhModule emailmarketing vớ i nhiều chức năng hơn như: thêm các event giảmgiá,khuyến mãi thêm sản phẩm...Làm một trang thương mại điện tử hoàn chỉnh vớ i đầy đủ các tính năng  bằng

magento.

7.Tài liệu tham khảo 

-  How-to-pass-magento-certification-exam-in-30-days(.pdf file)-  http://blog.magestore.com/ -  http://basetut.com/category/lap-trinh-web/magento-tutorial/ -  http://training.trueplus.vn/ 

Page 21: Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

8/11/2019 Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

http://slidepdf.com/reader/full/vu-trung-trieubao-cao-thuc-tap-chuyen-nganh-1 21/22

21

Ý kiến đánh giá: 

……………………………………….………………………… ……………………………………….………………………… 

……………………………………….………………………… 

……………………………………….………………………… 

……………………………………….………………………… 

……………………………………….………………………… 

……………………………………….………………………… 

……………………………………….…………………………  

Hà Nội, ngày tháng năm 20 . 

 Người hướ ng dẫn

(Ký, ghi rõ họ tên & dấu công ty)

Page 22: Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

8/11/2019 Vũ Trung Trieu_Báo Cáo Thực Tập Chuyên Ngành (1)

http://slidepdf.com/reader/full/vu-trung-trieubao-cao-thuc-tap-chuyen-nganh-1 22/22

22

Ý kiến đánh giá: 

……………………………………….………………………… 

……………………………………….…………………………  ……………………………………….…………………………  

……………………………………….…………………………  

……………………………………….…………………………  

……………………………………….…………………………  

……………………………………….…………………………  

……………………………………….…………………………  ……………………………………….…………………………  

……………………………………….…………………………  

Điểm số: ……. Điểm chữ: ………… 

Hà Nội, ngày tháng năm 20 .Giảng viên đánh giá (Ký, ghi rõ họ tên)