Magento 1.9.4.2 升級至 Magento 2.3.5p1 – MOB SQL Table 分析與修正 – Odoo

MOB(Magento Odoo Bridge)教學:匯出單一產品 From Odoo

點選 MOB Dashboard 內 Product 方塊的 Export 按鈕

進入全部產品後,我們先以電源分類的產品作示範

如果是要匯出單一產品,選擇產品即可

選擇 『Extra Category』分頁,此處是設定匯出的產品對應到的 Magento 分類,點選『新增項目』

設定成對應的分類:全部/電源

點選動作,選擇 Synchronize to Magento

選擇 Action 『Export』

跳出的訊息中有包含 id 就代表匯出成功

至 Magento 前台查看對應分類,產品直接同步完成

這樣就完成了

 

 

Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/odoo/http.py", line 644, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/usr/lib/python2.7/site-packages/odoo/http.py", line 686, in dispatch
result = self._call_function(**self.params)
File "/usr/lib/python2.7/site-packages/odoo/http.py", line 336, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/usr/lib/python2.7/site-packages/odoo/service/model.py", line 101, in wrapper
return f(dbname, *args, **kwargs)
File "/usr/lib/python2.7/site-packages/odoo/http.py", line 329, in checked_call
result = self.endpoint(*a, **kw)
File "/usr/lib/python2.7/site-packages/odoo/http.py", line 944, in __call__
return self.method(*args, **kw)
File "/usr/lib/python2.7/site-packages/odoo/http.py", line 509, in response_wrap
response = f(*args, **kw)
File "/usr/lib/python2.7/site-packages/odoo/addons/web/controllers/main.py", line 896, in call_button
action = self._call_kw(model, method, args, {})
File "/usr/lib/python2.7/site-packages/odoo/addons/web/controllers/main.py", line 884, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/usr/lib/python2.7/site-packages/odoo/api.py", line 689, in call_kw
return call_kw_multi(method, model, args, kwargs)
File "/usr/lib/python2.7/site-packages/odoo/api.py", line 680, in call_kw_multi
result = method(recs, *args, **kwargs)
File "/opt/odoo10_apps/odoo_magento_connect/wizard/synchronization_wizard.py", line 65, in start_product_synchronization
ctx).export_product_check()
File "/opt/odoo10_apps/odoo_magento_connect/models/product_sync.py", line 152, in export_product_check
ctx)._export_specific_template(templateObj, url, token)
File "/opt/odoo10_apps/odoo_magento_connect/models/product_sync.py", line 219, in _export_specific_template
templateObj, templateSku, url, token)
File "/opt/odoo10_apps/odoo_magento_connect/models/product_sync.py", line 365, in _sync_template_variants
vrntObj, templateSku, url, token)
File "/opt/odoo10_apps/odoo_magento_connect/models/product_sync.py", line 535, in _export_specific_product
prodtype, sku, getProductData)
File "/opt/odoo10_apps/odoo_magento_connect/models/product_sync.py", line 552, in prodcreate
data=productData
File "/opt/odoo10_apps/odoo_magento_connect/models/mob_synchronization.py", line 195, in callMagentoApi
responseData = json.loads(response.text)
File "/usr/lib64/python2.7/json/__init__.py", line 338, in loads
return _default_decoder.decode(s)
File "/usr/lib64/python2.7/json/decoder.py", line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib64/python2.7/json/decoder.py", line 384, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded

MOB(Magento Odoo Bridge)教學:同步分類 From Odoo

Magento 1.9.4.2 升級至 Magento 2.3.3 – 不支援模組篇

不支援模組

由於部分模組並不支援 Magento 2,因此在升級之前必須先行移除

以下檔案位置皆預設安裝目錄位於 /usr/share/nginx/html 

phpro_translate

https://github.com/kirchbergerknorr/Phpro_Translate

rm -rf app/code/community/Phpro app/design/adminhtml/default/default/layout/translate.xml app/design/adminhtml/default/default/template/translate/ app/etc/modules/Phpro_Translate.xml js/phpro/ skin/adminhtml/default/default/phpro/
SQL
drop table if exists phpro_translate

Magmodules_Reviewemail

沒有 Magento 2 的版本,或許已經內建此功能了

Mageworx_seo

Prashant_Headerlogo

rm -rf app/code/community/Prashant/Headerlogo app/etc/modules/Prashant_Headerlogo.xml

SchumacherFM_OpCachePanel

https://github.com/SchumacherFM/Magento-OpCache

rm -rf app/code/community/SchumacherFM app/design/adminhtml/default/default/layout/opcachepanel.xml app/design/adminhtml/default/default/template/opcachepanel/ app/etc/modules/SchumacherFM_OpCachePanel.xml app/locale/en_US/SchumacherFM_OpCachePanel.csv skin/adminhtml/default/default/opcachepanel/

Netzarbeiter_GroupsCatalog2

檔案結構
/usr/share/nginx/html/app/code/community/Netzarbeiter
/usr/share/nginx/html/app/locale/de_DE
/usr/share/nginx/html/app/locale/it_IT
/usr/share/nginx/html/app/locale/nl_NL
/usr/share/nginx/html/app/design/adminhtml/default/default/layout/netzarbeiter
/usr/share/nginx/html/app/design/adminhtml/default/default/template/netzarbeiter
/usr/share/nginx/html/app/etc/modules/Netzarbeiter_GroupsCatalog2.xml
必須先刪除檔案
rm -rf /usr/share/nginx/html/app/code/community/Netzarbeiter /usr/share/nginx/html/app/locale/de_DE /usr/share/nginx/html/app/locale/it_IT /usr/share/nginx/html/app/locale/nl_NL /usr/share/nginx/html/app/design/adminhtml/default/default/layout/netzarbeiter /usr/share/nginx/html/app/design/adminhtml/default/default/template/netzarbeiter /usr/share/nginx/html/app/etc/modules/Netzarbeiter_GroupsCatalog2.xml
再刪除相關 SQL 資料
DELETE FROM `eav_attribute` WHERE attribute_code = 'groupscatalog2_groups';
DELETE FROM `core_resource` WHERE code = 'netzarbeiter_groupscatalog2_setup';
DELETE FROM `index_process` WHERE indexer_code = 'groupscatalog2_product';
DELETE FROM `index_process` WHERE indexer_code = 'groupscatalog2_category';
DROP TABLE IF EXISTS `groupscatalog_product_idx`;
DROP TABLE IF EXISTS `groupscatalog_category_idx`;

Clockworkgeek_DashboardReviews

這是在 Dashboard 中提供 Review 通知的小程式,實際操作中根本沒使用

直接透過 Magento Connect Manager 直接移除即可

BalkeTechnologies_StoreMaintenance

這是讓我們在升級或維護時可以跳出『維護中』頁面的程式,實際根本沒使用

直接透過 Magento Connect Manager 直接移除即可

Rockwells_LogViewer

讓我們可以在 Admin Panel 下直接看到 var/log 裡面的 log 檔,對於除錯很好用

升級完後必須要找替代方案!

直接透過 Magento Connect Manager 直接移除即可

ASchroder_SMTPPro

Magento 1 的 Mail 常常沒辦法直接寄送,所以安裝這個模組來使用外部的 SMTP server 提供服務

升級後會使用其他模組取代

直接透過 Magento Connect Manager 直接移除即可

mpconversiontracking

可以簡單的嵌入 Google Adword 的程式碼,方便追蹤轉換率

升級完後有需要找替代方案!

直接透過 Magento Connect Manager 直接移除即可

Olctw_Locale_zh_TW

Magento 1 的中文語系檔,已經過時了

Magento 2 有社群版的中文語系檔,升級後再安裝

直接透過 Magento Connect Manager 直接移除即可

Facebook_Ads_Toolbox

可追蹤 Facebook 廣告成效的工具

直接透過 Magento Connect Manager 直接移除

升級後再安裝

修改 Magento extensions 位於管理介面的位置

一般來說大部分的 extensions 都是放置在『系統』/『設定』之下,每一間公司會為自己開發的 extension 建立一個『分頁(Tab)』

但在實際操作上造成蠻大的不方便,所以此篇記錄該如何移動套件的位置到 Webkul 的 Tab 之下

Magmodules – Reviewemail

vim /usr/share/nginx/html/app/code/local/Magmodules/Reviewemail/etc/system.xml

將第 29、31 行

<tab>Magmodules</tab>
<sort_order>121</sort_order>

替換為

<tab>webkul</tab>
<sort_order>200</sort_order>

Aschroder – SMRPPro

vim /usr/share/nginx/html/app/code/local/Aschroder/SMTPPro/etc/system.xml

將第 16、18 行

<tab>aschroder</tab>
<sort_order>110</sort_order>

替換為

<tab>webkul</tab>
<sort_order>400</sort_order>

Fishpig – Opti

vim /usr/share/nginx/html/app/code/community/Fishpig/Opti/etc/system.xml

將第 11-12 行

<label>Opti</label>
<tab>fishpig</tab>

替換為

<label>Fishpig - Opti</label> 
<tab>webkul</tab>

WEB-AND-PEOPLE – Price Decimal

vim /usr/share/nginx/html/app/code/community/WP/PriceDecimal/etc/system.xml

將第 12、14 行

<tab>web_and_perple</tab>
<sort_order>200</sort_order>

替換為

<tab>webkul</tab>
<sort_order>1000</sort_order>

並將將第 87-104 行註解

Prashant – Headerlogo

vim /usr/share/nginx/html/app/code/community/Prashant/Headerlogo/etc/system.xml

將第 12、16 行

<sort_order>200</sort_order>
<tab>prashant_extension_tab</tab>

替換為

<sort_order>1200</sort_order>
<tab>webkul</tab>

Plumrocket – Social Login

vim /usr/share/nginx/html/app/code/community/Plumrocket/SocialLogin/etc/system.xml

將第 15-17 行

<label>Twitter &amp; Facebook Login</label>
<tab>plumrocket</tab>
<sort_order>102</sort_order>

替換為

<label>Plumrocket - Twitter &amp; Facebook Login</label>
<tab>webkul</tab>
<sort_order>102</sort_order>

移除上方 Plumrocket 選單

vim /usr/share/nginx/html/app/code/community/Plumrocket/SocialLogin/etc/adminhtml.xml

於檔案最前方加入

<!--

Plumrocket – Who Brought This Also Bought

vim /usr/share/nginx/html/app/code/community/Plumrocket/WhoBoughtThisAlsoBought/etc/system.xml

將第 15-17 行

<label>Who Bought This Also Bought</label>
<tab>plumrocket</tab>
<sort_order>1600</sort_order>

替換為

<label>Plumrocket - Who Bought This Also Bought</label>
<tab>webkul</tab>
<sort_order>103</sort_order>

移除上方 Plumrocket 選單

vim /usr/share/nginx/html/app/code/community/Plumrocket/SocialLogin/etc/config.xml

第 106 行前方加入

<!--

第 149 行後方加入

-->

Yavva – Alsoviewed

vim /usr/share/nginx/html/app/code/community/Plumrocket/WhoBoughtThisAlsoBought/etc/system.xml

將第 6、8 行

<tab>catalog</tab>
<sort_order>45</sort_order>

替換為

<tab>webkul</tab>
<sort_order>104</sort_order>

 

Plumrocket Who Bought This Also Bought 模組修改版型

Plumrocket Who Bought This Also Bought 是付費模組,可以完美與 Ultimo 樣版結合

安裝後為了與 Magento Also Viewed Products 搭配,所以需要做一些細部修改

客製化

修改 “Who Bought This Also Bought:” 標題大小

預設標題是用 CSS 控制,因為大小與 Also Viewed Products 不同,所以請原廠協助修改

編輯 /app/design/frontend/ultimo/default/template/plwhobought/product.phtml

vim /usr/share/nginx/html/app/design/frontend/ultimo/default/template/plwhobought/product.phtml

將第 122 行

<h3 class="section-title padding-right"><?php echo $this->__('Who Bought This Also Bought:'); ?></h3>

修改為

<h2 class="padding-right"><?php echo $this->__('Who Bought This Also Bought:'); ?></h2>

編輯後記得刷新 OPCache

修改圖片尺寸

圖片預設值為 196px,無法由後台直接修改,必須直接編輯檔案

編輯 /app/design/frontend/ultimo/default/template/plwhobought/product.phtml

vim /usr/share/nginx/html/app/design/frontend/ultimo/default/template/plwhobought/product.phtml

將第 67 行

 $imgWidth = 196; //Set default value

修改為

 $imgWidth = 220; //Set default value

編輯後記得刷新 OPCache

Product Grid 只顯示單行產品名稱

Ultimo 樣版有這個功能,啟用後產品名稱與價格會很漂亮的對齊

但是 Also Bought 模組並不支援這項功能,請原廠協助之後,在 下套入 Ultimo 的 single-line-name

編輯檔案

vim /usr/share/nginx/html/app/design/frontend/ultimo/default/template/plwhobought/product.phtml

將第 124 行

    <div id="<?php echo $sliderId; ?>" class="itemslider<?php if($sliderClasses) echo $sliderClasses; ?> products-grid<?php if($gridClasses) echo $gridClasses; ?>">

修改為

    <div id="<?php echo $sliderId; ?>" class="itemslider<?php if($sliderClasses) echo $sliderClasses; ?> products-grid<?php if($gridClasses) echo $gridClasses; ?> single-line-name">

修改完成後,清除 OPCache,就可以發現改變囉!

顯示的資訊精簡化

每個產品預設會顯示這六項資訊

  • 圖片
  • 產品名稱
  • 價格
  • 購買按鈕
  • 加入收藏
  • 加入比較

會了美化頁面,我們只想要顯示這三項資訊

  • 圖片
  • 產品名稱
  • 價格

編輯檔案

vim /usr/share/nginx/html/app/design/frontend/ultimo/default/template/plwhobought/product.phtml

將第 145 行

                <?php //Add-to links

修改為

                <?php /* //Add-to links

將第 160 行

                ?>

修改為

                */ ?>

將第 169 行

 <div class="actions">

之前加入一行

<?php /*

並將第 191 行插入新行

 */ ?>

修改完成後,清除 OPCache,就可以發現改變囉

 

錯誤修正

實際進行翻譯後,發現翻譯檔無法順利套用

原廠協助修正後發現檔案並沒有把檔案位置寫進去,必須更新檔案

修改完成後,清除 OPCache,就可以發現改變囉!