单击addtocart按钮后打开minicart框

时间:2016-04-07 08:57:40

标签: magento2 magento2.0.2

点击addtocart按钮后,我必须打开minicart框。是否可以使用section.xml?任何人都知道magento2中的sections.xml用法。

2 个答案:

答案 0 :(得分:0)

这些部分到底是什么?

一个部分是一组客户数据。每个部分均由用于访问和管理数据以及数据本身的键表示。 Magento通过AJAX请求将部分加载到/ customer / section / load /,并将加载的数据缓存在浏览器本地存储中的键mage-cache-storage下。 Magento会跟踪何时更改某些部分并自动加载更新的部分。

您如何定义部分?

通过将新节添加到节池中,在di.xml文件中定义的节

<type name="Magento\Customer\CustomerData\SectionPoolInterface">
<arguments>
    <argument name="sectionSourceMap" xsi:type="array">
        <item name="cart" xsi:type="string">Magento\Checkout\CustomerData\Cart</item>
        <item name="directory-data" xsi:type="string">Magento\Checkout\CustomerData\DirectoryData</item>
    </argument>
</arguments>

因此,这里有两个新的部分是注册的购物车和目录数据。 Magento \ Checkout \ CustomerData \ Cart和Magento \ Checkout \ CustomerData \ DirectoryData实现Magento \ Customer \ CustomerData \ SectionSourceInterface并提供实际数据作为getSectionData方法的结果。

如何触发部分更新?

Magento假定当客户发送一些状态修改请求(POST,PUT,DELETE)时,客户的私人数据已更改。为了最大程度地减少服务器上的负载,开发人员应在etc / section.xml中指定哪个操作(或请求)更新哪个客户数据部分。

<action name="checkout/cart/add">
  <section name="cart"/>
</action>

动作名称是动作键模式。当用户调用与指定模式匹配的动作时,Magento将检测到相应部分已过时并再次加载。如果操作名称为*,则表示该部分将在每个POST和PUT请求中更新。如果缺少部分标签,则所有部分都将更新。

因此,从概念上讲,当您拥有丰富的购物车页面时,更新迷你购物车是错误的。此时,迷你购物车(或购物车部分)应该已经更新。

您可以找到有关客户数据here

的更多信息

答案 1 :(得分:0)

Magento的市场和Github上已经提供了完整的免费扩展程序

magento:https://marketplace.magento.com/ambab-module-slidingcart.html

Github:https://github.com/ambab-infotech/slidingcart

这可能会帮助某人。

参考网址:https://roshanyadav007.wordpress.com/2020/01/24/sliding-cart-extension-for-magento-2-magento-2-3-x/