Recent Post

All Pages

Like Us On Facebook

About

Gallery

Thứ Năm, 23 tháng 10, 2014

Magento - Cái nhìn tổng quan về Magento

Cấu trúc thượng tầng của Magento

Nền tảng xây dựng nên Magento




Cấu trúc MVC của Magento


Magento, cũng như nhiều nền tảng ứng dụng khác, được xây dựng trên một bộ khung phát triển phần mềm chuẩn. Bộ khung ấy là Zend Framework (ZF), một bộ khung nổi tiếng trong giới phát triển phần mềm mã nguồn mở PHP. Với nguyên lý lập trình hướng đối tượng và một nền móng vững chắc, bảo mật và có khả năng mở rộng cao, ZF giúp Magento được xây dựng nên với 3 điểm mấu chốt sau:

Tính linh hoạt: E-commerce là một lĩnh vực rộng lớn, yêu cầu cho mỗi ứng dụng thương mại điện tử do đó sẽ rất đa dạng. Magento cung cấp khả năng tuỳ biến liên tục để thích ứng với mọi yêu cầu của từng ứng dụng cụ thể.
Tính cập nhật: Bằng việc phân tách vùng lập trình thành 3 vùng core, community và local, Magento cho phép tuỳ biến dễ dàng mà không ảnh hưởng tới việc nâng cấp bộ mã nguồn của nó.
Tốc độ và bảo mật: Các nhà phát triển Magento tuân theo quy ước lập trình chuẩn theo các mô hình thực tiễn tốt nhất nên đảm bảo tối ưu hoá hiệu năng của phần mềm và cung cấp các cửa hàng trực tuyến với độ bảo mật cao.

Để theo kịp thời đại, Magento sử dụng nguyên lý Model-View-Controller (MVC) làm nguyên lý lập trình. Vì đây là một mô hình tương đối thân quen nên chắc chắn nhiều bạn sẽ thấy rất phấn khích và nghĩ rằng Magento dễ Nhưng mình có thể đảm bảo với các bạn rằng cấu trúc MVC của Magento sẽ khiến cho các bạn điên ngay khi các bạn thử làm một cái gì đó to tát hơn hiển thị Helloworld trên màn hình *cười nham hiểm*. Nếu như bạn mong rằng Magento sẽ có namespace như Symfony hay một số nền tảng khác thì bạn nhầm to vì Magento hiện thời không dùng namespace mà sử dụng một cách rất củ chuối để giả lập khả năng định danh các class.




Thực ra thì mô hình MVC cơ bản chỉ có thế này thôi

Cấu trúc cơ bản của Magento
Magento được cấu thành bởi nhiều thành phần được mô tả như sau:
Các khu vực thiết kế của Magento (Magento's design areas)

Adminhtml (Back-end)
Khu vực này chứa đựng mọi cơ chế quản lý gian hàng online của Magento. Đây là phần mà người mua hàng không thể nhìn thấy được mà chỉ có người bán hàng nhìn thấy. Sử dụng nó bạn có thể quản lý được doanh số, đơn đặt hàng, sản phẩm, danh mục sản phẩm, etc. và cài đặt các gói mở rộng cũng như thiết lập nhiều gian hàng cho cùng một website. Nếu bạn có một module hay một extension cho Magento, bạn có thể tạo ra cơ chế quản lý việc bật hay tắt và các thiết đặt khác của nó tại khu vực này.

Frontend (front-end)
Khu vực này chứa đựng tất cả những thứ liên quan tới trải nghiệm của khách hàng khi mua hàng trên gian hàng Magento của bạn. Các sản phẩm được trưng bày tại đây cũng như các tính năng đặt hàng, tạo hoá đơn và hiển thị hoa lá cành bắt mắt khác. Khi cài Magento vào lần đầu thì khu vực này đã hoàn toàn hoạt động bình thường như mọi website bán hàng trực tuyến khác. Tuy nhiên, chúng ta chắc chắn sẽ phải sờ mó vào nó nhiều nhất để tuỳ biến gian hàng theo ý muốn của mình.

Install
Đây là khu vực đặc biệt, bạn chỉ nhìn thấy nó đúng một lần khi mới cài Magento và bạn không cần sờ mó gì vào nó cả.

Vùng lập trình (Code pools)
Vùng lập trình của Magento được chia ra làm 3 phân vùng nhỏ, mỗi phân vùng đảm trách một vai trò riêng trong việc cấu thành bộ mã nguồn của nó
Vùng cốt lõi (Core): Vùng này chứa tất cả các chức năng thiết yếu tạo nên xương sống của Magento, nó là tập hợp các modules được viết hoặc được chứng nhận bởi đội ngũ lập trình của Magento. Bất cứ khi nào mở rộng hoặc tuỳ biến Magento, chúng ta đều cần phải tham khảo vùng này để hiểu được những gì Magento cung cấp, các thư viện cũng như các hàm có sẵn để chúng ta sử dụng. Magento không khuyến khích viết đè lên hay chỉnh sửa phần lõi này vì nó ảnh hưởng đến khả năng cập nhật của Magento và có thể gây ra các rắc rối không thể sửa chữa được. Trên thực tế, mình khuyến cáo các bạn KHÔNG BAO GIỜ được đụng tới vùng này ngoài việc xem (Cứ đụng vào đi rồi khóc ra đấy thì mình không chịu trách nhiệm đâu ).

Vùng bản địa (Local): Vùng này chứa tất cả các tuỳ biến và mở rộng Magento của người sử dụng. Nó được dựng nên chủ yếu để cho người dùng nghịch ngợm và phát triển những thứ của riêng họ dựa trên vùng lõi. Do đó nó hoàn toàn tách biệt với vùng lõi và không dính líu tới quá trình cập nhật của Magento khi có phiên bản mới. Có nhiều loại mở rộng khác nhau nhưng chúng đều nằm trong cùng một thư mục. Các phần mở rộng bản địa hoàn toàn hoạt động giống như phiên bản của chúng trong lõi, chỉ khác mỗi thư mục thôi. Đây là một cách rất hay để bạn lập trình mà không chạm vào lõi của Magento.

Vùng cộng đồng (Community): Vùng này dành cho các tuỳ biến và phần mở rộng Magento của cộng đồng phát triển Magento. Cũng như vùng bản địa, vùng cộng đồng này được phân tách ra để các nhà phát triển ứng dụng chuyên nghiệp sáng tạo ra các chức năng của riêng họ mà không gây ra xáo trộn gì trong lõi của Magento. Thú thực mình cũng chẳng hiểu tại sao phải cần có thêm vùng này và vùng này thì khác gì với vùng local nói ở trên vẫn là một câu hỏi khó. Nếu để ý, bạn sẽ thấy hầu hết các phần mở rộng toàn dùng vùng local thay vì community. Cứ coi đơn giản là chúng ta có nhiều sân chơi hơn để làm những thứ mà mình thích.

Gói mở rộng (Extensions)
Gói mở rộng được coi như một gói các tập mã lập trình cho phép mở rộng các chức năng của Magento. Thông thường, các gói mở rộng này phải tuân theo các quy định và điều khoản của Magento để đảm bảo chúng không can thiệp vào mã nguồn và các phần cốt lõi bên trong Magento, cũng như các tính năng mới mà chúng cung cấp không gây ảnh hưởng tới việc nâng cấp Magento.

Các gói mở rộng của Magento có thể được cài đặt bằng tay bằng Ctrl + C và Ctrl + V nếu bạn download mã nguồn của chúng về, hoặc cài đặt thông qua extension key do hệ thống Magento Connect cung cấp. Hầu hết các extension này phải mua, cũng có một lượng vừa đủ cho phép tải miễn phí. Nếu bạn nhìn vào giá của chúng trên hệ thống Magento Connect, bạn sẽ hiểu tại sao chúng ta nên học Magento

Modules
Một module là một gói mở rộng nhằm mở rộng cả tính năng lẫn đặc tính của Magento. Nếu bạn đã từng đọc qua về module của các loại phần mềm khác, bạn có thể dễ dàng hiểu nó là gì. Còn nếu bạn chưa thân thuộc lắm với nó thì có thể tưởng tượng ra một số ví dụ như: cho thêm một bước nữa vào quá trình đặt hàng, tích hợp một phương thức thanh toán mà Magento chưa hỗ trợ hay tạo hệ thống thưởng điểm cho khách hàng, etc. Bên trong một Module có các thành phần nhỏ, được phân vào các thư mục như sau:

Blocks
Blocks, gọi nôm na là các khối, là cách mà Magento phân biệt các mảng chức năng trong hệ thống và tạo ra phong cách quản lý kiểu module để quản lý các chức năng này cả về góc độ giao diện trực quan lẫn tính năng. Có 2 loại blocks và chúng phối hợp với nhau tạo ra giao diện trực quan mà bạn thấy trong Magento:

Structural blocks (Khối cấu trúc): 
Các khối này được tạo ra chỉ nhằm mục đích duy nhất là thiết đặt bố cục cho các trang. Ví dụ như khối header, khối body và khối footer tạo ra một trang có bố cục 3 phần chẳng hạn.
Content blocks (Khối nội dung): Là các khối chứa đựng nội dung nằm trong các khối cấu trúc ở trên. Chúng là đại diện cho từng đặc tính chức năng của trang và sử dụng template đã nói ở trên tạo ra đoạn mã HTML chèn vào khối cấu trúc cha của nó. Ví dụ cho khối nội dung các các khối mini cart, category list, product listing, etc.

Thực tế cho thấy rằng layout và các khối là các thành phần phức tạp và khó nuốt nhất khi bạn học Magento. Nó rất chặt chẽ nhưng chứa đựng đầy rẫy nguy cơ làm hỏng mọi thứ bạn làm chỉ với một chút bất cẩn nhỏ. Do đó việc hiểu cách thức hoạt động của block là cần thiết để giúp bạn thành thạo Magento (Chính mình cũng nhiều lúc điên đầu với mấy thằng này).

Helper
Tại đây bạn sẽ cho vào các helper class. Các hàm bạn định nghĩa trong helper có thể được gọi ở bất cứ chỗ nào. Do đó helper là nơi chứa các "công cụ" giúp quá trình lập trình của bạn trở nên dễ dàng hơn ở một khía cạnh nào đó (nếu không thì nó đã chả gọi là helper ).

Model
Tại đây bạn sẽ có thể tạo các Model mà bạn muốn theo phong cách MVC. Chỗ này còn là nơi mà một Model đặc biệt có tên là Observer cư ngụ. Nói nôm na thì nó là nơi bạn cho vào các chức năng xử lý sự kiện (kiểu như event listener) mà sau này mình sẽ nói nhiều hơn khi đi vào các trường hợp cụ thể.

controllers
Nếu bạn đã quen với MVC, bạn chắc chắn biết thư mục này dùng làm gì. Có điều là mình thấy hơi lạ khi nó sử dụng chữ 'c' nhỏ thay vì chữ 'C' to như nhiều nền tảng và bộ khung phát triển khác vẫn làm. Một kinh nghiệm mà mình biết được từ đồng nghiệp cho thấy các class nằm trong thư mục "controllers" sẽ cần phải cho thêm require_once([Tên_class_bạn_muốn_extend]) còn các class nằm trong thư mục "Controllers" thì không cần. Mình chưa rõ lắm có đúng không. Dù sao thì Magento cũng hỗ trợ cả hai cho nên cái nào thuận lợi nhất thì bạn dùng cái đó.

data
Ở đây bạn sẽ cho vào các dữ liệu cài đặt để khởi tạo module. Các dữ liệu này đương nhiên sẽ được lưu vào database. Ví dụ, khi bạn muốn tạo một trang CMS của riêng mình thì đây là nơi để bạn cho các dữ liệu khởi tạo vào.

sql
Cũng như trong thư mục "data", các dữ liệu trong thư mục này dùng để cài đặt khởi tạo module. Tuy nhiên nó không đi kèm nội dung mà thường chỉ gồm các câu lệnh SQL cơ bản để bạn khởi tạo cấu trúc các bảng trong cơ sở dữ liệu. Nói chung, vì thư mục này và "data" không khác nhau nhiều nên thường người ta chỉ sử dụng thư mục này cho cả việc khởi tạo data lẫn cấu trúc dữ liệu.

etc
Mọi thứ trong này chỉ là các file xml giúp bạn thiết đặt module của mình. Trong đó một file không thể thiếu là config.xml. Các vấn đề của thư mục này sẽ được nói rõ hơn ở các bài sau.

Interface
Là tập hợp các chủ đề giao diện xác định những thứ bạn nhìn thấy và các chức năng người dùng của cửa hàng Magento. Một interface có thể được đặt vào một trong số các cấp độ quản lý như website-level, store-level hoặc cả website-level lẫn store-level trong khu vực admin backend.

Themes
Một theme là tập hợp của các layout, template và các skin giao diện tạo ra môi trường trực quan mà người dùng nhìn thấy ở Magento. Bởi vì Magento có khả năng tải nhiều theme cùng một lúc nên nó phân biệt các theme thành 2 loại:
Theme mặc định: Mỗi giao diện (interface) đi kèm với một theme được gọi là 'default', cũng chính là theme mặc định của giao diện ấy. Mỗi lần bạn đặt một giao diện cho Magento, nó sẽ tự động tìm thằng theme mặc định này trước tiên. Vì thế, theme này phải luôn đảm bảo có đủ tất cả các layouts, templates và skins chuẩn để chạy được mọi trang trong Magento. Nó được xếp ở hàng thấp nhất trong hệ thống theme và cũng là cái quan trọng nhất.
Theme không mặc định: Với các theme không mặc định, bạn chỉ cần có một vài file nhất định tương ứng với một vài trang nhất định mà bạn muốn. Có bao nhiêu tuỳ ý bạn (vì đơn giản là những file thiếu Magento sẽ tự động tìm trong theme mặc định để hiển thị). Theme kiểu này được sử dụng để tạo ra các thay đổi có tính tạm thời, giúp bạn không phải tốn công làm lại toàn bộ giao diện mặc định với số lượng file khổng lồ. Bạn chỉ cần thay đổi một chút CSS, mấy cái JS vớ vẩn và vài cái HTML con con là giao diện của Magento sẽ ngầu hẳn lên!

Như đã viết ở trên, một theme có 3 thành phần chính bao gồm:
Layouts (Bố cục): 
Layouts là các file XML cơ bản định nghĩa cấu trúc và bố cục các khối (blocks) tại các trang khác nhau, nó cũng điều khiển các thông tin META và page encoding (ví dụ như các thông tin dành cho máy tìm kiếm, các thông tin về mã hoá trang dưới dạng Unicode hay ANSI). Các layouts này được bố trí tuỳ theo module với mỗi module có thể có layout riêng.
Templates: 
Template là các file có định dạng *.phtml sử dụng (X)HTML thuần và PHP để tạo ra logic hiển thị thông tin và đặc tính của trang.
Skins: 
Skin được cấu thành bởi CSS stylesheets, Javascript và hình ảnh. Nó được thiết đặt cho từng khối và khối là cái gì thì mình sẽ viết ngay bên dưới.

Để cụ thể hoá mọi thứ trong bài này, chúng ta hãy nhìn vào cấu trúc thư mục của Magento để làm rõ các điểm mà bạn còn băn khoăn. Do việc đào sâu hơn cách mà Magento load các module của nó và khởi tạo khá phức tạp và khó hiểu nên mình tạm thời bỏ qua. Ở các bài viết sau, các bạn sẽ dần làm quen và hiểu cách mà Magento xử lý những cái phức tạp này.



Cấu trúc thư mục của Magento, rất cần thiết và tóm lược hầu hết bài viết này








Read more ...

Code - Model class trong Magento

$headBlock->setTitle($title);
$product = $this->getProduct();
            $title = $product->getMetaTitle();
$currentCategory = Mage::registry('current_category');
setDescription(Mage::helper('core/string')

// if this is a product view page
            if (Mage::registry('product')) {
//Vòng loop foreach================
<?php foreach ($_filters as $_filter): ?>
    for every Item
<?php endforeach; ?>

<?php $subs = $obj->getCurrentCategory()->getAllChildren(true); ?> //getting ids of subcategories of current category

$_regularPrice = $product->getPrice();
        $_finalPrice = $product->getFinalPrice();

Mage::app()
Mage::helper('tax')
Mage::helper('core')

$collection = Mage::getModel('catalog/product')->getCollection(); 
$collection->addAttributeToSelect('brand');
$collection->addAttributeToFilter();

$this->getSkinUrl('images/header/az_marker100.jpg')) will output:
http://yourwebsite.com/skin/frontend/default/MG03C20024/images/header/az_marker100.jpg


Read more ...

Layout - Trình tự load layout trong Magento

Đọc cái này:
http://magebase.com/magento-tutorials/digging-deeper-into-magentos-layout-xml-part-2/
Read more ...

Template - Mối quan hệ giữa Block - Template - Layout trong Magento

Tham khảo Link sau
http://alanstorm.com/layouts_blocks_and_templates
Read more ...

Products - Thêm thông tin mã hàng SKU vào trang product trong Magento

Mở file template cho trang products tại app/design/frontend/default/your-theme/template/catalog/product/view.phtml

Ngay sau đoạn code:
<div class="product-name">
<h1><?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></h1>
</div>



Thêm code sau đây:
<?php echo $this->htmlEscape($_product->getSku()) ?>

hoặc:
<?php echo nl2br($_product->getSku()) ?>

Cấu hình trong Backend
Catalog > Attributes > Manage Attributes > [...search for sku...] > Frontend Properties > Visible on Product View Page on Front-end > Yes > Save
Read more ...

Magento - Khuyết điểm lớn nhất của một website dựa trên nền tảng Magento là gì ?

Trả lời:
Theo kinh nghiệm của bản thân tôi cũng như nhiều bạn bè trong giới lập trình web thì khuyết điểm lớn nhất của Magento chính là "Website Magento thường chạy chậm" so với các Framework thương mại điện tử khác. Tuy nhiên vấn đề này hiện nay đã có nhiều hướng khắc phục, giúp Magento ngày càng trở thành sự lựa chọn hàng đầu của nhiều khách hàng thiết kế website thương mại điện tử. 
  • Đã có những dịch vụ Hosting mạnh, được tối ưu hoá phần cứng cũng như phần mềm để chuyên hỗ trợ cho các website xây dựng trên nền tảng Magento. Ví dụ điển hình làSiteground.
  • Magento có cơ chế Cache mà đặc biệt là Full-Page Cache và Index giúp cho Website thương mại với số lượng sản phẩm lên đến vài ngàn, thậm chí hàng triệu sản phẩm vẫn có thể xử lý rất nhanh, giúp người dùng không phải đợi lâu sau mỗi truy vấn.
  • Sự hỗ trợ của Cloud Store, các CDN server giúp phân luồng xử lý thông tin từ nhiều server phục vụ khác nhau cùng lúc, cũng làm tăng tốc độ của Magento.
  • Trình độ viết code website của lập trình viên và việc tối ưu hoá mã nguồn cho website Magento cũng là vấn đề đáng quan tâm.
Read more ...

Magento - Những yêu cầu của một website thương mại điện tử chuyên nghiệp là gì ?

Trả lời: 
  1. Phải có những tính năng cơ bản của Magento xem thêm chi tiết.
  2. Phải có khả năng đáp ứng ổn định trên mọi trình duyệt web khác nhau như Chrome, Firefox, Safari, Opera, Internet Explorer, hay ổn định ở nhiều phiên bản trình khác nhau của cùng một chương trình duyệt web. Tính năng website này còn gọi là Cross Browser Capability.
  3. Website có khả năng bố cục lại giao diện của chính nó cho phù hợp trên các thiết bị có độ phân giải màn hình khác nhau như desktop, laptop, điện thoại smartphone, máy tính bảng... Tính năng này còn gọi là Responsive website. Bạn biết đấy, người dùng hiện nay không chỉ dùng laptop để duyệt web mà còn dùng máy tính bảng, nhất là điện thoại Smart phone nữa.
  4. Một số website còn chú trọng thiết kế giao diện riêng cho thiết bị di động Mobile nữa.
  5. Dễ dàng quản lý, nâng cấp, mở rộng, bảo trì, chạy ổn định, nhanh chóng với số lượng sản phẩm rất lớn.
Read more ...

Magento - Vì sao chọn Magento làm website bán hàng ?

Trả lời: 
  • Magento đã là sự lựa chọn của nhiều website bán hàng hàng đầu thế giới như ebay.com, amazon.com, ở Việt Nam như lazada.vn... Magento chính là sự lựa chọn hàng đầu cho một cuộc chơi thượng mại điện tử lớn.
  • Tích hợp sẵn nhiều tính năng hay cho một website thương mại:
    • Quản lý phân mục sản phẩm Category.
    • Hỗ trợ nhiều loại sản phẩm Products khác nhau.
    • Tạo nhiều loại thuộc tính khác nhau, không giới hạng cho một sản phẩm.
    • Upload nhiều hình ảnh cho một sản phẩm, xem sản phẩm phóng to zoom, giúp KH trãi nghiệm sản phẩm đầy đủ, rõ ràng.
    • Quản lý giá cũ, giá mới, giá theo số lượng, giá theo thời điểm, giá theo từng nhóm khách hàng khác nhau, giá thay đổi theo tuỳ chọn thêm của khách hàng cho một sản phẩm bất kỳ.
    • Quản lý sản phẩm yêu thích, so sánh các sản phẩm với nhau.
    • Quản lý kho hàng còn hay hết, số lượng cụ thể ra sao.
    • Tạo danh sách các sản phẩm liên quan với nhau, các sản phẩm xem nhiều nhất, các sản phẩm mới nhất, các sản phẩm bán chạy nhất, các sản phẩm gợi ý thêm cho khách hàng, các sản phẩm cùng chung một thuộc tính giống nhau.
    • Quản lý các banner quảng cáo, quản lý bình chọn, thăm dò ý kiến KH.
    • Quản lý giỏ hàng.
    • Quản lý khách hàng, phân nhóm khách hàng.
    • Hỗ trợ nhiều phương tiện thanh toán trong và ngoài nước.
    • Hỗ trợ tạo hoá đơn bán hàng tự động.
    • Thống kê mọi thông tin liên quan đến cửa hàng.
    • Hỗ trợ nhiều ngôn ngữ multi language cho website.
    • Hỗ trợ tạo mã giảm giá Coupon Code.
    • Hỗ trợ tạo mã quà tặng Gift Code, làm quà tặng cho bạn bè, người thân.
    • Tối ưu hoá đường dẫn website cho các bộ máy tìm kiếm SEO.
    • Tạo sơ đồ website sitemap.
    • Dễ dàng tuỳ biến nội dung và giao diện của tất cả các trang với nhiều cách khác nhau.
    • Giao diện cho người quản trị website Admin hay Backend rất thân thiện, dễ hiểu khi sử dụng, quản lý. Người quản trị có thể phân quyền ở mọi cấp độ cho những người hỗ trợ mình quản lý website.
    • Magento không chỉ quản lý bán hàng mà còn có hệ quản trị nội dung CMS tích hợp sẵn. Giúp tạo các trang nội dung hướng dẫn người mua hàng, các thông báo, thông tin khuyến mãi cho sản phẩm.
    • Cơ chế một mã nguồn có thể tạo nhiều website (cấu hình nhiều tên miền riêng cho từng website riêng ), một website có thể tạo nhiều cửa hàng, một cửa hàng có nhiều giao diện khác nhau, nhiều ngôn ngữ khác nhau.
    • Dễ dàng nâng cấp lên các phiên bản Magento mới mà không ảnh hưởng đến mã nguồn trước đó của website.
    • Mã nguồn có sự tách biệt rõ ràng giữa lõi Core và mã nguồn viết thêm (custom code). Mỗi tính năng mới tích hợp vào Magento được viết riêng trong từng module khác nhau theo quy ước rất chặt chẽ của Magento, nên dễ dàng cài đặt, mở rộng, quản lý code, bảo trì và sửa lỗi.
    • Magento là ngôn ngữ thân thiện cho các nhà phát triển Code Developer hơn là một người dùng phổ thông. Magento có những cơ chế và cách thức rất hay, rất khoa học giúp các nhà thiết kế phát triển website bán hàng (user programmer ) có thể tuỳ biến, bổ sung tính năng mở rộng, đáp ứng hầu như mọi ý tưởng phong phú hay yêu cầu thiết kế từ phía khách hàng. Tức nhiên điều này tuỳ thuộc vào trình độ của người lập trình web Magento. :)
    Read more ...

    Thứ Hai, 22 tháng 9, 2014

    Static block - Thêm trực tiếp một Static Block vào một file template .phtml trong Magento

    Thêm Static Block thông qua Identifier trực tiếp vào templates (.phtml)
    <?php echo $this->getLayout() ->createBlock('cms/block') 
    ->setBlockId('your_block_id')->toHtml(); ?>

    Code chèn Static Block vào Static Block khác hay một CMS Page :
    {{block type="cms/block" block_id="your_block_id"}}
    Read more ...

    Static Block - Cách chèn một static block vào CMS page trong Magento

    Tạo Static Block: 
    CMS => Static Blocks => Add New Block.
    Ví dụ Block mới tạo có Identifier là: your_block_id

    Chèn Static Block vào một trang CMS Pages:
    {{block type="cms/block" block_id="your_block_id"}}
    Read more ...

    Google Sitemap - Cách tạo google sitemap cho một store view trong magento

    Magento tích hợp sẵn tính năng tạo sitemap cho một Store View bất kỳ. Sitemap là một file có phần mở rộng .xml, mục đích của việc tạo sitemap là giúp cho bộ máy tìm kiếm (ví dụ google, yahoo, bing ..vv. ) biết được cấu trúc nội dung của website magento mà bạn đang thiết kế. File sitemap sẽ chứa tất cả các đường URL đến các trang nội dung CMS page, các Categories, các sản phẩm Products trong cửa hàng của bạn.

    Cách tạo Google Sitemap trong Magento:
    Catalog => google sitemap => Click nút Add Sitemap

    Trong trang mới vừa hiện ra: "New Sitemap" 
    Filename: tên sitemap file, có đuôi .xml
    Path: đường dẫn đến thư mục chứa file sitemap. Bạn phải tạo trước thư mục nếu không muốn chứa trong thư mục gốc root.
    Store View: sitemap tạo cho storeview nào ?
    Sau khi hoàn tất nhấn Save & Generate
    Read more ...

    Thứ Ba, 16 tháng 9, 2014

    Static Block - Gọi một Static block và đặt vào một trang CMS page trong magento

    Trong phần content của một trang CMS page bất kỳ. Gọi một Static block thông qua Identifier của nó theo cú pháp sau đây:

    {{block type="cms/block" block_id="block_identifier"}}

    Muốn xác định Block Identifier:
    Bước 1: Vào phần quản trị Admin hay Backend của Magento
    Bước 2: Truy cập menu CMS => Static Block. Trong trang Static Block hiện ra sẽ thấy Identifier ( cột thứ 2 ).

    Read more ...

    Thứ Hai, 8 tháng 9, 2014

    Products - Các loại sản phẩm ( Product Type ) trong Magento

    Magento hỗ trợ tạo nhiều loại sản phẩm khác nhau.
    Đăng nhập vào phần quản trị Admin ( Backend Magento ).
    Truy cập menu quản lý sản phẩm Catalog => Manage products.
    Trong cửa sổ mới hiện ra Click nút Add Product.
    Create Product Settings hiện ra. Trong Product Type có các loại sản phẩm sau đây.

    1. Simple Product ( Sản phẩm đơn giản, thông dụng nhất ) => Các bước tạo Simple Product
    2. Grouped Product ( Nhóm sản phẩm ) => Các bước tạo Grouped Product.
    3. Configurable Product ( Sản phẩm có thuộc tính cấu hình được như kích thước, màu sắc...) => Các bước tạo Configurable Product.
    4. Virtual Product ( Sản phẩm ảo như là dịch vụ, bảo hiểm... ) => Các bước tạo Virtual Product.
    5. Bundle Product ( Sản phầm gồm nhiều Simple Product và Configurable Product ) => Các bước tạo Bundle Product.
    6. Downloadable Product ( Sản phẩm là hình ảnh, phần mềm, mua thông qua download) => Các bước tạo Downloadable Product.
    Read more ...

    Products - Các bước tạo Downloadable Product trong Magento

    Viết sau...
    Read more ...

    Products - Các bước tạo Bundle Product trong Magento

    Viết sau...
    Read more ...

    Products - Các bước tạo Virtual Product trong Magento

    Viết sau...
    Read more ...

    Products - Các bước tạo Configurable Product trong Magento

    Viết sau...
    Read more ...

    Products - Các bước tạo Grouped Product trong Magento

    Viết sau ...
    Read more ...

    Products - Các bước tạo Simple Product trong Magento

    Viết sau...
    Read more ...

    Extentions - Ajax Image Uploaded dễ dàng upload hình ảnh sản phẩm trong Magento

    Cấu trúc file và  thư mục của Extention này:
    /app/
       /app/code/
       /app/code/local/
       /app/code/local/Amasty/
       /app/code/local/Amasty/Base/
       /app/code/local/Amasty/Base/Block/
      /app/code/local/Amasty/Base/Block/Extensions.php  
       /app/code/local/Amasty/Base/Helper/
      /app/code/local/Amasty/Base/Helper/Data.php  
       /app/code/local/Amasty/Base/Model/
      /app/code/local/Amasty/Base/Model/Feed.php  
       /app/code/local/Amasty/Base/Model/Source/
       /app/code/local/Amasty/Base/Model/Source/Updates/
      /app/code/local/Amasty/Base/Model/Source/Updates/Type.php  
       /app/code/local/Amasty/Base/etc/
      /app/code/local/Amasty/Base/etc/adminhtml.xml  
      /app/code/local/Amasty/Base/etc/config.xml  
      /app/code/local/Amasty/Base/etc/system.xml  
       /app/code/local/Amasty/Base/sql/
       /app/code/local/Amasty/Base/sql/ambase_setup/
      /app/code/local/Amasty/Base/sql/ambase_setup/mysql4-install-1.0.0.php  
      /app/code/local/Amasty/Base/sql/ambase_setup/mysql4-upgrade-1.0.0-1.0.1.php  
       /app/code/local/Amasty/Imgupload/
       /app/code/local/Amasty/Imgupload/Block/
       /app/code/local/Amasty/Imgupload/Block/Adminhtml/
       /app/code/local/Amasty/Imgupload/Block/Adminhtml/Catalog/
       /app/code/local/Amasty/Imgupload/Block/Adminhtml/Catalog/Product/
       /app/code/local/Amasty/Imgupload/Block/Adminhtml/Catalog/Product/Edit/
       /app/code/local/Amasty/Imgupload/Block/Adminhtml/Catalog/Product/Edit/Tab/
      /app/code/local/Amasty/Imgupload/Block/Adminhtml/Catalog/Product/Edit/Tab/Images.php  
       /app/code/local/Amasty/Imgupload/Helper/
      /app/code/local/Amasty/Imgupload/Helper/Data.php  
       /app/code/local/Amasty/Imgupload/Model/
      /app/code/local/Amasty/Imgupload/Model/Observer.php  
       /app/code/local/Amasty/Imgupload/Model/System/
       /app/code/local/Amasty/Imgupload/Model/System/Config/
       /app/code/local/Amasty/Imgupload/Model/System/Config/Source/
      /app/code/local/Amasty/Imgupload/Model/System/Config/Source/Dragable.php  
       /app/code/local/Amasty/Imgupload/controllers/
       /app/code/local/Amasty/Imgupload/controllers/Adminhtml/
      /app/code/local/Amasty/Imgupload/controllers/Adminhtml/ImageController.php  
       /app/code/local/Amasty/Imgupload/etc/
      /app/code/local/Amasty/Imgupload/etc/adminhtml.xml  
      /app/code/local/Amasty/Imgupload/etc/config.xml  
      /app/code/local/Amasty/Imgupload/etc/system.xml  
       /app/code/local/Amasty/Imgupload/sql/
       /app/code/local/Amasty/Imgupload/sql/amimgupload_setup/
       /app/design/
       /app/design/adminhtml/
       /app/design/adminhtml/default/
       /app/design/adminhtml/default/default/
       /app/design/adminhtml/default/default/layout/
      /app/design/adminhtml/default/default/layout/amimgupload.xml  
       /app/design/adminhtml/default/default/template/
       /app/design/adminhtml/default/default/template/amimgupload/
       /app/design/adminhtml/default/default/template/amimgupload/product/
       /app/design/adminhtml/default/default/template/amimgupload/product/edit/
       /app/design/adminhtml/default/default/template/amimgupload/product/edit/tab/
      /app/design/adminhtml/default/default/template/amimgupload/product/edit/tab/images.phtml  
       /app/etc/
       /app/etc/modules/
      /app/etc/modules/Amasty_Base.xml  
      /app/etc/modules/Amasty_Imgupload.xml  
       /app/locale/
       /app/locale/en_US/
      /app/locale/en_US/Amasty_Imgupload.csv  
       /js/
       /js/amasty/
       /js/amasty/amimgupload/
      /js/amasty/amimgupload/functions.js  
      /js/amasty/amimgupload/upload.css  
      /js/amasty/amimgupload/upload.js  
      /js/amasty/amimgupload/upload_drag.js  
      /js/amasty/amimgupload/upload_select.js  
      /license.txt  
      /readme.txt  
       /skin/
       /skin/adminhtml/
       /skin/adminhtml/default/
       /skin/adminhtml/default/default/
       /skin/adminhtml/default/default/amasty/
       /skin/adminhtml/default/default/amasty/amimgupload/
      /skin/adminhtml/default/default/amasty/amimgupload/images.css  
      /skin/adminhtml/default/default/amasty/amimgupload/label.png  
      /skin/adminhtml/default/default/amasty/amimgupload/move.png  
       /skin/adminhtml/default/default/images/
       /skin/adminhtml/default/default/images/ambase/
      /skin/adminhtml/default/default/images/ambase/bad.gif  
      /skin/adminhtml/default/default/images/ambase/ok.gif  
      /skin/adminhtml/default/default/images/ambase/update.gif  
    Read more ...

    Extentions - Advanced Custom Options tuỳ chỉnh thuộc tính Attribute mở rộng cho sản phẩm trong Magento

    Hỗ trợ Magento 1.4.x, 1.5.x, 1.6.x đến 1.7.x
    Cấu trúc file và thư mục của extention này:
    /app/
    /app/code/
    /app/code/local/
    /app/code/local/MageWorx/
    /app/code/local/MageWorx/Adminhtml/
    /app/code/local/MageWorx/Adminhtml/Block/
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Abstract.php
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Adminhtml/
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Adminhtml/Catalog/
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Adminhtml/Catalog/Product/
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Adminhtml/Catalog/Product/Edit/
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Adminhtml/Catalog/Product/Edit/Tab/
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Adminhtml/Catalog/Product/Edit/Tab/Options/
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Adminhtml/Catalog/Product/Edit/Tab/Options/Option/
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Adminhtml/Catalog/Product/Edit/Tab/Options/Option/Abstract.php
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Adminhtml/Catalog/Product/Edit/Tab/Options/Option.php
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Adminhtml/Catalog/Product/Edit/Tab/Options/Type/
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Adminhtml/Catalog/Product/Edit/Tab/Options/Type/Date.php
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Adminhtml/Catalog/Product/Edit/Tab/Options/Type/File.php
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Adminhtml/Catalog/Product/Edit/Tab/Options/Type/Select.php
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Adminhtml/Catalog/Product/Edit/Tab/Options/Type/Text.php
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Adminhtml/Catalog/Product/Edit/Tab/Options.php
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Options/
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Options/Edit/
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Options/Edit/Form.php
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Options/Edit/Tab/
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Options/Edit/Tab/General.php
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Options/Edit/Tab/Options/
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Options/Edit/Tab/Options/Groups.php
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Options/Edit/Tab/Options/Option.php
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Options/Edit/Tab/Options/Type/
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Options/Edit/Tab/Options/Type/Select.php
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Options/Edit/Tab/Options.php
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Options/Edit/Tab/Product.php
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Options/Edit/Tab/Renderer/
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Options/Edit/Tab/Renderer/Prodcat.php
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Options/Edit/Tabs.php
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Options/Edit.php
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Options/Grid.php
    /app/code/local/MageWorx/Adminhtml/Block/Customoptions/Options.php
    /app/code/local/MageWorx/Adminhtml/Block/System/
    /app/code/local/MageWorx/Adminhtml/Block/System/Config/
    /app/code/local/MageWorx/Adminhtml/Block/System/Config/Edit.php
    /app/code/local/MageWorx/Adminhtml/Block/System/Config/Form/
    /app/code/local/MageWorx/Adminhtml/Block/System/Config/Form/Fieldset/
    /app/code/local/MageWorx/Adminhtml/Block/System/Config/Form/Fieldset/Mageworx/
    /app/code/local/MageWorx/Adminhtml/Block/System/Config/Form/Fieldset/Mageworx/Abstract.php
    /app/code/local/MageWorx/Adminhtml/Block/System/Config/Form/Fieldset/Mageworx/Extensions.php
    /app/code/local/MageWorx/Adminhtml/Block/System/Config/Form/Fieldset/Mageworx/Support.php
    /app/code/local/MageWorx/Adminhtml/controllers/
    /app/code/local/MageWorx/Adminhtml/controllers/Customoptions/
    /app/code/local/MageWorx/Adminhtml/controllers/Customoptions/OptionsController.php
    /app/code/local/MageWorx/Adminhtml/controllers/SupportController.php
    /app/code/local/MageWorx/Adminhtml/etc/
    /app/code/local/MageWorx/Adminhtml/etc/config.xml
    /app/code/local/MageWorx/Adminhtml/etc/system.xml
    /app/code/local/MageWorx/Adminhtml/Helper/
    /app/code/local/MageWorx/Adminhtml/Helper/Data.php
    /app/code/local/MageWorx/Adminhtml/Model/
    /app/code/local/MageWorx/Adminhtml/Model/Support.php
    /app/code/local/MageWorx/Adminhtml/Model/System/
    /app/code/local/MageWorx/Adminhtml/Model/System/Config/
    /app/code/local/MageWorx/Adminhtml/Model/System/Config/Source/
    /app/code/local/MageWorx/Adminhtml/Model/System/Config/Source/Customoptions/
    /app/code/local/MageWorx/Adminhtml/Model/System/Config/Source/Customoptions/Sku/
    /app/code/local/MageWorx/Adminhtml/Model/System/Config/Source/Customoptions/View/
    /app/code/local/MageWorx/CustomOptions/
    /app/code/local/MageWorx/CustomOptions/Block/
    /app/code/local/MageWorx/CustomOptions/Block/Catalog/
    /app/code/local/MageWorx/CustomOptions/Block/Catalog/Product/
    /app/code/local/MageWorx/CustomOptions/Block/Catalog/Product/View/
    /app/code/local/MageWorx/CustomOptions/Block/Catalog/Product/View/Options/
    /app/code/local/MageWorx/CustomOptions/Block/Catalog/Product/View/Options/Type/
    /app/code/local/MageWorx/CustomOptions/Block/Catalog/Product/View/Options/Type/Select.php
    /app/code/local/MageWorx/CustomOptions/Block/Core/
    /app/code/local/MageWorx/CustomOptions/Block/Core/Html/
    /app/code/local/MageWorx/CustomOptions/Block/Core/Html/Select.php
    /app/code/local/MageWorx/CustomOptions/controllers/
    /app/code/local/MageWorx/CustomOptions/etc/
    /app/code/local/MageWorx/CustomOptions/etc/adminhtml.xml
    /app/code/local/MageWorx/CustomOptions/etc/config.xml
    /app/code/local/MageWorx/CustomOptions/etc/system.xml
    /app/code/local/MageWorx/CustomOptions/Helper/
    /app/code/local/MageWorx/CustomOptions/Helper/Data.php
    /app/code/local/MageWorx/CustomOptions/Helper/Product/
    /app/code/local/MageWorx/CustomOptions/Helper/Product/Configuration/
    /app/code/local/MageWorx/CustomOptions/Helper/Product/Configuration/Abstract.php
    /app/code/local/MageWorx/CustomOptions/Helper/Product/Configuration.php
    /app/code/local/MageWorx/CustomOptions/Model/
    /app/code/local/MageWorx/CustomOptions/Model/Catalog/
    /app/code/local/MageWorx/CustomOptions/Model/Catalog/Product/
    /app/code/local/MageWorx/CustomOptions/Model/Catalog/Product/Option/
    /app/code/local/MageWorx/CustomOptions/Model/Catalog/Product/Option/Type/
    /app/code/local/MageWorx/CustomOptions/Model/Catalog/Product/Option/Type/Select.php
    /app/code/local/MageWorx/CustomOptions/Model/Catalog/Product/Option.php
    /app/code/local/MageWorx/CustomOptions/Model/Catalog/Product/Type/
    /app/code/local/MageWorx/CustomOptions/Model/Catalog/Product/Type/Configurable/
    /app/code/local/MageWorx/CustomOptions/Model/Catalog/Product/Type/Configurable/Price.php
    /app/code/local/MageWorx/CustomOptions/Model/Catalog/Product/Type/Downloadable/
    /app/code/local/MageWorx/CustomOptions/Model/Catalog/Product/Type/Downloadable/Price.php
    /app/code/local/MageWorx/CustomOptions/Model/Catalog/Product/Type/Price/
    /app/code/local/MageWorx/CustomOptions/Model/Catalog/Product/Type/Price/Abstract.php
    /app/code/local/MageWorx/CustomOptions/Model/Catalog/Product/Type/Price.php
    /app/code/local/MageWorx/CustomOptions/Model/Group/
    /app/code/local/MageWorx/CustomOptions/Model/Group/Store.php
    /app/code/local/MageWorx/CustomOptions/Model/Group.php
    /app/code/local/MageWorx/CustomOptions/Model/Importexport/
    /app/code/local/MageWorx/CustomOptions/Model/Importexport/Export/
    /app/code/local/MageWorx/CustomOptions/Model/Importexport/Export/Entity/
    /app/code/local/MageWorx/CustomOptions/Model/Importexport/Export/Entity/Product.php
    /app/code/local/MageWorx/CustomOptions/Model/Importexport/Import/
    /app/code/local/MageWorx/CustomOptions/Model/Importexport/Import/Entity/
    /app/code/local/MageWorx/CustomOptions/Model/Importexport/Import/Entity/Product.php
    /app/code/local/MageWorx/CustomOptions/Model/Mysql4/
    /app/code/local/MageWorx/CustomOptions/Model/Mysql4/Group/
    /app/code/local/MageWorx/CustomOptions/Model/Mysql4/Group/Collection.php
    /app/code/local/MageWorx/CustomOptions/Model/Mysql4/Group/Store/
    /app/code/local/MageWorx/CustomOptions/Model/Mysql4/Group/Store/Collection.php
    /app/code/local/MageWorx/CustomOptions/Model/Mysql4/Group/Store.php
    /app/code/local/MageWorx/CustomOptions/Model/Mysql4/Group.php
    /app/code/local/MageWorx/CustomOptions/Model/Mysql4/Product/
    /app/code/local/MageWorx/CustomOptions/Model/Mysql4/Product/Indexer/
    /app/code/local/MageWorx/CustomOptions/Model/Mysql4/Product/Indexer/Price/
    /app/code/local/MageWorx/CustomOptions/Model/Mysql4/Product/Indexer/Price/Default.php
    /app/code/local/MageWorx/CustomOptions/Model/Mysql4/Product/Option/
    /app/code/local/MageWorx/CustomOptions/Model/Mysql4/Product/Option/Collection.php
    /app/code/local/MageWorx/CustomOptions/Model/Mysql4/Product/Option/Value/
    /app/code/local/MageWorx/CustomOptions/Model/Mysql4/Product/Option/Value/Collection.php
    /app/code/local/MageWorx/CustomOptions/Model/Mysql4/Product/Option/Value.php
    /app/code/local/MageWorx/CustomOptions/Model/Mysql4/Product/Option.php
    /app/code/local/MageWorx/CustomOptions/Model/Mysql4/Relation.php
    /app/code/local/MageWorx/CustomOptions/Model/Mysql4/Setup.php
    /app/code/local/MageWorx/CustomOptions/Model/Observer.php
    /app/code/local/MageWorx/CustomOptions/Model/Relation.php
    /app/code/local/MageWorx/CustomOptions/Model/Sales/
    /app/code/local/MageWorx/CustomOptions/Model/Sales/Quote/
    /app/code/local/MageWorx/CustomOptions/Model/Sales/Quote/Total.php
    /app/code/local/MageWorx/CustomOptions/Model/System/
    /app/code/local/MageWorx/CustomOptions/Model/System/Config/
    /app/code/local/MageWorx/CustomOptions/Model/System/Config/Backend/
    /app/code/local/MageWorx/CustomOptions/Model/System/Config/Backend/Checkdb.php
    /app/code/local/MageWorx/CustomOptions/Model/System/Config/Source/
    /app/code/local/MageWorx/CustomOptions/Model/System/Config/Source/Image/
    /app/code/local/MageWorx/CustomOptions/Model/System/Config/Source/Image/Mode.php
    /app/code/local/MageWorx/CustomOptions/Model/System/Config/Source/Sku/
    /app/code/local/MageWorx/CustomOptions/Model/System/Config/Source/Sku/Apply.php
    /app/code/local/MageWorx/CustomOptions/Model/System/Config/Source/Sku/Policy.php
    /app/code/local/MageWorx/CustomOptions/Model/System/Config/Source/View/
    /app/code/local/MageWorx/CustomOptions/Model/System/Config/Source/View/Mode.php
    /app/code/local/MageWorx/CustomOptions/sql/
    /app/code/local/MageWorx/CustomOptions/sql/customoptions_setup/
    /app/code/local/MageWorx/CustomOptions/sql/customoptions_setup/mysql4-install-1.0.0.php
    /app/code/local/MageWorx/CustomOptions/sql/customoptions_setup/mysql4-upgrade-1.0.1-1.0.2.php
    /app/code/local/MageWorx/CustomOptions/sql/customoptions_setup/mysql4-upgrade-1.0.2-1.0.3.php
    /app/code/local/MageWorx/CustomOptions/sql/customoptions_setup/mysql4-upgrade-1.0.3-1.0.4.php
    /app/code/local/MageWorx/CustomOptions/sql/customoptions_setup/mysql4-upgrade-1.0.4-1.1.0.php
    /app/code/local/MageWorx/CustomOptions/sql/customoptions_setup/mysql4-upgrade-1.1.0-2.0.0.php
    /app/code/local/MageWorx/CustomOptions/sql/customoptions_setup/mysql4-upgrade-2.0.4-2.1.0.php
    /app/code/local/MageWorx/CustomOptions/sql/customoptions_setup/mysql4-upgrade-2.1.7-2.1.8.php
    /app/code/local/MageWorx/CustomOptions/sql/customoptions_setup/mysql4-upgrade-2.1.8-2.1.9.php
    /app/code/local/MageWorx/CustomOptions/sql/customoptions_setup/mysql4-upgrade-2.1.99-2.2.0.php
    /app/code/local/MageWorx/CustomOptions/sql/customoptions_setup/mysql4-upgrade-2.2.5-2.2.6.php
    /app/code/local/MageWorx/CustomOptions/sql/customoptions_setup/mysql4-upgrade-2.4.4-2.2.5.php
    /app/code/local/MageWorx/CustomOptions/sql/customoptions_setup/mysql4-upgrade-2.5.0-2.6.0.php
    /app/code/local/MageWorx/CustomOptions/sql/customoptions_setup/mysql4-upgrade-2.99.0-3.0.0.php
    /app/code/local/MageWorx/CustomOptions/sql/customoptions_setup/mysql4-upgrade-3.0.8-3.1.0.php
    /app/code/local/MageWorx/CustomOptions/sql/customoptions_setup/mysql4-upgrade-3.9.99-4.0.0.php
    /app/design/
    /app/design/adminhtml/
    /app/design/adminhtml/default/
    /app/design/adminhtml/default/default/
    /app/design/adminhtml/default/default/layout/
    /app/design/adminhtml/default/default/layout/customoptions.xml
    /app/design/adminhtml/default/default/template/
    /app/design/adminhtml/default/default/template/customoptions/
    /app/design/adminhtml/default/default/template/customoptions/apply.phtml
    /app/design/adminhtml/default/default/template/customoptions/catalog-product-edit-options-option.phtml
    /app/design/adminhtml/default/default/template/customoptions/catalog-product-edit-options-type-date.phtml
    /app/design/adminhtml/default/default/template/customoptions/catalog-product-edit-options-type-file.phtml
    /app/design/adminhtml/default/default/template/customoptions/catalog-product-edit-options-type-select.phtml
    /app/design/adminhtml/default/default/template/customoptions/catalog-product-edit-options-type-text.phtml
    /app/design/adminhtml/default/default/template/customoptions/catalog-product-edit-options.phtml
    /app/design/adminhtml/default/default/template/customoptions/composite/
    /app/design/adminhtml/default/default/template/customoptions/composite/fieldset-options-type-date.phtml
    /app/design/adminhtml/default/default/template/customoptions/composite/fieldset-options-type-file.phtml
    /app/design/adminhtml/default/default/template/customoptions/composite/fieldset-options-type-select.phtml
    /app/design/adminhtml/default/default/template/customoptions/composite/fieldset-options-type-text.phtml
    /app/design/adminhtml/default/default/template/customoptions/composite/fieldset-options.phtml
    /app/design/adminhtml/default/default/template/customoptions/composite/option_image.phtml
    /app/design/adminhtml/default/default/template/customoptions/options.phtml
    /app/design/adminhtml/default/default/template/customoptions/option_image.phtml
    /app/design/adminhtml/default/default/template/customoptions/widget-grid-massaction.phtml
    /app/design/adminhtml/default/default/template/customoptions/widget-grid.phtml
    /app/design/frontend/
    /app/design/frontend/base/
    /app/design/frontend/base/default/
    /app/design/frontend/base/default/layout/
    /app/design/frontend/base/default/layout/customoptions.xml
    /app/design/frontend/base/default/template/
    /app/design/frontend/base/default/template/customoptions/
    /app/design/frontend/base/default/template/customoptions/catalog-product-view-options-type-date.phtml
    /app/design/frontend/base/default/template/customoptions/catalog-product-view-options-type-default.phtml
    /app/design/frontend/base/default/template/customoptions/catalog-product-view-options-type-file.phtml
    /app/design/frontend/base/default/template/customoptions/catalog-product-view-options-type-select.phtml
    /app/design/frontend/base/default/template/customoptions/catalog-product-view-options-type-text.phtml
    /app/design/frontend/base/default/template/customoptions/catalog-product-view-options.phtml
    /app/design/frontend/base/default/template/customoptions/catalog-product-view-price_clone.phtml
    /app/design/frontend/base/default/template/customoptions/option_image.phtml
    /app/design/frontend/default/
    /app/design/frontend/default/chumbak/
    /app/design/frontend/default/chumbak/layout/
    /app/design/frontend/default/chumbak/layout/customoptions.xml
    /app/design/frontend/default/chumbak/template/
    /app/design/frontend/default/chumbak/template/customoptions/
    /app/design/frontend/default/chumbak/template/customoptions/catalog-product-view-options-type-date.phtml
    /app/design/frontend/default/chumbak/template/customoptions/catalog-product-view-options-type-default.phtml
    /app/design/frontend/default/chumbak/template/customoptions/catalog-product-view-options-type-file.phtml
    /app/design/frontend/default/chumbak/template/customoptions/catalog-product-view-options-type-select.phtml
    /app/design/frontend/default/chumbak/template/customoptions/catalog-product-view-options-type-text.phtml
    /app/design/frontend/default/chumbak/template/customoptions/catalog-product-view-options.phtml
    /app/design/frontend/default/chumbak/template/customoptions/catalog-product-view-price_clone.phtml
    /app/design/frontend/default/chumbak/template/customoptions/option_image.phtml
    /app/etc/
    /app/etc/modules/
    /app/etc/modules/MageWorx_Adminhtml.xml
    /app/etc/modules/MageWorx_CustomOptions.xml
    /app/locale/
    /app/locale/en_US/
    /app/locale/en_US/MageWorx_Adminhtml.csv
    /app/locale/en_US/MageWorx_CustomOptions.csv
    /app/locale/en_US/template/
    /app/locale/en_US/template/email/
    /app/locale/en_US/template/email/mageworx_support.html
    /app/locale/en_US/template/MageWorx_Adminhtml.csv
    /app/locale/en_US/template/MageWorx_CustomOptions.csv
    /app/locale/ja_JP/
    /app/locale/ja_JP/MageWorx_Adminhtml.csv
    /app/locale/ja_JP/MageWorx_CustomOptions.csv
    /app/locale/ja_JP/template/
    /app/locale/ja_JP/template/email/
    /app/locale/ja_JP/template/email/mageworx_support.html
    /app/locale/ja_JP/template/MageWorx_Adminhtml.csv
    /app/locale/ja_JP/template/MageWorx_CustomOptions.csv
    /js/
    /js/mageworx/
    /js/mageworx/lightbox/
    /js/mageworx/lightbox/css/
    /js/mageworx/lightbox/css/lightbox-ie.css
    /js/mageworx/lightbox/css/lightbox.css
    /js/mageworx/lightbox/images/
    /js/mageworx/lightbox/images/bullet.gif
    /js/mageworx/lightbox/images/close.gif
    /js/mageworx/lightbox/images/closelabel.gif
    /js/mageworx/lightbox/images/download-icon.gif
    /js/mageworx/lightbox/images/loading.gif
    /js/mageworx/lightbox/images/nextlabel.gif
    /js/mageworx/lightbox/images/prevlabel.gif
    /js/mageworx/lightbox/js/
    /js/mageworx/lightbox/js/lightbox.js
    Read more ...

    Thứ Bảy, 6 tháng 9, 2014

    Custom options - Tất cả các loại option tuỳ chỉnh trong Product của Magento

    Truy cập Custom Options trong Magento như sau:
    - Vào Backend Magento
    - Menu Catalog => Manage Product => Chọn một product bất kỳ trong danh sách
    - Trong trang chình sửa cho Product vừa chọn, nhìn vào menu trái sẽ thấy tuỳ chình Custom Options ờ cuối menu.
    Sau đây là danh sách các loại option tuỳ chỉnh (input Type ) trong Magento trong Backend và biều mẫu của các option khi hiển thị ngoài Frontend.
    Backend:

    Frontend:

    Read more ...

    Thứ Sáu, 5 tháng 9, 2014

    Currency - Đổi đơn vị tiền tệ từ "đ" thành "VNĐ" trong Magento

    Để thay đổi ký hiệu ( symbol ) cho các đơn vị tiền tệ trong Magento. Bạn làm như sau
    Bước 1:
    - Đăng nhập phần quản trị Admin của Magento
    Bước 2:
    - Truy cập menu System => Manage Currency => Symbols
    - Trong cửa sổ"Manage Currency Symbols" mới hiển thị, Thay đổi ký hiệu "đ" thành VNĐ. Refresh trang web để xem kết quả.

    Read more ...

    Currency - Bỏ 2 chữ số thập phân của giá sản phẩm trong Magento

    Ban đầu: 22.000,00đ
    Kết quả: 22.000đ
    Cách thực hiện như sau:

    Bước 1: 
    Vào thư mục code/core/Mage/Directory/Model/Currency.php
    Copy file Currency.php và chuyển vào thư mục
    code/local/Mage/Directory/Model/Currency.php
    ( Làm việc này để tránh tác động vào lõi code core của Magento, thuận tiện cho việc nâng cấp Magento sau này.)

    Bước 2:
    Mở file Currency.php trong code/local/Mage/Directory/Model/Currency.php bằng chương trình chỉnh sửa file text, ví dụ như notepad. Tìm đến dòng code xung quanh dòng 194.

    public function format($price, $options=array(), $includeContainer = true, $addBrackets = false)
    { return $this->formatPrecision($price, 2, $options, $includeContainer, $addBrackets);
    }
    Thay thế số 2 thành số 0. Lưu file.
     
    public function format($price, $options=array(), $includeContainer = true, $addBrackets = false)
    { return $this->formatPrecision($price, 0, $options, $includeContainer, $addBrackets);
    }

    Sau đó clear Cache trong Magento, vào Admin truy cập menu System –> Cache Management => Refresh Cache ( Nhớ Select All )
    - Nếu kết quả vẫn chưa như ý muốn, bạn vào thư mục var/cache xóa thư mục cache, sau đó refresh lại website.
    Chúc bạn thành công !
    Read more ...

    Thứ Tư, 3 tháng 9, 2014

    Multi Language - Thêm file dịch đa ngôn ngữ .CSV cho module trong Magento

    Bước 1: Khai báo file dịch .CSV cho module bất kỳ cho Frontend và Backend Magnento.
    Mở file /app/code/local/Company_Name/Module_Name/etc/config.xml
    <?xml version="1.0"?>
    <config>
        <frontend>
            ...
            <translate>
                <modules>
                    <Companyname_Modulename>
                        <files>
                            <default>Companyname_Modulename.csv</default>
                        </files>
                    </Companyname_Modulename>
                </modules>
            </translate>
        </frontend>
        <adminhtml>
            ...
            <translate>
                <modules>
                    <Companyname_Modulename>
                        <files>
                            <default>Companyname_Modulename.csv</default>
                        </files>
                    </Companyname_Modulename>
                </modules>
            </translate>
        </adminhtml>
        ...
    </config>

    Bước 2: Tạo file Companyname_Modulename.csv trong thư mục app/locale/ => chọn gói thư mục ngôn ngữ en_US hay vi_VN Mở file Companyname_Modulename.csv và thêm nội dung cần dịch theo từng cặp như sau:

    "Tu Can Dich","Dich Tu Can Dich"
    ...
    Bước 3: Áp dụng từ cần dịch vào file template của một Block bất kỳ nào đó trong Module theo cú pháp sau:

    <?php
    echo $this->__('Tu Can Dich');
    ?>


    Read more ...

    Biểu mẫu liên hệ

    Tên

    Email *

    Thông báo *