标签 magento2 下的文章

magesuite 13.0 默认演示页脚链接菜单在移动设备端不会自动折叠显示

问题:安装 magesuite 13.0 后,默认模板演示的站点,页脚链接菜单在移动设备端不会自动折叠显示。但官方的演示站可以自动折叠。

尝试:对比两个站点,知magesuite官方演示站的页脚链接block有标题,magento2官方的没有。照着magesuite的,在站点后台的 content --> block --> Footer Links 里添加相应的html代码就可以了。

如:

                <h4 class="cs-footer__section-title" data-role="title">
                    <span role="heading" aria-level="2">Products</span>
                </h4>
                <div class="cs-footer__section-content" data-role="content">
        <ul class="cs-footer-links">
            <li class="cs-footer-links__item">{{widget type="Magento\Cms\Block\Widget\Page\Link" template="widget/link/link_inline.phtml" page_id="3"}}</li>
            <li class="cs-footer-links__item">{{widget type="Magento\Cms\Block\Widget\Page\Link" template="widget/link/link_inline.phtml" page_id="3"}}</li>
            <li class="cs-footer-links__item">{{widget type="Magento\Cms\Block\Widget\Page\Link" template="widget/link/link_inline.phtml" page_id="3"}}</li>
            <li class="cs-footer-links__item">{{widget type="Magento\Cms\Block\Widget\Page\Link" anchor_text="Custom Link 4" template="widget/link/link_inline.phtml" page_id="3"}}</li>
            <li class="cs-footer-links__item">{{widget type="Magento\Cms\Block\Widget\Page\Link" anchor_text="Custom Link 5" template="widget/link/link_inline.phtml" page_id="3"}}</li>
            <li class="cs-footer-links__item">{{widget type="Magento\Cms\Block\Widget\Page\Link" anchor_text="Custom Link 6" template="widget/link/link_inline.phtml" page_id="3"}}</li>
        </ul>
       </div>

参考:

两个站点在Chrome元素台里看到的区别

搬站后magento2后台输入正确的密码后提示错误 - Undefined offset: 2 vendor/magento/framework/Encryption/Encryptor.php

问题:将magento 2.3的站点迁移到一个新的机子,输入正确的用户和密码后登录后台,提示错误,如 Undefined offset: 2 vendor/magento/framework/Encryption/Encryptor.php

尝试:有可能是不同版本php或环境导致的。可以尝试用以下mysql查询重设密码。如将admin用户重设为XinMiMa的新密码。

UPDATE admin_user SET password = CONCAT(SHA2('baweidezXinMiMa', 256), ':baweidez:1') WHERE username = 'admin';

参考:https://magento.stackexchange.com/questions/280204/magento-2-3-2-undefined-offset-encryptor-php

从 magento 1.x 升级到 magento 2.x - Data Migration Tool

需求:从现有的 magento 1.9.3.6 升级到当前的 magento 2.4.3-p1 。仅要商品、客户和订单数据,模块和模板可不要。

尝试:使用 magento 官方提供的 Data Migration Tool 来迁移数据。大概是先安装新版本的magento2,然后安装Data Migration Tool,再按照操作说明来迁移数据。大概可满足需求。

参考:

magento2 - 提交订单最后一步时出错 - Report ID: webapi - 可能是宝塔站点的“防跨站攻击(open_basedir)”问题

现象:magento2站点,测试时发现提交订单最后一步时报错,如:Details are available in Magento log file. Report ID: webapi-61c539eec7d0c 详细的日志如:

[2021-12-24 03:11:39] main.CRITICAL: Report ID: webapi-61c53a6b7b804; Message: Validate class not found from basename 'Magento\Framework\Validator\EmailAddress' {"exception":"[object] (Exception(code: 0): Report ID: webapi-61c53a6b7b804; Message: Validate class not found from basename 'Magento\Framework\Validator\EmailAddress' at /www/wwwroot/web1/vendor/magento/framework/Webapi/ErrorProcessor.php:208, Zend_Validate_Exception(code: 0): Validate class not found from basename 'Magento\Framework\Validator\EmailAddress' at /www/wwwroot/web1/vendor/magento/zendframework1/library/Zend/Validate.php:244)"} []
[2021-12-24 03:11:42] main.CRITICAL: Report ID: webapi-61c53a6eb6cea; Message: Validate class not found from basename 'Magento\Framework\Validator\EmailAddress' {"exception":"[object] (Exception(code: 0): Report ID: webapi-61c53a6eb6cea; Message: Validate class not found from basename 'Magento\Framework\Validator\EmailAddress' at /www/wwwroot/web1/vendor/magento/framework/Webapi/ErrorProcessor.php:208, Zend_Validate_Exception(code: 0): Validate class not found from basename 'Magento\Framework\Validator\EmailAddress' at /www/wwwroot/web1/vendor/magento/zendframework1/library/Zend/Validate.php:244)"} []
[2021-12-24 03:11:43] main.ERROR: Braintree\Configuration::merchantId needs to be set (or accessToken needs to be passed to Braintree\Gateway). [] []

尝试:在宝塔面板的站点管理,网站目录的属性中,不勾选 “防跨站攻击(open_basedir)” 的功能。

dn_magento2-bt-open_basedir.png

参考:https://github.com/magento/magento2/issues/12255

WHM/cPanel 安装 libsodium

问题:WHM/cPanel的面板环境,安装magento2需要php的sodium扩展。

尝试:

  1. 登录到WHM中,打开“终端”
  2. yum -y install epel-release # 安装epel安装源
  3. yum -y install libsodium libsodium-devel # 安装 libsodium
  4. 转到 Module Installers 页,在相应的php版本中,在 PECL 里输入 libsodium ,然后点击 Install Now 安装

参考:https://www.vpsblocks.com.au/support/Knowledgebase/Article/View/411/11/installing-libsodium-on-cpanel-servers