Magento

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

1
Magento 2:如何在结帐时向街道字段添加占位符文本?
在后端,我将街道地址设置为3行。 我想在每个字段中放置一个不同的占位符: 街 建筑/公寓 区域 这样,用户可以以更加结构化的方式输入数据。 在这里可以找到类似的问题: Magento 2-如何使用布局xml / ui参数影响结帐表单中的街道地址 但是,答案没有提供在街道地址字段中包含占位符的解决方案。 我要实现的是为每个街道地址字段设置一个不同的占位符。 我的代码: app / code / Jsp / Placeholder / etc / module.xml: <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd"> <module name="Jsp_Placeholder" setup_version="2.0.0" /> </config> app / code / Jsp / Placeholder / registration.php: <?php \Magento\Framework\Component\ComponentRegistrar::register( \Magento\Framework\Component\ComponentRegistrar::MODULE, 'Jsp_Placeholder', __DIR__ ); …

1
Magento 2 CMS Page getList()存储库方法未返回预期对象
我需要删除所有CMS页面。 这是代码: 命名空间Soon \ Core \ Setup; 使用Magento \ Cms \ Api \ PageRepositoryInterface; 使用Magento \ Framework \ Api \ SearchCriteriaInterface; Cms类 { / ** * @var SearchCriteriaInterface * / 私人$ searchCriteria; / ** * @var PageRepositoryInterface * / 私人$ cmsPageRepository; / ** * Cms构造函数。 * @param SearchCriteriaInterface $ searchCriteria …
10 magento2 

3
未设置区号
我一直在尝试解决此区域代码未设置错误的问题,并在此处引用了其他代码,但是在跟踪该代码时遇到了问题。 我一直在尝试将2.0.7升级到2.1.0,当我到达运行点时: php bin / magento设置:升级-vvv 我得到这个作为错误。 [Magento \ Framework \ Exception \ SessionException]未设置区号:必须在开始会话之前设置区号。 异常跟踪:()位于/ opt / bitnami / apps /中的/opt/bitnami/apps/magento/htdocs/vendor/magento/framework/Session/SessionManager.php:176 Magento \ Framework \ Session \ SessionManager-> start() magento / htdocs / var / generation / Magento / Framework / Session / Generic / Interceptor.php:50 Magento \ Framework \ …


1
如何在Magento 2.1rc3中更改主题?
我都尝试过Magento v2.1rc3并Magento2从git仓库开发版本。 问题是,当我尝试更改Magento 2主题时,我遵循以下步骤: Open BO -> Stores -> Configurations -> General -> Design 而且我再也看不到带有主题选择的“ 设计主题 ”部分dropdown。 我试图对此进行更深入的研究,发现从中删除了具有此配置的节点system.xml(Magento\Backend module)。我发现,在Magento2 git仓库的历史记录中删除这个节点提交,它有具有信息“ 删除旧的代码。 ” 因此,我希望将configuration其转移到Magento后台办公室的其他位置。但是我没有在任何system.xml文件中找到它。也许有人知道为什么要这么做,以及我可以通过什么方式更改Magento 2主题?

1
Magento 2 EE 2.1中的消息队列配置更改
我一直在查看EE消息队列功能,但似乎还不完整。 在2.1之前的版本中,有一个合理的功能实现,允许您etc/queue.xml按照官方文档中的说明创建一个来定义发布者,主题,使用者和队列:http : //devdocs.magento.com/guides/v2.0/config-guide /mq/config-mq.html。 存在一些限制,例如除非它们与配置中定义的主题匹配,否则无法创建绑定,这限制了灵活性,因为您必须预先定义所有可能的主题。缺少重复的安装脚本也意味着您必须进行一些改动才能使安装程序脚本再次运行。 随着2.1的发布者,话题,消费者和绑定的元素etc/queue.xml已过时且配置之间的分裂etc/queue.xml和etc/communication.xml,因为在这里可以看到:https://github.com/magento/magento2-samples/blob/master/sample- module-sample-message-queue / etc /。仍然可以单独使用已弃用的发布者/主题/消费者/绑定架构,但不能与经修订的代理/队列架构结合使用。 但是,这些都没有出现在官方文档中,并且尚不清楚为什么配置被拆分并且在某些情况下需要重复。更重要的是,现在似乎没有定义绑定的工具,而是使用主题名称作为路由键。反过来,这也使得不可能使用特殊字符来绑定队列。因此,它似乎已经过重构,但功能已丢失。 令人欣慰的是,该magento/module-amqp模块现在使用循环安装程序脚本,因此在运行时会安装队列配置更改magento setup:upgrade。但是,此更改尚未应用于magento/module-mysql-mq模块。 因此,我想知道:a)我是否全部弄错了,实际上有创建绑定的方法,它比看起来更灵活?b)为什么要拆分配置? 附带说明一下,在进行此实验时,我一直在使用RabbitMQ教程中的拓扑示例之一,网址为https://www.rabbitmq.com/tutorials/tutorial-four-php.html: 此不推荐使用的配置在很大程度上实现了拓扑: queue.xml: <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework-message-queue:etc/queue.xsd"> <topic name="quick.orange.rabbit" schema="Example\MessageQueue\Api\MessageInterface" publisher="default" /> <topic name="quick.orange.fox" schema="Example\MessageQueue\Api\MessageInterface" publisher="default" /> <topic name="lazy.pink.rabbit" schema="Example\MessageQueue\Api\MessageInterface" publisher="default" /> <topic name="lazy.orange.elephant" schema="Example\MessageQueue\Api\MessageInterface" publisher="default" /> <topic name="lazy.brown.fox" schema="Example\MessageQueue\Api\MessageInterface" publisher="default" /> <consumer name="consumerOne" …

5
如何在Magento 2中的产品小部件的“添加到购物车”按钮中启用AJAX?
在Magento 2中,普通Add to Cart按钮具有非常好的基于AJAX的逻辑,可将产品添加到购物车。 但是,当我们Catalog Products List在CMS页面中使用小部件时,此产品列表中的按钮将与一起使用HTTP POST,以重新加载当前页面。 用户体验受此困扰,如果按钮具有与默认类别产品列表或产品页面中相同的AJAX逻辑,则将是可取的。 我们如何扩展Catalog Products List小部件以使其使用更好的 Add to Cart按钮?还是有其他解决方法?

2
Magento2.1类别自定义属性下拉菜单
重现步骤 1.模块UpgradeData.php脚本包含: $categorySetup->addAttribute(Category::ENTITY, 'roflcopter', [ 'type' => 'int', 'label' => 'CMS Block', 'input' => 'select', 'source' => 'Magento\Catalog\Model\Category\Attribute\Source\Page', 'required' => false, 'sort_order' => 20, 'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE, 'group' => 'Display Settings', ]); 2. view / adminhtml / ui_component / category_form.xml <?xml version="1.0" encoding="UTF-8"?> <form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd"> <fieldset name="Navigation"> <argument name="data" …

2
在抬头微型购物车中获取产品SKU
我希望能够SKU在Magento 2网站的微型购物车中展示该产品。但是我不确定如何使用KnockoutJS其他产品信息。被调用的模板在这里: vendor / magento / module-checkout / view / frontend / web / template / minicart / item / default.html 并包含如下代码: <strong class="product-item-name"> <!-- ko if: product_has_url --> <a data-bind="attr: {href: product_url}, text: product_name"></a> <!-- /ko --> <!-- ko ifnot: product_has_url --> <!-- ko text: product_name --><!-- /ko --> …

3
Magento 1:性能优化以删除实体
我目前正在尝试改进有关性能的几个模块。 你们中有些人可能知道集合方法的用法,walk()这对于避免直接遍历产品非常有用。 最重要的是,感谢@Vinai,我们也可以使用collection delete()方法。 但是我注意到Magento 1本机文件并不总是使用这些方法中的任何一种进行删除。 一个我见过的最糟糕的代码是massDelete()从方法app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php,其中产品在删除之前的循环加载。 foreach ($productIds as $productId) { $product = Mage::getSingleton('catalog/product')->load($productId); Mage::dispatchEvent('catalog_controller_product_delete', array('product' => $product)); $product->delete(); } 因此,我进行了一些性能测试,添加了一些日志记录调用,以检查删除100个产品所花费的时间和内存使用情况。 测试1:walk方法 我用以下代码替换了上面粘贴的原始代码: $collection = Mage::getResourceModel('catalog/product_collection') ->addAttributeToSelect('entity_id') ->addIdFilter($productIds) ->walk('delete'); 在我糟糕的开发服务器上的结果如下(基于10个测试的平均值): 原始代码:19.97秒,已使用15.84MB 自定义代码:17.12秒,已使用15.45MB 因此,对于100种产品的删除,我的自定义代码加快了3秒,而占用的内存少了0.4MB。 测试2:使用收集delete()方法 我用以下代码替换了原始代码: $collection = Mage::getResourceModel('catalog/product_collection') ->addAttributeToSelect('entity_id') ->addIdFilter($productIds) ->delete(); 和记吹这里的结果: 原始代码:19.97秒,已使用15.84MB 自定义代码:1.24秒,已使用6.34MB 因此,对于100种产品的删除,我的自定义代码加快了18秒,而占用的内存减少了9MB。 如评论中所述,该方法似乎不会触发Magento事件(加载后,删除后),也不会触发索引/缓存刷新。 题 所以我的问题是:Magento核心团队为什么没有使用walk('delete')or事件更好的收集delete()方法而不是循环加载产品(我们都知道这是非常非常糟糕的做法)吗? 主要目标是在开发模块时要注意这些关键点:在某些特殊情况下,不能使用walk/收集delete()方法吗? …

2
Magento 2:如何在模块的composer.json中指定“语义版本控制”依赖性
Magento 2的开发和部署包括一个正式的版本控制过程,其中核心Magento模块的主要和次要版本将根据向后兼容功能的变化而增加。 作为Magento模块开发人员,我应该如何在自己的composer.json文件中构建需求列表?每当我使用一段Magento核心代码require:...并向composer.json 添加一行时,是否需要手动查看模块?还是有一个自动化工具可以为我做到这一点? 如何指定要包含在我的版本中composer.json?它应该是我针对的特定模块版本吗?还是我应该涉及某种通配符?还是我需要根据权衡做出决定?如果是这样,每种样式指定所涉及的权衡是什么? 对此功能有很多高级描述-但是尚不清楚工作中的开发人员应在此处采取哪些实际步骤,和/或这些步骤的实际后果是什么。

2
Magento 2:如何创建自己的自定义缓存类型?
在Magento 1中,可以通过在您的中声明以下内容来创建自己的缓存类型config.xml: <global> <cache> <types> <custom translate="label,description" module="module"> <label>Custom Cache</label> <description>This is my custom cacge</description> <tags>CUSTOM_CACHE_TAG</tags> </custom > </types> </cache> </global> 这将导致在“ 系统”>“缓存管理”下将新的缓存类型添加到后端,因此,它将添加刷新与CUSTOM_CACHE_TAG缓存标签相关的缓存的功能。 在M2中有可能吗?如何实现?

2
在Magento 2中将自定义活动链接添加到客户帐户导航
我正在尝试在客户帐户导航中添加自定义链接。我的自定义链接也显示在帐户导航中,并且也可以正常工作,但是单击时并没有显示为活动/当前状态。 下面是我的代码: /app/code/Namespace/Support/view/frontend/layout/customer_account.xml <?xml version="1.0"?> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"> <body> <referenceBlock name="customer_account_navigation"> <block class="Magento\Framework\View\Element\Html\Link\Current" name="customer-account-navigation-suppport-ticket-link" after="-"> <arguments> <argument name="path" xsi:type="string">support/customer/index</argument> <argument name="label" xsi:type="string">Support Ticket</argument> </arguments> </block> </referenceBlock> </body> </page> / app / code /命名空间/Support/Controller/Customer/Index.php <?php namespace Namespace\Support\Controller\Customer; use Magento\Framework\App\Action; use Magento\Framework\Exception\NotFoundException; use Magento\Framework\Controller\ResultFactory; class Index extends \Namespace\Support\Controller\Index { /** * Show …

3
单元测试源模型
我的自定义扩展中有几个模型,这些模型仅用于填充实体的添加/编辑形式中的某些选择和/或多项选择。 因此,它们被magento称为“源模型”。 所涉及的值始终相同,并且方法返回的内容相同。 我应该如何对它们进行单元测试?甚至更好,我应该为他们编写单元测试吗? 这是一个例子。 下列类用于添加/编辑表单(称为)的字段type以及同一字段的Grid列。 <?php namespace Sample\News\Model\Author\Source; use Magento\Framework\Option\ArrayInterface; class Type implements ArrayInterface { const COLLABORATOR = 1; const EMPLOYEE = 2; /** * Get options * * @return array */ public function toOptionArray() { $_options = [ [ 'value' => '', 'label' => '' ], [ 'value' …

2
产品中YouTube视频的导入属性
我想将产品与YouTube视频一起导入“图片或视频库”中。你们知道正确的属性吗? 我为所有图片都做过并且工作正常,但是我不知道视频。
10 magento2 

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.