Questions tagged «magento2»

有关Magento 2的一般问题,不专门针对次要版本。使用此标签可以区分Magento1。如果您对特定版本有疑问,请改用相应的“ Magento-2.x”标签。Magento 2次要版本之间的功能可能有所不同。

5
Magento 2如何添加按选项自定义排序
我需要添加一个基于created_at属性的附加过滤器,以便按最新产品对产品列表进行排序。我试图使用下面的文件来计算 app/design/frontend/Vendor/ThemeName/Magento_Catalog/templates/product/list/toolbar/sorter.phtml 但是如何将我们的实体ID添加到getAvailableOrders()?
22 magento2  sorting 

2
Magento 2:$ data数组构造函数参数是什么?
因此,我注意到在大多数模型和块中,这array $data = []是构造函数的最后一个参数。 例如 \Magento\Catalog\Block\Product\ListProduct public function __construct( \Magento\Catalog\Block\Product\Context $context, \Magento\Framework\Data\Helper\PostHelper $postDataHelper, \Magento\Catalog\Model\Layer\Resolver $layerResolver, CategoryRepositoryInterface $categoryRepository, \Magento\Framework\Url\Helper\Data $urlHelper, array $data = [] ) { $this->_catalogLayer = $layerResolver->get(); $this->_postDataHelper = $postDataHelper; $this->categoryRepository = $categoryRepository; $this->urlHelper = $urlHelper; parent::__construct( $context, $data ); } 我还知道,在处理首选项时,当添加的参数比原始构造函数更多时,仍必须将该参数保留在构造函数参数列表的末尾。 所以我对这个数组有几个问题: 它是什么 ? 如何使用它 ? 声明添加更多参数的块的首选项时,为什么需要将其保留在构造函数参数列表的末尾?

1
产品视图页面上未呈现Cachable = false阻止
我正在使用magento2-1.0.0-beta4 我已将代码checkout.root块从复制app/code/Magento/Checkout/view/frontend/layout/checkout_index_index.xml到产品页面。 一切正常,直到启用page_cache。该块包含cacheable="false"在布局XML中。 现在,当我打开我的产品页面时,该块完全无法渲染。 如果我正确理解页面缓存,它应该通过AJAX调用加载此类块。但是似乎没有发生这样的AJAX调用,因为我的中断点\Magento\PageCache\Controller\Block\Render::execute从未被击中。 当打开/checkout/或/checkout/cart/一切正常。但是似乎也没有发生AJAX调用。相反,整个页面似乎都不是从缓存呈现的,这对于购物车来说是有意义的。 因此,我应该简单地从中排除产品视图页面page_cache吗?但是我没有找到方法吗?



2
Magento 2:什么是“静态视图文件”
如果我使用module:enable或module:disable命令启用或禁用模块, php bin/magento module:enable Pulsestorm_TutorialObjectManager1 php bin/magento module:enable Pulsestorm_TutorialObjectManager1 输出将包括以下内容 警报:尚未清除生成的静态视图文件。您可以使用--clear-static-content选项清除它们。无法清除静态视图文件可能会导致管理员和店面中的显示问题。 静态生成的视图文件到底是什么? 这些文件存放在哪里? 如果包含该--clear-static-content选项,是我只是删除文件,还是会重置系统中的其他内容?
21 magento2  cli 

3
请求Magento 2的流程
他们忙得不可开交Magento 2,像Namespaces这样的概念已经纳入其中。我只是很好奇,知道请求流程是如何处理的Magento 2,有人可以简要介绍一下。 来自Anthol Krit演讲的有趣观点 Magneto2拥有8000个课程,而Magento 1中有2700 个课程


1
如何使用Composer安装特定的Magento 2版本?
我想在Composer中安装Magento 2.1.7版,我在可在require:中使用的文档中找到了该文件"magento/product-community-edition": "2.1.7",但composer说找不到所需的软件包。 我还发现我可以做到: composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition <installation directory name> 但这不允许版本号吗?

2
Magento 2-使用/避免使用吸气剂的良好实践?
Varien_Object(M1)和DataObject(M2)上的魔术吸气剂是常见的做法,但是使用Magento 2时,使用它会感到错误。 好: 容易读/写 坏 在键中使用数字时会引起问题(请参阅:Magento 2:使用驼峰式大小写的不同方式获取集合的字段或获取自定义产品属性) 代码分析工具抱怨不存在的方法 题 使用Magento 2,我们有两种新方法: getDataByKey($key) getDataByPath($path) 是否有充分的理由继续使用getData($key)或使用任何吸气剂? 编辑: @Vinai谢谢。我没有提及该@method方法,因为我的方法大不相同。 它仅对IDE有帮助,对其他方面没有影响。 有几个mergedf PR是“微优化”的,例如在循环外(甚至对于小型阵列)强制转换为数组大小或(int)替代intval()数组大小。 另一方面,有 神奇的吸气剂,正如马吕斯(Marius)所说的那样有些“开销”。 strtolower(trim(preg_replace('/([A-Z]|[0-9]+)/', "_$1", $name), '_')); getData($key) Mehtods还必须额外进行2-3次检查... if ('' === $key) { if (strpos($key, '/')) { if ($index !== null) { 对于自己的代码,完全同意倾向于使用实际方法,但是在相同情况下,这是不可能的...例如,您创建了一个自定义事件... $value = $observer->getVar_1(); $value = $observer->getData('var_1'); $value = …


2
Magento 2结帐-在送货地址和送货方式之间添加自定义字段
我正在尝试在送货地址和送货方式部分之间添加自定义字段。而且我想这个字段的值存储在这两个quote和sales_order表大势所趋。这类似于添加“订单注释”字段,但是此字段应出现在“收货地址”部分之后和“送货方式”部分之前。 我浏览了Magento开发人员指南,了解如何在结帐中添加自定义字段和自定义表单,并在一定程度上实现了解决方案。 到目前为止,我所做的是: 更新了checkout_index_index.xml布局,uiComponent在“ shippingAddress”项下添加了一个新的(容器)。 在容器内添加了我需要的元素(字段)。 在我的自定义模块中覆盖/js/view/shipping.js和shipping.phtml。 shipping.phtml在结帐送货地址和送货方式之间调用上述制成的容器(类似于添加新的静态表格) 现在,我想要的字段正被呈现在一页结帐上,正是我想要的位置。但是我遇到了以下问题。 如何访问我在上面添加的自定义字段的值?我正在尝试将值保存到shippingAddress扩展属性。我在setShippingInformationAction里面添加了一个mixin ,尝试执行以下操作 shippingAddress['extension_attributes']['custom_field'] = shippingAddress.customAttributes['custom_field']; 但是上述代码实际上失败了,因为该元素不在中shipping-address-fieldset。我也许能够通过window元素获取值。但是有没有办法通过Magento来访问它呢? 有没有一种方法可以将该元素的值保存在本地缓存存储(Magento_Checkout/js/checkout-data)中,这样即使在刷新页面后该值也将保持不变?


7
运行安装程序时出现奇怪错误:模块安装后升级
我尝试安装wyomind google shopping,并且在运行bin / magento setup:upgrade时遇到以下错误。 [UnexpectedValueException] Unable to retrieve deployment version of static files from the file system. [Magento\Framework\Exception\FileSystemException] Cannot read contents from file "/var/www/vanillamage2/public_html/pub/stati c/deployed_version.txt" Warning!file_get_contents(/var/www/vanillamage2/pub lic_html/pub/static/deployed_version.txt): failed to open stream: No such f ile or directory 我已经在2个单独的服务器和3个Magento 2.1.7的单独安装上进行了尝试,但是每次都收到相同的问题。我在这里看到了类似的问题: https://github.com/magento/magento2/issues/6426 和 http://olivernam.com/magento2-frontpage-error-after-deploying-static-files 因此,尝试了这里提到的许多解决方案,包括重新部署静态文件,重置权限,删除静态内容,放置空的deployment_version.txt等,但是没有任何运气。我什至将文件设置为777,拥有正确的所有者,并且可以肯定这不是问题,因为下面的解决方案不会更改此文件的权限。 我只有两种获取设置的方法:运行升级。 禁用插件。 将app / code …

3
致命错误:无法在Magento 2中实例化接口?
作为在Magento 2中以编程方式创建捆绑产品的一部分,我遇到了错误。甚至我删除了var / cache和generation。 这可能是一个重复的问题,但没有一个答案可解决此问题。 致命错误:无法在第73行的\ ObjectManager \ Factory \ Dynamic \ Developer.php中实例化接口Magento \ Catalog \ Api \ Data \ ProductExtensionInterface 下面的代码用作链接的参考 $productExtension = $objectManager->create(\Magento\Catalog\Api\Data\ProductExtensionInterface::class); $option = $objectManager->create(\Magento\Bundle\Api\Data\OptionInterface::class); $option->setTitle('Size'); $option->setType('radio'); $option->setRequired(true); $option->setPosition(1); //$option->setProductLinks($links); $productExtension->setBundleOptions([$option]); $_product->setExtensionAttributes($productExtension); 我将对象管理器用于临时/快速用途,会将对象管理器转换为构造函数指令。 任何人都可以帮助我解决这个问题。

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.