升级注意事项 - M2 - 2.2.2

3.45K 浏览开发笔记

升级注意事项 - M2 - 2.2.2

从 2.1.9 升级时遇到的问题:
#1 CSS 中有未声明的变量:

需要对比 app/design/frontend/主题包/主题名/web/css/source/_variables.less 和 vendor 中的核心文件,有变化,需要合并。

#2 无法加入产品到购物车:

因为改写了 vendor/magento/module-quote/Model/Quote.php,而原始文件有变化,需要复制原始文件的 #1634 - #1636 行到改写文件。以及源文件 #1656 - #1661 行的修改。

以及 vendor/magento/module-checkout/Model/Cart.php,源文件里删除了原来处于 #366 的:

<code>&& !$this->getQuote()->hasProductId($productId)</code>

#3 无法保存产品:

因为改写了 vendor/magento/module-catalog/Controller/Adminhtml/Product/Save.php,需要修改:

function handleImageRemoveError 里的 addNotice 改成 addNoticeMessage;

以及 function getCategoryLinkManagement 里 'MagentoCatalogApiCategoryLinkManagementInterface' 改成 MagentoCatalogApiCategoryLinkManagementInterface::class

以及 function getStoreManager 里 'MagentoStoreModelStoreManagerInterface' 改成 MagentoStoreModelStoreManagerInterface::class

以及 function execute 里多个位置

#4 Configuration 页面打开报错:

因为 dynamic_rows 保存时 serialize 改成了 json_encode,所以首先需要执行 cli/updateConfiValue.php 来把数据库里所有 serialized 的数据替换成 json_encode 的,然后把读取的代码也要修改成 json_decode($var, true) (grep “serialize” 查找相关代码)。

#5 Checkout 无法进入第二步:

因为改写了 vendor/magento/module-quote/Model/Cart/Totals/ItemConverter.php,需要修改:

function modelToDataObject 里 'MagentoQuoteApiDataTotalsItemInterface' 改成 MagentoQuoteApiDataTotalsItemInterface::class

function getFormattedOptionValue 里 return Zend_Json::encode($optionsData); 改成 return $this->serializer->serialize($optionsData);

以及 vendor/magento/module-quote/Model/Quote/Item/ToOrderItem.php 里 function convert 的 'MagentoSalesApiDataOrderItemInterface' 改成 MagentoSalesApiDataOrderItemInterface::class

以及 vendor/magento/module-offline-shipping/Model/Carrier/Flatrate.php 里 function getShippingPrice 的修改。

以及 vendor/magento/module-checkout/Controller/Cart/Add.php 里的多处修改。

以及禁用 Temando_Shipping 插件 php bin/magento module:disable Temando_Shipping

#6 邮件含有报错:

需要删除模版 web/css/ 以及 web/css/source 下的 email 相关的 less 文件。

0