Magento

Magento电子商务平台用户的问答

6
重要提示:下载并安装Magento安全补丁。(没有SSH访问权限的FTP)
Magento安全补丁看起来像是.sh文件,如果不通过SSH访问其Magento安装,有人将如何应用这些补丁? 另外,这些补丁是否累积?IE:它们会被包含在Magento的未来版本中还是需要重新应用? 我问这个问题是因为我登录到管理控制台并收到严重安全警告: 从Magento社区版下载页面(https://www.magentocommerce.com/products/downloads/magento/)下载并实现2个重要的安全补丁(SUPEE-5344和SUPEE-1533)。 如果尚未执行此操作,请下载并安装2个以前发布的补丁,以防止攻击者在Magento软件上远程执行代码。这些问题影响所有版本的Magento社区版。 未来几天,Check Point软件技术公司的新闻稿将使这些问题之一广为人知,这可能会警告可能试图利用它的黑客。在发布此问题之前,请确保已安装修补程序以作为预防措施。 截至2015年5月14日: 从Magento社区版下载页面(https://www.magentocommerce.com/products/downloads/magento/)下载并安装新的安全补丁(SUPEE-5994)对您来说很重要。请立即应用此重要更新,以帮助保护您的站点免受暴露于影响所有Magento Community Edition软件版本的多个安全漏洞的侵害。请注意,除了最近的Shoplift补丁(SUPEE-5344)之外,还应该安装此补丁。 我还收到以下电子邮件: 尊敬的Magento商人: 为了进一步保护Magento平台免受潜在攻击,我们今天发布了一个具有多个关键安全修复程序的新补丁(SUPEE-5994)。该补丁解决了一系列问题,其中包括攻击者可以访问客户信息的情况。这些漏洞是通过我们的多点安全计划收集的,我们没有收到任何商家或客户受到这些问题影响的报告。 Magento Community Edition软件的所有版本都会受到影响,我们强烈建议您与解决方案合作伙伴或开发人员合作,立即部署此关键补丁。请注意,除了最近的Shoplift补丁(SUPEE-5344)之外,还应该安装此补丁。Magento Community Edition用户指南的附录中提供了有关安全问题的更多信息。 您可以从Community Edition下载页面下载补丁。寻找SUPEE-5994补丁。该补丁可用于Community Edition 1.4.1–1.9.1.1。 在将修补程序部署到生产站点之前,请务必先在开发环境中实施和测试该修补程序,以确认它可以按预期工作。在线提供有关在Magento社区版上安装补丁的信息。 感谢您对这个问题的关注。 2015年7月7日更新 2015年7月7日:新的Magento安全补丁(SUPEE-6285)–立即安装 今天,我们提供了一个新的安全补丁(SUPEE-6285),用于解决关键的安全漏洞。该补丁适用于Community Edition 1.4.1到1.9.1.1,并且是我们最新版本Community Edition 1.9.2的核心代码的一部分,今天可以下载。请注意:必须首先实现SUPEE-5994以确保SUPEE-6285正常工作。从社区版下载页面下载社区版1.9.2或补丁:https : //www.magentocommerce.com/products/downloads/magento/ 2015年8月4日更新 2015年8月4日:新的Magento安全补丁(SUPEE-6482)–立即安装 今天,我们提供了一个新的安全补丁(SUPEE-6482),该补丁解决了4个安全问题。与API相关的两个问题和两个跨站点脚本编写风险。该修补程序可用于Community Edition 1.4和更高版本,并且是Community Edition 1.9.2.1核心代码的一部分,该代码可立即下载。在实施此新的安全修补程序之前,必须首先实施所有以前的安全修补程序。从https://www.magentocommerce.com/products/downloads/magento/下载的Community Edition下载页面下载Community Edition 1.9.2.1或补丁。 2015年10月27日更新 2015年10月27日:全新的Magento安全补丁(SUPEE-6788)–立即安装 今天,我们将发布一个新补丁(SUPEE-6788)和Community Edition 1.9.2.2/Enterprise Edition …

2
Magento 2-如何将自定义字段添加到结帐并发送
所有教程都只涉及添加字段,但是该文件的保存值被跳过#mindblown。我不知道为什么,这是添加任何字段或表单的最重要部分。 我尝试关注Magento文档,但是...太糟了。 出于测试目的,我尝试将其他字段添加到收货地址,只是忽略自定义范围,自定义数据集,自定义数据提供程序和其他未记录的内容,这对我来说太奇怪了。 我不知道这种形式是“静态”还是“动态”。对我来说,所有结帐表单都是在KnockoutJS模板之上动态构建的,但是...当我尝试“静态”方式时,我可以在此处添加输入(所以它是静态表单还是不是静态表单?)。 首先,我尝试调试为什么Knockout可观察对象在解析和发送数据时只会忽略我的字段。我发现我的字段的name参数为空,但是我无法解决此问题。IMO应该通过inputName参数将其传递给UI组件渲染器,与其他任何选项(例如disabled,placeholder等等)相同(其他参数工作正常,我检查了从XML生成的配置,以检出模块初始化,对我来说很不错) 其次,我尝试使用“动态”方式来创建插件LayoutProcessor并传递完全相同的数据……现在我具有names 字段,但是发送仍然根本不起作用。 深入研究JS之后,我发现准备此请求的内容保存在module-checkout/view/frontend/web/js/model/shipping-save-processor/default.js文件中,具体取决于在module-checkout/view/frontend/web/js/model/quote.js哪里定义/创建了可观察的观察项。 我终于以某种方式module-checkout/view/frontend/web/js/model/address-converter.js更新了这个可观察变量,并依赖于module-checkout/view/frontend/web/js/model/new-customer-address.js,在那里我终于找到了一些有趣的配置选项-所有地址字段的列表。 当我在此处添加字段时,脚本开始解析并发送它们,OFC得到500,b / c后端无法识别它们……(不要问,我不是后端开发人员) 所以这是我的问题: 这是处理这种类型的自定义的正确方法吗?(b / c对我来说很奇怪) 如何发送与新地址无关的字段的值?我在任何地方都没有看到类似的配置。就我而言,我想发送订单注释(文本区域)和发票请求(复选框)。两者都不应该另存为地址,有些用户可能想要保存此地址以备将来使用。 是否有关于“静态”和“动态”表格的文档或一些示例/比较?值得这样思考吗? 附加的存在性问题: 为什么如此不一致?为什么我必须在XML / PHP文件中定义大量参数,而Magento根本只能呈现输入,然后我必须自己处理所有事情?

4
登录电子邮件中的密码。不好的做法?是否符合PCI?
我们使用Magento Enterprise(1.12),我有几个客户给我发送电子邮件,他们已经抱怨说他们在注册帐户时通过电子邮件收到了密码。我知道这被认为是不好的做法,但是Magento可以立即使用。 我将对其进行更改并将其从电子邮件模板中删除,这很容易,但是我很好奇为什么Magento会这样做(如果长期以来一直被认为是不好的做法)?我知道用户帐户中存储的敏感信息很少,我们也进行信用卡验证,但是“ Magento Enterprise就是这样,所以一定可以。” 我给的答案似乎很糟糕。 另外,在构建新的Magento网站时,例如删除电话验证,许多Magento开发人员是否将其作为经常执行的“待办事项列表”修复程序?

8
如何在Magento2中覆盖核心块,模型和控制器
我陷入了在Magento2中覆盖核心模型块和控制器的困境。有人可以帮忙吗? 让我们以列表工具栏为例,我需要添加一个新的排序选项,称为sort by most Popular。如何添加?我想为此,我们需要在块级别添加选项,并在List.php集合级别添加条件。

4
Magento 2:客户区段/sections.xml如何工作?
最近,我遇到了Magento 2中一个有趣的新概念:客户区 你们中的有些人可能已经注意到sections.xml文件的外观如下: <?xml version="1.0"?> <!-- /** * Copyright © 2016 Magento. All rights reserved. * See COPYING.txt for license details. */ --> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Customer:etc/sections.xsd"> <action name="sales/guest/reorder"> <section name="cart"/> </action> <action name="sales/order/reorder"> <section name="cart"/> </action> </config> 据我了解,这些文件指定了在调用相应操作时应更新哪些客户部分。 我注意到例如Magento/Checkout/etc/frontend/sections.xml以下部分: <action name="checkout/cart/add"> <section name="cart"/> </action> 将产品添加到购物车后,是什么触发了微型购物车更新。 我尝试使用以下etc/frontend/sections.xml文件创建自定义模块以测试该功能: <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" …

3
Magento 2无头解决方案
我想知道是否有一些最佳实践将Magento 2用作无头电子商务解决方案。 2017年典型的电子商务是拥有全渠道解决方案,其中包括 电子商务 不育系 多平台 层系统集成(ERP,...) 我想知道如何将Magento 2 API与这种解决方案结合在一起。 我的方法: 对台式机/移动Web应用程序和移动应用程序使用不同的前端框架(例如angular) 仅使用Magento 2 API才能检索电子商务数据/操作或与之交互 仅使用CMS API才能检索CMS数据。 专业版:仅API,全渠道 缺点:性能/功能/格式的局限性 有关此方法的一些问题: 谁负责格式化数据,例如价格。Magento API和前端框架? 谁负责调整产品图像的大小并缓存它们?因为在本地Magento 2 API中没有调整大小或缓存系统。 我是否需要创建新的自定义隔离API或扩展本机以用于将来的升级? 您是否建议使用额外的图层以结合CMS和Magento API? 感谢您分享经验。 此外,我发现了这种方法:http : //fbrnc.net/blog/2015/10/super-scaling-magento 有用的链接: https://blogi.lamia.fi/verkkokaupat/headless-ecommerce/ http://www.magetitans.it/headless-new-buzzword-magento-2-sander-mangel/ https://www.youtube.com/watch?v=6OuzAtqtWRE https://pantheon.io/blog/headless-websites-whats-big-deal-decoupled-architecture http://buytaert.net/the-future-of-decoupled-drupal https://creately.com/diagram/example-v2/ihbyjjkf/Example%20Headless%20Architecture https://www.lullabot.com/articles/should-you-decouple https://alankent.me/2016/12/14/headless-magento-and-extensions/ 编辑: 我找到了一个很好的引导程序,以便为您的Magento 2 API创建自己的缓存逻辑:https : //github.com/magespecialist/m2-MSP_APIEnhancer 编辑: 一个不错的开源项目,目的是将Magento 2用作VueJS …


7
价格重新编制索引导致结帐时数据库死锁
我遇到了一个问题,我认为产品价格重新索引编制过程在结帐过程中导致了死锁异常。 我在结帐过程中捕获了此异常: 订单转换异常:SQLSTATE [40001]:序列化失败:1213尝试获取锁时发现死锁;否则,错误代码为:尝试重新启动事务 不幸的是,由于捕获异常的原因,我没有完整的堆栈跟踪信息,但是通过检查INNODB状态,我能够找到死锁: SELECT `si`.*, `p`.`type_id` FROM `cataloginventory_stock_item` AS `si` INNER JOIN `catalog_product_entity` AS `p` ON p.entity_id=si.product_id WHERE (stock_id=1) AND (product_id IN(47447, 56678)) FOR UPDATE *** (1) WAITING FOR THIS LOCK TO BE GRANTED: RECORD LOCKS space id 0 page no 329624 n bits 352 index `PRIMARY` of …

3
Magento2:插件和首选项之间的基本区别是什么?
我在magento2教程中同时使用了插件和首选项,两者都工作正常,但是它们之间的基本区别是什么。 插件代码: 1.1)在di.xml中添加一个插件声明: <type name="Magento\Catalog\Model\Product"> <plugin name="magento-catalog-product-plugin" type="Training\Test\Model\Product" sortOrder="10"/> </type> 1.2)创建一个插件类: <?php namespace Training\Test\Model; class Product { public function afterGetPrice(\Magento\Catalog\Model\Product $product, $result) { return 5; } } 偏好代码: 2.1)创建一个首选项声明: <preference for="Magento\Catalog\Model\Product" type="Training\Test\Model\Testproduct" /> 2.2)创建一个新的产品类: <?php namespace Training\Test\Model; class Testproduct extends \Magento\Catalog\Model\Product { public function getPrice() { return 3; } }

11
Magento 2中的自定义CLI命令中的“未设置区域代码”问题
通过更新数据时出现以下错误 CustomerRepositoryInterface [Magento\Framework\Exception\SessionException] Area code not set: Area code must be set before starting a session. [Magento\Framework\Exception\LocalizedException] Area code is not set 以下是我的di.xml档案 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> <type name="Magento\Framework\Console\CommandList"> <arguments> <argument name="commands" xsi:type="array"> <item name="test1_command" xsi:type="object">Test\Module\Console\Command\Test1Command</item> <item name="test2_command" xsi:type="object">Test\Module\Console\Command\Test2Command</item> </argument> </arguments> </type> </config>

2
Magento事件观察者:Singleton与模型
因此,Magento提供了两种声明观察者的方法。通过<type>在Magento 1.x中指定标签并shared在Magento 2中指定属性,可以选择Singleton和Model(新实例)。 Magento 1种方法。 <events> <event_name> <observers> <unique_observer_name> <type>model|object|singleton|null</type> <class>class/alias_here</class> <method>methdNameHere</method> </unique_observer_name> </observers> </event_name> </events> Magento 2版本: <event name="event_name"> <observer name="unique_observer_name" instance="Class\Name\Here" method="methodNameHere" shared="true|false" /> </event> 因此,对于Magento 1,如果<type>标签是模型或对象,则将使用实例化该类Mage::getModel()。如果是singleton或缺少它,则使用实例化Mage::getSingleton()。 在Magento 2的情况下,如果shared为,false则使用$this->_observerFactory->create() (新实例)实例化该类。 如果shared为true,则使用$this->_observerFactory->get()(单例)实例化。 在这两个版本之间,事件观察者的想法非常相似,但是Magento 1中的大多数观察者都用作单例,因为type缺少标签,而在Magento 2中,大多数(我认为是全部)观察者都具有shared="false"。 我很困惑 什么时候应该使用单例,什么时候应该为观察者使用新的实例? Magento版本(1或2)在这里并不重要。 每个方法(新实例或单例)都可以使用一个简单的用例

3
APPSEC-1057如何将变量或块添加到白名单表
APPSEC-1057(SUPEE-6788的一部分)规定 Magento现在包括允许的块或指令的白名单。如果一个模块或任何用途的变量,比如{{config path=”web/unsecure/base_url”}}和 {{block type=rss/order_new}}CMS中的网页或电子邮件,而指令是不在此列表中,您需要将它们与你的数据库安装脚本添加。 处理内容的扩展名或自定义代码(例如博客扩展名)可能会受到影响。如果您的代码使用一些配置变量或块,则需要创建一个数据更新脚本,以将变量或块添加到白名单表中: 您如何将自定义变量和块列入白名单?

2
Magento中引发异常的首选方式是什么?
Magento核心使用以下所有方法,因此哪种方法是首选的(或最新的“最佳实践”)方法? Mage::throwException('Some Message')- 732种用法 throw new Exception('Some Message')- 419种用法 throw Mage::exception('Vendor_Module', 'Some Message')- 94种用法 (需要创建一个Vendor_Module_Exception类)

16
安全修补程序SUPEE-10570-可能的问题?
Magento发布了针对M1的新安全补丁,以及针对M1和M2的更新。 升级或应用此补丁时应注意哪些问题? SUPEE-10570 SUPEE-10570,Magento Commerce 1.14.3.8和Open Source 1.9.3.8包含多项安全增强功能,可帮助关闭远程代码执行(RCE),跨站点脚本(XSS)和其他问题。发行说明。 MAGENTO 2.2.3、2.1.12和2.0.18安全更新 Magento Commerce和开源2.2.3、2.1.12和2.0.18包含多项安全增强功能,可帮助关闭跨站点脚本(XSS),经过身份验证的Admin用户远程执行代码(RCE)和其他漏洞。这些发行版包括其他功能修复程序。要查找有关功能修复的更多信息,请查看Magento Commerce 2.0.18、2.1.12、2.2.3和Magento Open Source 2.0.18、2.1.12、22.3的发行说明。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.