Chỉnh sửa giới hạn upload limit 300kb / 1000 x 1000px Opencart

Giới hạn upload 300kb và kích thước lớn nhất 1000px x 1000px của Opencart tất nhiên là tương đối hợp lý vì với kích thước quá lớn thì cũng không view hết trên màn hình mà dung lượng lớn quá thì dẫn đến việc xử lý ảnh và load cũng chậm. Tuy nhiên việc kích thước ảnh lớn và dung lượng lớn cũng có nhiều cái lợi nhất là khi bạn là nhà phân phối bạn phải cung cấp hình ảnh ở độ phân giải tốt nhất và sắc nét nhất cho đại lý. Việc cung cấp hình ảnh rõ ràng, chất lượng cao giúp cho khách hàng của bạn xem hình ảnh rõ nhất

Opencart Upload limit
Opencart Upload limit

Để tăng giới hạn upload bạn chỉnh sửa file admin\controller\common\filemanager.php
Tìm đoạn:

if ($this->request->files['image']['size'] > 300000) {
    $json['error'] = $this->language->get('error_file_size');
}

Sửa 300000 = 300kb sửa số này thành số bạn muốn

Bổ sung sitemap cho module tin tức Opencart

Bài hướng dẫn này dành cho các bạn sử dụng module tin tức được chia sẻ tại bài viết

http://hanamonline.com/module-tin-tuc-opencart/

Module tin tức này được chia sẻ trên opencartvn là module tin tức được nhiều bạn sử dụng nhất tuy nhiên một thiếu sót khá quan trọng của nó là không hỗ trợ sitemaps. Việc thêm url vào sitemaps và submit lên công cụ tìm kiếm giúp bài viết của bạn nhanh chóng được SE index.
Bạn cần sửa 2 file
+ Edit file /catalog/model/catalog/news.php
Thêm vào function

	public function getNewIDs() {				
		$sql = "SELECT n.news_id FROM " . DB_PREFIX . "news n LEFT JOIN " . DB_PREFIX . "news_description nd ON (n.news_id = nd.news_id) LEFT JOIN " . DB_PREFIX . "news_to_store n2s ON (n.news_id = n2s.news_id) WHERE nd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND n.status = '1' AND n.date_available <= NOW() AND n2s.store_id = '" . (int)$this->config->get('config_store_id') . "'"; 			
		$query = $this->db->query($sql);	
		return $query->rows;
	}

+ Edit file /catalog/controller/feed/google_sitemap.php
Tìm đoạn code

		 $output .= $this->getCategories(0);
		 $this->load->model('catalog/manufacturer');

Thêm vào sau nó đoạn code sau:

		 $this->load->model('catalog/news');
		 $news = $this->model_catalog_news->getNewIDs();
		 
		 foreach ($news as $new) {
			$output .= '<url>';
			$output .= '<loc>' . $this->url->link('news/news', '&news_id=' . $new['news_id']) . '</loc>';
			$output .= '<changefreq>weekly</changefreq>';
			$output .= '<priority>1.0</priority>';
			$output .= '</url>';   
		 }

OK vậy là xong rồi bạn nào cần thêm danh mục tin tức thì viết thêm mình ko SEO theo danh mục nên không thêm danh mục tin tức vào sitemap. Chúc các bạn thành công

Module tin tức Opencart

Module tin tức cho Opencart được tổng hợp từ các Extension News, Blog và CMS trên Opencart.com và Opencartvn.

News 4 Opencart
News 4 Opencart

Để cài đặt Module này các bạn vui lòng Download file sau:
Module_news_SEO_v1.5.4.1
Các bước cài đặt module tin tức:
***Lưu ý: backup site và cơ sở dữ liệu trước khi thực hiện tránh các lỗi không mong muốn có thể khôi phục lại
+ Bước 1: Import ‘opccms.sql’ vào cơ sở dữ liệu bằng phpMyAdmin từ thư mục “sql”.
+ Cài đặt Vqmod nếu bạn chưa có nếu bạn nào không thích dùng VQMod có thể liên hệ mình để được hướng dẫn
+ Upload tất cả file trong folder “upload” lên server của bạn.
+ Vào AdminCP menu “System/Users/User Groups” cấp quyền truy nhập cho tài khoản của bạn.
+ Vào menu “Catalog/News” thêm và sửa tin tức của bạn.

***Lưu ý:
Nếu bạn nào không hiển thị được danh mục tin tức trên top menu thì vào file header.tpl tìm dòng

  </ul>
</div>

thay bằng:

  </ul></div>

Share extension Quick Checkout – One Page Checkout cho Opencart

Quick Checkout – One Page Checkout

Thực tế cho thấy việc phải điền nhiều thông tin rườm rà, trải qua nhiều thủ tục thanh toán lằng nhằng khiến khách hàng của chúng ta không đủ kiên nhẫn để mua sắm. Nhất là trong thời đại công nghiệp hóa hiện nay. Chúng ta chỉ cần khách hàng cung cấp đủ thông tin cơ bản như họ tên, địa chỉ nhận hàng, số điện thoại…Nước ta cũng đang làm cuộc cách mạng đơn giản hóa thủ tục hành là chính đó thôi 🙂 Lạc đề mất rồi
Hôm nay mình share extension Quick Checkout

Quick checkout opencart
Quick checkout opencart

http://www.opencart.com/index.php?route=extension/extension/info&extension_id=7382

Extension này có giá 70$ 🙂 🙂 🙂 (1.400.000 ngàn VNĐ đó ạ) Extension này được 1 bạn trên diễn đàn opencart.vn mua và chia sẻ vì thế hôm nay nó có mặt trên blog của mình mọi người không nên bán lại, chỉ sử dụng cho mình, hoặc nguyên cứu phát huy, hãy cùng phát triển opencart của VN theo đúng nghĩa.
Các bạn download tại đây nhé:

onepagecheckout.rar

Cài đặt

Upload , extract đè lên thư mục tương ứng admin,catalog
Vào admin website. trong phần module(phần mở rộng) kích hoạt module quick checkout, bật,tắt các loại bạn không muốn hiển thị.
Nếu bạn không có cài VQMOD thì làm thêm các bước sau:
– Sửa file catalog/controller/checkout/checkout.php
Tìm tới chỗ

public function index() {

Dán đằng sau nó :

$quickcheckout_status = $this->config->get('quickcheckout_status');
if ($quickcheckout_status == 1) {
$this->redirect($this->url->link('quickcheckout/checkout'));
}

– Sửa file catalog/controller/account/logout.php
Tìm chỗ

unset($this->session->data['coupon']);

Dán đằng sau nó

unset($this->session->data['guest']);

OK. Done !

Thay đổi ảnh nền opencart từ admin panel

Mìnht thường thay đổi ảnh nền cho website theo các sự kiện lớn. Việc thay đổi ảnh nền vừa làm cho website “mới” hơn khi khách hàng ghé thăm vừa thể hiện được nội dung các khuyến mãi. Đối với những bạn biết code thì việc này cũng đơn giản chỉ là upload ảnh nền và sửa CSS. Tuy nhiên mỗi lần như vậy cũng khá mất công. Còn đối với những người không biết code thì chức năng thay đổi ảnh nền thì không thể thiếu được. Thủ thuật này sẽ giúp các bạn thêm chức năng thay đổi ảnh nền vào trong setting của cửa hàng trong admin panel.
Các bạn thực hiện các bước sau:
+ Sửa file …\admin\view\template\setting\setting.tpl
Tìm đoạn code:

            <tr>
              <td><?php echo $entry_logo; ?></td>
              <td><div class="image"><img src="<?php echo $logo; ?>" alt="" id="thumb-logo" />
                  <input type="hidden" name="config_logo" value="<?php echo $config_logo; ?>" id="logo" />
                  <br />
                  <a onclick="image_upload('logo', 'thumb-logo');"><?php echo $text_browse; ?></a>&nbsp;&nbsp;|&nbsp;&nbsp;<a onclick="$('#thumb-logo').attr('src', '<?php echo $no_image; ?>'); $('#logo').attr('value', '');"><?php echo $text_clear; ?></a></div></td>
            </tr>

Thêm đoạn code này vào ngay bên dưới nó:

            <tr>
              <td><?php echo $entry_background; ?></td>
              <td><div class="image"><img src="<?php echo $background; ?>" alt="" id="thumb-background" />
                  <input type="hidden" name="config_background" value="<?php echo $config_background; ?>" id="background" />
                  <br />
                  <a onclick="image_upload('background', 'thumb-background');"><?php echo $text_browse; ?></a>&nbsp;&nbsp;|&nbsp;&nbsp;<a onclick="$('#thumb-background').attr('src', '<?php echo $no_image; ?>'); $('#logo').attr('value', '');"><?php echo $text_clear; ?></a></div></td>
            </tr>

+ Sửa file …\admin\language\vietnamese\setting\setting.php
Thêm dòng code này vào:

$_['entry_background']        = 'Background:';

+ Sửa file …\admin\controller\setting\setting.php
– Tìm dòng code

$this->data['entry_logo'] = $this->language->get('entry_logo');

Thay thế:

$this->data['entry_background'] = $this->language->get('entry_background');

– Tìm đoạn code sau:

if ($this->config->get('config_logo') && file_exists(DIR_IMAGE . $this->config->get('config_logo')) && is_file(DIR_IMAGE . $this->config->get('config_logo'))) {
            $this->data['logo'] = $this->model_tool_image->resize($this->config->get('config_logo'), 100, 100);      
        } else {
            $this->data['logo'] = $this->model_tool_image->resize('no_image.jpg', 100, 100);
        }

Thêm sau nó đoạn code:

if (isset($this->request->post['config_background'])) {
            $this->data['config_background'] = $this->request->post['config_background'];
        } else {
            $this->data['config_background'] = $this->config->get('config_background');          
        }

        if ($this->config->get('config_background') && file_exists(DIR_IMAGE . $this->config->get('config_background')) && is_file(DIR_IMAGE . $this->config->get('config_background'))) {
            $this->data['background'] = $this->model_tool_image->resize($this->config->get('config_background'), 100, 100);      
        } else {
            $this->data['background'] = $this->model_tool_image->resize('no_image.jpg', 100, 100);
        }

OK. Đến đây thì trong admin bạn có thể upload ảnh nền và lưu vào setting được rồi

Thay đổi ảnh nền trong admin Opencart
Thay đổi ảnh nền trong admin Opencart

Muốn hiển thị ảnh nền thì chúng ta phải chỉnh sửa một chút nữa ngoài fontend
+ Sửa file ..\catalog\view\theme\default\template\common\header.tpl
Thay đổi thẻ body như sau:

<body<?php if ($background) { ?> style="background-image: url(<?php echo $background; ?>)"<?php } ?>>

+ Sửa file ..\catalog\controller\common\ header.php
Tìm đoạn code sau

		if ($this->config->get('config_logo') && file_exists(DIR_IMAGE . $this->config->get('config_logo'))) {
			$this->data['logo'] = $server . 'image/' . $this->config->get('config_logo');
		} else {
			$this->data['logo'] = '';
		}	

Thêm vào bên dưới nó:

		if ($this->config->get('config_background') && file_exists(DIR_IMAGE . $this->config->get('config_background'))) {
			$this->data['background'] = $server . 'image/' . $this->config->get('config_background');
		} else {
			$this->data['background'] = '';
		}

Như vậy là cơ bản đã xong 99% rồi việc còn lại bạn chỉnh css cho phù hợp với website của bạn là ok.

Thêm thiết lập Meta Keywords cho cửa hàng trong opencart

Có lẽ thẻ meta keywords từ lâu không còn được đánh giá cao trong SEO tuy nhiên nó vẫn là các chuẩn trong html vì thế tuy nó không cần thiết nhưng cũng không thể thiếu. Opencart không phải không hỗ trợ thẻ meta keywords nó hỗ trợ ở các danh mục, sản phẩm, thông tin tuy nhiên lại thiếu chỗ quan trọng nhất là trang chủ của các gian hàng. Hôm nay mình hướng dẫn các bạn thêm thiết lập meta keywords trong admin panel và hiển thị nó ra trang chủ.

Setting meta keyword 4 Opencart
Setting meta keyword 4 Opencart

Các bạn thực hiện các bước sau
– Sửa file admin/controller/setting/setting.php
+ Tìm dòng

$this->data['entry_meta_description'] = $this->language->get('entry_meta_description');

Thêm bên dưới nó dòng code sau:

$this->data['entry_meta_keyword'] = $this->language->get('entry_meta_keyword');

+ Tìm đoạn code sau:

		if (isset($this->request->post['config_meta_description'])) {
			$this->data['config_meta_description'] = $this->request->post['config_meta_description'];
		} else {
			$this->data['config_meta_description'] = $this->config->get('config_meta_description');
		}

Thêm trước nó các dòng code sau:

		if (isset($this->request->post['config_meta_keyword'])) {
			$this->data['config_meta_keyword'] = $this->request->post['config_meta_keyword'];
		} else {
			$this->data['config_meta_keyword'] = $this->config->get('config_meta_keyword');
		}

– Sửa file admin/view/template/setting/setting.tpl
Tìm đoạn code sau:

            <tr>
              <td><?php echo $entry_meta_description; ?></td>
              <td><textarea name="config_meta_description" cols="40" rows="5"><?php echo $config_meta_description; ?></textarea></td>
            </tr>

Thêm trước nó dòng code sau:

	  <tr>
            <td><?php echo $entry_meta_keyword; ?></td>
            <td><textarea name="config_meta_keyword" cols="40" rows="5"><?php echo $config_meta_keyword; ?></textarea></td>
           </tr>

– Sửa file admin/language/english/setting/setting.php hoặc tùy theo ngôn ngữ của bạn đang sử dụng
Tìm dòng

$_['entry_meta_description']   = 'Meta Tag Description:';

Thêm sau nó dòng

$_['entry_meta_keyword']   = 'Meta Keywords:';

– Sửa file catalog/controller/common/home.php
Tìm dòng:

$this->document->setDescription($this->config->get('config_meta_description'));

Thêm sau nó dòng:
$this->document->setKeywords($this->config->get(‘config_meta_keyword’));

OK thế là xong rồi đó. Nếu bạn làm đúng các bước trên thì khi vào Admin/System/Settings để cấu hình store của bạn trong tab Store sẽ hiện ra như sau:

Setting Meta Keyword Store
Setting Meta Keyword Store

Để chắc chắn view source trang chủ cửa hàng thấy thẻ meta keywords tức là đã thành công

Thẻ meta khi xem mã nguồn trang chủ
Thẻ meta khi xem mã nguồn trang chủ

Tự động điền SEO Keyword trong admin opencart

Opencart hỗ trợ SEO link thân thiện và cho phép tùy chỉnh seo keyword khi nhập sản phẩm, danh mục sản phẩm, các thông tin khác (Category, Product, Information). Điều này rất có lợi cho SEO tuy nhiên cũng khá hạn chế đối với những người ngại gõ nhiều (như mình) nhất là khi nhập lên đến hàng trăm sản phẩm. Vì vậy chúng ta nên tùy chỉnh để OC tự điền rồi chúng ta sửa như vậy sẽ tiện hơn.

Seo keyword autocomplete
Seo keyword autocomplete

Để làm được như vậy các bạn cần thực hiện các bước sau:
– Tìm file admin/view/template/common/header.tpl
– Thêm đoạn code trước thẻ

</head>
<!--Auto Fill SEO URL-->
         <script type="text/javascript">
          $(document).ready(function(){
          var keyword = $("input[name=keyword]");
          if(!keyword.val()){
             $("input[name^='product_description'],input[name^='category_description'],input[name='name'],input[name^='information_description']").keyup(function(){
                var SEOlink = $(this).val();
                   SEOlink = SEOlink.replace(/^\s+|\s+$/g, ''); // trim
                   SEOlink = SEOlink.toLowerCase();
                // remove accents, swap, etc
                var from = "ọẹạịụớđàáäâèéëêìíïîòóöôùúüûñcçčlľštžýnrrd·ạảãầấậẩẫăắằẳẵặ_ịỉĩ/ọỏõôồốộổỗơờởợởỡ;ẹẻẽềếệểễ:ụủũưừứựửữ,ỵỷỹỳ";
                
               
var to   = "oeaiuodaaaaeeeeiiiioooouuuuncccllstzynrrd--aaaaaaaaaaaaaa-iii-ooooooooooooooo-eeeeeeee-uuuuuuuu-yyyy";
                for (var i=0, l=from.length ; i<l ; i++) {
                   SEOlink = SEOlink.replace(new RegExp(from.charAt(i), 'g'), to.charAt(i));
                }
                SEOlink = SEOlink.replace(/[^a-z0-9 -]/g, '') // remove invalid chars
                .replace(/\s+/g, '-') // collapse whitespace and replace by -
                .replace(/-+/g, '-'); // collapse dashes
                // return SEOlink;
                keyword.val(SEOlink + '.html');       
             });
          }
          });
          </script>
<!--End-->

Ok như vậy là xong rồi đó. Thật đơn giản mà không phải bỏ 10$ để mua Extensions SEO Keywords Autocomplete, hay Autofill SEO Keywords. Chúc các bạn thành công

Xử lý lỗi trùng lặp link trong Opencart

Remove duplicate URL Opencart
Remove duplicate URL Opencart

Lỗi này xảy ra khi bạn bật tính năng SEO Friendly Link trong Opencart. Ví dụ cho các bạn dễ hiểu mình đưa ra 1 số link đều truy cập đến 1 sản phẩm:

http://sanakyviet.com/tu-dong/sanaky-vh-8099.snk
http://sanakyviet.com/tu-dong/tu-dong-sieu-thi/sanaky-vh-8099.snk

Để khắc phục lỗi này rất đơn giản các bạn chỉ cần sửa file /catalog/controller/common/seo_url.php
Tìm tất cả các dòng:

$url .= '/' . $query->row['keyword'];

Thay bằng dòng:

$url = '/' . $query->row['keyword'];

Chỉ cần bỏ 1 dấu . đi thôi nhưng hiệu quả thì các bạn sẽ thấy ngay. Nhiều người thích url phân cấp nhưng theo kinh nghiệm làm web lâu năm của mình thì url không phân cấp đơn giản cho thiết kế và lập trình cũng như SEO mà hiệu quả chẳng khác gì URL phân cấp cả.

Sau bài này mình cũng chưa biết tác dụng phụ của việc sửa đổi này. Có gì mình sẽ update thêm nhé

Custom CKeditor cho Opencart

Trình soạn thảo mặc định của Opencart để rất ít chức năng khiến bạn khó khăn khi soạn thảo nội dung bài viết hay các mô tả khác. Việc soạn thảo không tốt ảnh hưởng đến thẩm mỹ của bài viết và khó khăn trong SEO. Hôm nay mình hướng dẫn các bạn thêm các tính năng vào bộ soạn thảo này. Thực chất là tùy chỉnh cấu hình của CKEditor thôi.
Các bạn tìm file config của CKEditor trong admin: admin/view/javascript/ckeditor/config.js. Nội dung file này như sau:

/**
 * @license Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.html or http://ckeditor.com/license
 */

CKEDITOR.editorConfig = function( config ) {
	// Define changes to default configuration here.
	// For the complete reference:
	// http://docs.ckeditor.com/#!/api/CKEDITOR.config
	config.filebrowserWindowWidth = '800';
	config.filebrowserWindowHeight = '500';
	config.resize_enabled = false;
	config.htmlEncodeOutput = false;
	config.entities = false;
	config.extraPlugins = 'codemirror';
	config.codemirror_theme = 'rubyblue';
	config.toolbar = 'Custom';

	config.toolbar_Custom = [
		['Source'],
		['Maximize'],
		['Bold','Italic','Underline','Strike','-','Subscript','Superscript'],
		['NumberedList','BulletedList','-','Outdent','Indent'],
		['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
		['SpecialChar'],
		'/',
		['Undo','Redo'],
		['Font','FontSize'],
		['TextColor','BGColor'],
		['Link','Unlink','Anchor'],
		['Image','Table','HorizontalRule']
	];
};

Muốn thêm button nào vào bạn chỉ cần thêm vào trong config.toolbar_Custom. Ví dụ mình muốn thêm chức năng PasteText,PasteFromWord mình thêm [‘PasteText’,’PasteFromWord’] vào sau dòng:

	config.toolbar_Custom = [
		['Source'],

Thành:

	config.toolbar_Custom = [
		['Source'],
                ['PasteText','PasteFromWord'],

Muốn thêm định dạng h1, h2, h3,…,h6 các bạn thêm [‘Styles’,’Format’], vào

	config.toolbar_Custom = [
		['Source'],
                ['PasteText','PasteFromWord'],
                ['Styles','Format'],

Tùy chỉnh CKEditor Opencart
Tùy chỉnh CKEditor Opencart

Dưới đây là config full của toolbar (không có các plugins cài thêm nhé) các bạn có thể thêm chức năng nào vào tùy bạn chọn

config.toolbar_Full =
[
	{ name: 'document', items : [ 'Source','-','Save','NewPage','DocProps','Preview','Print','-','Templates' ] },
	{ name: 'clipboard', items : [ 'Cut','Copy','Paste','PasteText','PasteFromWord','-','Undo','Redo' ] },
	{ name: 'editing', items : [ 'Find','Replace','-','SelectAll','-','SpellChecker', 'Scayt' ] },
	{ name: 'forms', items : [ 'Form', 'Checkbox', 'Radio', 'TextField', 'Textarea', 'Select', 'Button', 'ImageButton', 
        'HiddenField' ] },
	'/',
	{ name: 'basicstyles', items : [ 'Bold','Italic','Underline','Strike','Subscript','Superscript','-','RemoveFormat' ] },
	{ name: 'paragraph', items : [ 'NumberedList','BulletedList','-','Outdent','Indent','-','Blockquote','CreateDiv',
	'-','JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock','-','BidiLtr','BidiRtl' ] },
	{ name: 'links', items : [ 'Link','Unlink','Anchor' ] },
	{ name: 'insert', items : [ 'Image','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak','Iframe' ] },
	'/',
	{ name: 'styles', items : [ 'Styles','Format','Font','FontSize' ] },
	{ name: 'colors', items : [ 'TextColor','BGColor' ] },
	{ name: 'tools', items : [ 'Maximize', 'ShowBlocks','-','About' ] }
];

File config sau khi tùy chỉnh của mình

/**
 * @license Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.html or http://ckeditor.com/license
 */

CKEDITOR.editorConfig = function( config ) {
	// Define changes to default configuration here.
	// For the complete reference:
	// http://docs.ckeditor.com/#!/api/CKEDITOR.config
	config.filebrowserWindowWidth = '800';
	config.filebrowserWindowHeight = '500';
	config.resize_enabled = false;
	config.htmlEncodeOutput = false;
	config.entities = false;
	config.extraPlugins = 'codemirror';
	config.codemirror_theme = 'rubyblue';
	config.toolbar = 'Custom';

	config.toolbar_Custom = [
		['Source'],
		['Maximize'],
		['PasteText','PasteFromWord'],
		['Styles','Format'],
		['Bold','Italic','Underline','Strike','-','Subscript','Superscript'],
		['NumberedList','BulletedList','-','Outdent','Indent'],
		['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
		['SpecialChar'],
		'/',
		['Undo','Redo'],
		['Font','FontSize'],
		['TextColor','BGColor'],
		['Link','Unlink','Anchor'],
		['Image','Table','HorizontalRule']
	];
};

Hiện kích thước và trọng lượng sản phẩm trong opencart

Khi nhập sản phẩm trong Opencart trong tab Data chúng ta nhập tích thước, trọng lượng tuy nhiên nhiều bạn thắc mắc rằng không thấy thông tin này hiện ra ngoài trang chi tiết sản phẩm vì vậy chúng ta phải mất công nhập lại 2 thông tin này vào phần mô tả sản phẩm hoặc thuộc tính sản phẩm -> thừa thông tin và tốn thời gian.

2 thông tin về kích thước và trọng lượng sản phẩm được sử dụng trong module tính phí vận chuyển. Chúng ta có thể hiển thị thông tin này ra trang chi tiết sản phẩm.

Nhập kích thước và trọng lượng sản phẩm Opencart
Nhập kích thước và trọng lượng sản phẩm Opencart

B1: Sửa file /catalog/controller/product/product.php như sau:
– Tìm dòng:

$this->data['text_tags'] = $this->language->get('text_tags');

– Thêm vào dưới nó 2 dòng sau:

$this->data['text_weight'] = $this->language->get('text_weight');
$this->data['text_size'] = $this->language->get('text_size');

-Tìm dòng:

$this->data['points'] = $product_info['points'];

– Thêm vào bên dưới nó các dòng sau:

			/*them kich thuoc va trong luong*/
			$weight_class_id = $product_info['weight_class_id'];
			$this->load->model('localisation/weight_class');
			$weight_classes = $this->model_localisation_weight_class->getWeightClass($weight_class_id);
			$this->data['weight_class_title'] = $weight_classes['title'];
			$length_class_id = $product_info['length_class_id'];
			$this->load->model('localisation/length_class');
			$length_class = $this->model_localisation_length_class->getLengthClass($length_class_id);
			$this->data['length_class_title'] = $length_class['title'];
			$this->data['weight'] = number_format($product_info['weight'],2);
			$this->data['length'] = number_format($product_info['length'],2);
			$this->data['width'] = number_format($product_info['width'],2);
			$this->data['height'] = number_format($product_info['height'],2);
			/*end*/

B2:Sửa file /catalog/view/theme/default/template/product/product.tpl
– Tìm đoạn code sau:

        <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
        <tr>
          <td><?php echo $attribute['name']; ?></td>
          <td><?php echo $attribute['text']; ?></td>
        </tr>
        <?php } ?>

– Thêm vào bên dưới nó đoạn code sau:

        <!--hien thi kich thuoc va trong luong-->
        <?php if ($weight) { ?>
        <tr>
        	<td><?php echo $text_weight; ?></td>
            <td><?php echo $weight; ?> <?php echo $weight_class_title; ?></td>
        </tr>
        <?php } ?>
        <?php if ($length || $width || $height) { ?>
        <tr>
        	<td><?php echo $text_size; ?></td>
            <td><?php echo $width; ?> x <?php echo $height; ?> x <?php echo $length; ?> <?php echo $length_class_title; ?></td>
        </tr>
        <?php } ?>
        <!--end-->

B3: Sửa file ngôn ngữ /catalog/language/english/product/product.php hoặc bạn dùng ngôn ngữ khác thì thêm vào file ngôn ngữ tương ứng nhé
– Thêm vào đầu file 2 dòng sau

$_['text_search']       = 'Search';
$_['text_weight']       = 'Weight';

Và đây là thành quả:

Hiện kích thước và trọng lượng sản phẩm Opencart
Hiện kích thước và trọng lượng sản phẩm Opencart

OK vậy là xong rồi. Code của mình chèn trọng lượng và kích thước theo đơn vị mà bạn chọn vào trong phần thuộc tính sản phẩm chứ không đơn thuần là chèn nguyên trọng lượng và kích thước mà không biết đơn vị tính của chúng.
Chúc các bạn thành công!