升级注意事项 - M2 - 2.2.2
升级注意事项 - 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 文件。