文章列表


如何在Magento 2的小计之前在购物车摘要中添加自定义块?

<h5 style="color:red;">系统学习magento二次开发,推荐小册:<a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank">《Magento中文全栈二次开发 》</a></h5> <div class="image-container"> <p> <a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank"> <img src="https://www.maxiaoke.com/uploads/images/20230218/bb9c82995c24d1105676e02f373755f5.jpg" alt="Magento中文全栈二次开发"> </a> </p> </div> <div class="text-container" style="font-size:14px; color:#888"> <p>本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。</p> </div> <hr><p>让我们从编码开始</p><p>第 1 步:首先,我们需要在扩展名中创建一个“Registration.php”文件,路径如下:</p><p>app\code\Vendor\Extension</p><p></p><pre class="brush:bash;toolbar:false">&lt;?php \Magento\Framework\Component\ComponentRegistrar::register( &nbsp;&nbsp;&nbsp;&nbsp;\Magento\Framework\Component\ComponentRegistrar::MODULE, &nbsp;&nbsp;&nbsp;&nbsp;&#39;Vendor_Extension&#39;, &nbsp;&nbsp;&nbsp;&nbsp;__DIR__ );</pre><p>第 2 步:之后,我们需要在扩展名等文件夹中创建一个“module.xml”文件。</p><p>app\code\Vendor\Extension\etc</p><pre class="brush:bash;toolbar:false">&lt;?xml&nbsp;version=&quot;1.0&quot;?&gt; &lt;config&nbsp;xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&nbsp;xsi:noNamespaceSchemaLocation=&quot;urn:magento:framework:Module/etc/module.xsd&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&lt;module&nbsp;name=&quot;Vendor_Extension&quot;&nbsp;setup_version=&quot;1.0.0&quot;&nbsp;schema_version=&quot;1.0.0&quot;/&gt; &lt;/config&gt;</pre><p>第 3 步:之后,我们需要在 path 文件夹中创建一个“checkout_cart_index.xml”文件以将文件添加到模块中。</p><p>app\code\Vendor\Extension\view\frontend\layout</p><pre class="brush:bash;toolbar:false">&lt;?xml&nbsp;version=&quot;1.0&quot;?&gt; &lt;page&nbsp;xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&nbsp;layout=&quot;1column&quot;&nbsp;xsi:noNamespaceSchemaLocation=&quot;urn:magento:framework:View/Layout/etc/page_configuration.xsd&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&lt;body&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;referenceContainer&nbsp;name=&quot;checkout.cart.totals.container&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;block&nbsp;class=&quot;Magento\Framework\View\Element\Template&quot;&nbsp;name=&quot;checkout.cart.custom.block&quot;&nbsp;before=&quot;checkout.cart.totals&quot;&nbsp;template=&quot;Vendor_Extension::custom-block.phtml&quot;&nbsp;/&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/referenceContainer&gt; &nbsp;&nbsp;&nbsp;&nbsp;&lt;/body&gt; &lt;/page&gt;</pre><p>第 4 步:最后,在模块的以下路径文件夹中创建“custom-block.phtml”文件。</p><p>app\code\Vendor\Extension\view\frontend\templates</p><p>&lt;?php echo <span style="color: #ce9178;">&quot;Custom Block&quot;</span><span style="color: #6a9955;">; ?&gt;</span></p><p>结语</p><p>所以,这就是当天的全部内容!借助这些代码,您可以成功完成在Magento 2中的小计之前在购物车摘要中添加自定义块的任务。</p><p><br/></p>

如何检查Magento 2是否在生产模式下运行

<h5 style="color:red;">系统学习magento二次开发,推荐小册:<a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank">《Magento中文全栈二次开发 》</a></h5> <div class="image-container"> <p> <a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank"> <img src="https://www.maxiaoke.com/uploads/images/20230218/bb9c82995c24d1105676e02f373755f5.jpg" alt="Magento中文全栈二次开发"> </a> </p> </div> <div class="text-container" style="font-size:14px; color:#888"> <p>本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。</p> </div> <hr><p>介绍</p><p>基本上,Magento 2生产模式是所有Magento 2网站最有效的模式,因此该网站经过全面优化,运行平稳,提升了最佳的客户体验。主要是生产模式的使用非常安全可靠,原因是如果任何不适当的用户尝试访问 pub/static 文件夹并主动对其进行更改,那么只会在重复版本中进行更改,并且文件将在下一次静态部署期间被覆盖。</p><p>编码步骤</p><p>有两种方法可以检查Magento 2是否在生产模式下运行。</p><p>方法1:(不推荐的方法)</p><p></p><pre class="brush:bash;toolbar:false">$om&nbsp;=&nbsp;\Magento\Framework\App\ObjectManager::getInstance(); /**&nbsp;@return&nbsp;\Magento\Framework\App\State&nbsp;*/ $state&nbsp;=&nbsp;$om-&gt;get(&#39;Magento\Framework\App\State&#39;); /**&nbsp;@var&nbsp;bool&nbsp;$isDeveloperMode&nbsp;*/ $isDeveloperMode&nbsp;=&nbsp;\Magento\Framework\App\State::MODE_DEVELOPER&nbsp;===&nbsp;$state-&gt;getMode();</pre><p>注意: 根据Magento标准,不建议使用对象管理器,我们共享的方式只是为了知识目的。</p><p>方法2:Magento编码标准明智</p><pre class="brush:bash;toolbar:false">protected&nbsp;$_appState; public&nbsp;function&nbsp;__construct(&nbsp;\Magento\Framework\App\State&nbsp;$appState&nbsp;) { &nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;_appState&nbsp;=&nbsp;$appState; } public&nbsp;function&nbsp;doSomething()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;switch&nbsp;(&nbsp;$this-&gt;_appState-&gt;getMode()&nbsp;)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;\Magento\Framework\App\State::MODE_DEFAULT: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Action&nbsp;for&nbsp;default&nbsp;mode &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;\Magento\Framework\App\State::MODE_PRODUCTION: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Action&nbsp;for&nbsp;production&nbsp;mode &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;\Magento\Framework\App\State::MODE_DEVELOPER: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Action&nbsp;for&nbsp;developer&nbsp;mode &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;&nbsp;&nbsp;} }</pre><p>您可以使用上面给出的任何方法并实现检查Magento 2是否在生产模式下运行。实施后,您将能够成功了解Magento 2商店的模式。</p><p><br/></p>

Magento 2:如何使用自定义产品类型导入产品

<h5 style="color:red;">系统学习magento二次开发,推荐小册:<a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank">《Magento中文全栈二次开发 》</a></h5> <div class="image-container"> <p> <a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank"> <img src="https://www.maxiaoke.com/uploads/images/20230218/bb9c82995c24d1105676e02f373755f5.jpg" alt="Magento中文全栈二次开发"> </a> </p> </div> <div class="text-container" style="font-size:14px; color:#888"> <p>本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。</p> </div> <hr><p>介绍:</p><p>基本上,Magento 2在考虑功能时非常灵活。它具有内置功能,默认情况下可以直接从管理员导入和导出产品以及更多内容。但在这种情况下,当我们在Magento 2中实施进出口产品时,需要遵循强制性规则。您可以导入/导出产品,例如简单产品、虚拟产品等。但是,如果您想导入具有自定义产品类型的产品怎么办?不用担心,下面给出的代码将帮助您导入具有自定义产品类型的产品。</p><p>让我们编写代码</p><p>步骤1: 首先,我们需要在以下路径创建import.xml文件,</p><p>app\code\Vendor\Extension\etc 并添加以下代码</p><p>&lt;?xml <span style="color: #569cd6;">version</span>=<span style="color: #ce9178;">&quot;1.0&quot;</span>?&gt;</p><p>&lt;config xmlns:<span style="color: #569cd6;">xsi</span>=<span style="color: #ce9178;">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span> xsi:<span style="color: #569cd6;">noNamespaceSchemaLocation</span>=<span style="color: #ce9178;">&quot;urn:magento:module:Magento_ImportExport:etc/import.xsd&quot;</span>&gt;</p><p>&lt;entityType <span style="color: #569cd6;">entity</span>=<span style="color: #ce9178;">&quot;catalog_product&quot;</span> <span style="color: #569cd6;">name</span>=<span style="color: #ce9178;">&quot;custom_product_type_name&quot;</span> <span style="color: #569cd6;">model</span>=<span style="color: #ce9178;">&quot;Vendor\Extension\Model\Import\Type\Producttype&quot;</span> /&gt;</p><p>&lt;/config&gt;</p><p>第2步: 之后,我们需要在以下路径内创建一个产品类型.php文件。</p><p>app\code\Vendor\Extension\Model\Import\Type 并添加以下代码</p><pre class="brush:bash;toolbar:false">&lt;?php namespace&nbsp;Vendor\Extension\Model\Import\Type;&nbsp; class&nbsp;Producttype&nbsp;extends&nbsp;\Magento\CatalogImportExport\Model\Import\Product\Type\AbstractType { &nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;BEFORE_OPTION_VALUE_DELIMITER&nbsp;=&nbsp;&#39;;&#39;;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;PAIR_VALUE_SEPARATOR&nbsp;=&nbsp;&#39;=&#39;;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;VALUE_DYNAMIC&nbsp;=&nbsp;&#39;dynamic&#39;;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;VALUE_FIXED&nbsp;=&nbsp;&#39;fixed&#39;;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;NOT_FIXED_DYNAMIC_ATTRIBUTE&nbsp;=&nbsp;&#39;price_view&#39;;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;SELECTION_PRICE_TYPE_FIXED&nbsp;=&nbsp;0;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;SELECTION_PRICE_TYPE_PERCENT&nbsp;=&nbsp;1;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;$connection;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;$_resource;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;$_cachedOptions&nbsp;=&nbsp;[];&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;$_cachedSkus&nbsp;=&nbsp;[];&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;$_cachedSkuToProducts&nbsp;=&nbsp;[];&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;$_cachedOptionSelectQuery&nbsp;=&nbsp;[];&nbsp; public&nbsp;function&nbsp;isRowValid(array&nbsp;$rowData,&nbsp;$rowNum,&nbsp;$isNewProduct&nbsp;=&nbsp;true) { &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;parent::isRowValid($rowData,&nbsp;$rowNum,&nbsp;$isNewProduct);&nbsp; } }</pre><p>步骤3: 最后刷新缓存并使用product_type列内的CSV文件中的自定义产品类型开始导入过程。</p><p>通过实施上述代码步骤,您将在Magento 2商店中成功导入自定义产品。</p><p>结语:</p><p>我希望上述解决方案可以帮助您解决在Magento 2商店中导入自定义产品的问题。</p><p><br/></p>

如何在Magento 2中以编程方式清除特定CMS页面的缓存

<h5 style="color:red;">系统学习magento二次开发,推荐小册:<a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank">《Magento中文全栈二次开发 》</a></h5> <div class="image-container"> <p> <a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank"> <img src="https://www.maxiaoke.com/uploads/images/20230218/bb9c82995c24d1105676e02f373755f5.jpg" alt="Magento中文全栈二次开发"> </a> </p> </div> <div class="text-container" style="font-size:14px; color:#888"> <p>本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。</p> </div> <hr><p>介绍:</p><p>基本上,Magento在工作时会使用大量内存,并且需要在一天内多次刷新内存。很多时候,Magento开发人员需要刷新特定cms页面的缓存,因为cms页面上的更改或从cms页面调用另一个phtml文件或此phtml文件中的更改。因此,紧接着您需要刷新缓存,对于该刷新,整个站点缓存是不合适的,因为它会导致站点停机。因此,请练习仅刷新特定的cms页面,并且刷新不会影响整个站点。</p><p>刷新缓存的步骤:</p><p>为此,我们必须创建一个PHP脚本,您需要将其放在已安装的Magento文件夹中的根目录上,然后可以直接在Web浏览器上运行。</p><pre class="brush:bash;toolbar:false">&lt;?php use&nbsp;Magento\Framework\AppInterface; &nbsp; try&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;require&nbsp;__DIR__&nbsp;.&nbsp;&#39;/app/bootstrap.php&#39;; &nbsp; }&nbsp;catch&nbsp;(\Exception&nbsp;$e)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;&#39;Autoload&nbsp;error:&nbsp;&#39;&nbsp;.&nbsp;$e-&gt;getMessage(); &nbsp;&nbsp;&nbsp;&nbsp;exit(1); } &nbsp; try&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;$bootstrap&nbsp;=&nbsp;\Magento\Framework\App\Bootstrap::create(BP,&nbsp;$_SERVER); &nbsp;&nbsp;&nbsp;&nbsp;$objectManager&nbsp;=&nbsp;$bootstrap-&gt;getObjectManager(); &nbsp;&nbsp;&nbsp;&nbsp;$objectManager-&gt;get(&#39;Magento\Framework\App\State&#39;)-&gt;setAreaCode(&#39;frontend&#39;); &nbsp;&nbsp;&nbsp;&nbsp;$fullPageCache&nbsp;=&nbsp;$objectManager-&gt;get(\Magento\PageCache\Model\Cache\Type::class); &nbsp;&nbsp;&nbsp;&nbsp;$fullPageCache-&gt;clean(\Zend_Cache::CLEANING_MODE_MATCHING_ANY_TAG,&nbsp;array(&#39;cms_p_2&#39;));&nbsp;//&nbsp;Here&nbsp;2&nbsp;is&nbsp;a&nbsp;cms&nbsp;page&nbsp;id&nbsp;here&nbsp;you&nbsp;can&nbsp;pass&nbsp;any&nbsp;cms&nbsp;page&nbsp;id } catch(\Exception&nbsp;$e){ &nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;&quot;Error&nbsp;:&quot;; &nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;$e-&gt;getMessage(); }</pre><p>因此,通过应用上述内容,您将能够成功刷新特定的CMS页面。</p><p>结语:</p><p>我希望上述刷新特定CMS页面的解决方案对您有所帮助。</p><p><br/></p>

在Magento 2中以编程方式将产品添加到购物车时应用优惠券代码

<h5 style="color:red;">系统学习magento二次开发,推荐小册:<a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank">《Magento中文全栈二次开发 》</a></h5> <div class="image-container"> <p> <a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank"> <img src="https://www.maxiaoke.com/uploads/images/20230218/bb9c82995c24d1105676e02f373755f5.jpg" alt="Magento中文全栈二次开发"> </a> </p> </div> <div class="text-container" style="font-size:14px; color:#888"> <p>本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。</p> </div> <hr><p>介绍:</p><p>如今,每个人都在为他们想要的任何产品找到合理的价格。因此,产品折扣在这里起着重要作用。您提供的折扣和优惠越多,您将获得的销售额就越多。因此,以下是我们如何在您的电子商务网站中提供和应用折扣。通常,当客户将产品添加到购物车时,我们会为客户提供一些折扣,但是如果在以编程方式将产品添加到购物车时需要应用该内容怎么办。所以,这是你如何实现这一目标的方法。</p><p>假设对于例如:我有一个ID为“1”的产品,并希望在 以编程方式将该产品应用于购物车时应用“HAPPY CODING”优惠券代码。</p><pre class="brush:bash;toolbar:false">namespace&nbsp;Vendor\Extension\Controller\Index; &nbsp; class&nbsp;Addtocart&nbsp;extends&nbsp;\Magento\Framework\App\Action\Action { &nbsp;protected&nbsp;$productrepository; &nbsp;protected&nbsp;$cart; &nbsp;protected&nbsp;$formKey; &nbsp; &nbsp;public&nbsp;function&nbsp;__construct( &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\Magento\Framework\App\Action\Context&nbsp;$context, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\Magento\Catalog\Api\ProductRepositoryInterface&nbsp;$productrepository, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\Magento\Checkout\Model\Cart&nbsp;$cart, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\Magento\Framework\Data\Form\FormKey&nbsp;$formKey &nbsp;) &nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;cart&nbsp;=&nbsp;$cart; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;productrepository&nbsp;=&nbsp;$productrepository; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;formKey&nbsp;=&nbsp;$formKey; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parent::__construct($context); &nbsp;} &nbsp; &nbsp;public&nbsp;function&nbsp;execute() &nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$productId&nbsp;=&nbsp;1; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$qty&nbsp;=&nbsp;4; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$coupancode&nbsp;=&nbsp;&quot;HAPPYCODING&quot;; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$product&nbsp;=&nbsp;$this-&gt;productrepository-&gt;getById($productId); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$formKey&nbsp;=&nbsp;$this-&gt;formKey-&gt;getFormKey(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$paramater&nbsp;=&nbsp;array( &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;product&#39;&nbsp;=&gt;&nbsp;$productId, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;qty&#39;&nbsp;=&gt;&nbsp;$qty, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;form_key&#39;&nbsp;=&gt;&nbsp;$formKey, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;cart-&gt;addProduct($product,&nbsp;$paramater); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;cart-&gt;getQuote()-&gt;setCouponCode($coupancode); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;cart-&gt;save(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(\Exception&nbsp;$e)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;__($e-&gt;getMessage()); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;} }</pre><p>结语</p><p>假设您现在配备了应用优惠券代码,同时务实地将产品添加到Magento 2中的购物车。借助这些代码,您可以直接成功添加折扣,同时以编程方式将产品添加到购物车。因此,使用上面的代码,我们可以轻松应用优惠券代码。您可以根据获取数据的要求自由尝试和自定义这些代码。</p><p><br/></p>

Magento性能优化:您需要知道的所有内容(包括如何改进)

<h5 style="color:red;">系统学习magento二次开发,推荐小册:<a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank">《Magento中文全栈二次开发 》</a></h5> <div class="image-container"> <p> <a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank"> <img src="https://www.maxiaoke.com/uploads/images/20230218/bb9c82995c24d1105676e02f373755f5.jpg" alt="Magento中文全栈二次开发"> </a> </p> </div> <div class="text-container" style="font-size:14px; color:#888"> <p>本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。</p> </div> <hr><p>介绍:</p><p>Magento 是一个开源解决方案,可帮助您的电子商务获得各种好处和自定义。但是,加载网页稍多一秒可能会降低您的转化率并带走您的访问者。</p><p>因此,审查您的性能并实施必要的步骤以正确优化成为一项强制性工作。在此博客中,我们将介绍一些优化和提高Magento性能的精彩技巧!</p><p><span style="color: #6a9955;">### 找到您的服务器:</span></p><p>利用负载平衡方法接近客户的连接,并减少下载内容和建立连接的时间。您还可以使用内容分发网络来提升 DNS 查找。</p><p><span style="color: #6a9955;">### 到第一个字节的时间</span></p><p>TTFB 分析响应对服务器的初始查询所花费的时间。可以在此处应用整页缓存,以优化进程之间的时间并帮助快速响应。</p><p><span style="color: #6a9955;">### 图像优化</span></p><p>图像优化器可以帮助优化jpg,png,gif类型文件,并通过正确压缩图像来减小网页大小。图像加载速度也可以提高。</p><p><span style="color: #6a9955;">### 请求优化</span></p><p>必须减少网页上的请求数。为此,合并CSS和JS文件,删除不必要的资源,使用Expires标头并将图像转换为精灵。</p><p><span style="color: #6a9955;">### 提升下载量</span></p><p>要加快网页的下载速度,请确保已启用 HTTP 压缩。其他需要勾选的领域是图像优化,CDN,JSS-CS-HTML内容和Javascript。</p><p><span style="color: #6a9955;">### CPU 和内存使用情况</span></p><p>必须通过跟踪过去 30 天内 Web 服务器的 CPU 和内存使用情况来监视性能。通过这种方式,还可以获得系统交易和顶级网站列表。</p><p><span style="color: #6a9955;">### 兼容性增强</span></p><p>与您的 Web 主题和第三方扩展相关的所有挑战都需要修复,以提高网页的整体性能。解决这些挑战仅意味着提高主题和第三方扩展的兼容性。</p><p><span style="color: #6a9955;">### 清漆缓存</span></p><p>清漆缓存用作最新的多处理器系统中使用的反向代理服务器缓存和 HTTP 加速器应用程序。它可以优化内容,减少加载时间,即兴响应时间,以及减少将来对CPU的负载。</p><p>结论</p><p>为了获得更高的市场份额并提高您的电子商务销售额,您绝对需要牢记上述几点。您的客户在浏览您的网站时可能会遇到问题,解决此问题非常重要。</p><p>通过使用自己的扩展和功能找到Magento商店的完美优化,您将处于吸引观众的最佳状态。</p><p><br/></p>

如何在Magento 2中所有页面的前端添加JS文件

<h5 style="color:red;">系统学习magento二次开发,推荐小册:<a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank">《Magento中文全栈二次开发 》</a></h5> <div class="image-container"> <p> <a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank"> <img src="https://www.maxiaoke.com/uploads/images/20230218/bb9c82995c24d1105676e02f373755f5.jpg" alt="Magento中文全栈二次开发"> </a> </p> </div> <div class="text-container" style="font-size:14px; color:#888"> <p>本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。</p> </div> <hr><p>在Magento 2中所有页面的前端添加JS文件的步骤:</p><p>第 1 步:首先,您需要创建默认值.xml在app\code\[Vendor]\[Module]\view\frontend\layout\default.xml</p><pre class="brush:bash;toolbar:false">&lt;?xml&nbsp;version=&quot;1.0&quot;?&gt; &nbsp; &lt;page&nbsp;xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&nbsp;xsi:noNamespaceSchemaLocation=&quot;urn:magento:framework:View/Layout/etc/page_configuration.xsd&quot;&gt; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&lt;head&gt; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&lt;link&nbsp;src=&quot;[Vendor]_[Module]::js/js_fileName.js&quot;/&gt; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&lt;/head&gt; &nbsp; &lt;/page&gt;</pre><p>第 2 步:现在,在app\code\[Vendor]\[Module]\view\frontend\web\js\js_fileName.js创建JS文件</p><p>第 3 步:实现安装程序升级命令和设置:静态内容:部署命令,用于为Magento 2商店的所有页面实现JS文件</p><p><br/></p>

如何在Magento 2中以编程方式删除产品属性

<h5 style="color:red;">系统学习magento二次开发,推荐小册:<a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank">《Magento中文全栈二次开发 》</a></h5> <div class="image-container"> <p> <a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank"> <img src="https://www.maxiaoke.com/uploads/images/20230218/bb9c82995c24d1105676e02f373755f5.jpg" alt="Magento中文全栈二次开发"> </a> </p> </div> <div class="text-container" style="font-size:14px; color:#888"> <p>本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。</p> </div> <hr><p>在Magento 2中以编程方式删除产品属性的步骤:</p><p>第 1 步:在以下路径创建 InstallData.php 并粘贴以下代码。</p><p>app\code\Vendor\Extension\Setup\InstallData.php</p><pre class="brush:bash;toolbar:false">&lt;?php &nbsp;namespace&nbsp;Vendor\Extension\Setup; &nbsp; &nbsp;use&nbsp;Magento\Eav\Setup\EavSetup; &nbsp;use&nbsp;Magento\Eav\Setup\EavSetupFactory; &nbsp;use&nbsp;Magento\Framework\Setup\InstallDataInterface; &nbsp;use&nbsp;Magento\Framework\Setup\ModuleContextInterface; &nbsp;use&nbsp;Magento\Framework\Setup\ModuleDataSetupInterface; &nbsp; class&nbsp;InstallData&nbsp;implements&nbsp;InstallDataInterface &nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;$eavSetupFactory; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;__construct(EavSetupFactory&nbsp;$eavSetupFactory) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;eavSetupFactory&nbsp;=&nbsp;$eavSetupFactory; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;install(ModuleDataSetupInterface&nbsp;$setup,&nbsp;ModuleContextInterface&nbsp;$context) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$eavSetup&nbsp;=&nbsp;$this-&gt;eavSetupFactory-&gt;create([&#39;setup&#39;&nbsp;=&gt;&nbsp;$setup]); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$eavSetup-&gt;removeAttribute(\Magento\Catalog\Model\Product::ENTITY, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;custom_attribute_id&#39;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;}</pre><p>步骤 2:刷新缓存并部署静态内容命令。</p><pre class="brush:bash;toolbar:false">php&nbsp;bin/magento&nbsp;cache:flush php&nbsp;bin/magento&nbsp;setup:upgrade php&nbsp;bin/magento&nbsp;setup:static-content:deploy&nbsp;-f</pre><p>就是这样,您将能够在Magento 2中以编程方式快速删除产品属性。</p><p>结语:</p><p>希望所有人都能够解决在Magento 2中以编程方式删除产品属性引起的问题。</p><p><br/></p>

如何在Magento 2中按类别ID获取产品集合

<h5 style="color:red;">系统学习magento二次开发,推荐小册:<a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank">《Magento中文全栈二次开发 》</a></h5> <div class="image-container"> <p> <a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank"> <img src="https://www.maxiaoke.com/uploads/images/20230218/bb9c82995c24d1105676e02f373755f5.jpg" alt="Magento中文全栈二次开发"> </a> </p> </div> <div class="text-container" style="font-size:14px; color:#888"> <p>本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。</p> </div> <hr><p>在Magento 2中按类别ID获取产品集合的步骤:</p><p>方法 1:使用类</p><p>在我们的自定义扩展</p><p>上创建一个块文件,在以下路径中添加块名.php</p><p>app\code\Vendor\Extension\Block\Blockname.php</p><p>现在添加以下代码</p><pre class="brush:bash;toolbar:false">&lt;?php namespace&nbsp;Vendor\Extension\Block; &nbsp; use&nbsp;Magento\Framework\View\Element\Template; &nbsp; class&nbsp;Blockname&nbsp;extends&nbsp;Template { &nbsp; &nbsp;protected&nbsp;$categoryFactory; &nbsp; &nbsp;public&nbsp;function&nbsp;__construct( &nbsp;\Magento\Backend\Block\Template\Context&nbsp;$context, &nbsp;\Magento\Catalog\Model\CategoryFactory &nbsp; &nbsp;) &nbsp;{ &nbsp;$this-&gt;categoryFactory&nbsp;=&nbsp;$CategoryFactory; &nbsp;parent::__construct($context); &nbsp;} &nbsp; &nbsp;public&nbsp;function&nbsp;getProductCollectionFromCategory($categoryId)&nbsp;{ &nbsp;$category&nbsp;=&nbsp;$this-&gt;categoryFactory-&gt;create()-&gt;load($categoryId); &nbsp;return&nbsp;$category-&gt;getProductCollection()-&gt;addAttributeToSelect(&#39;*&#39;); &nbsp; &nbsp;} }</pre><p>在此之后,您需要 phtml 文件并将以下代码添加到文件中:</p><pre class="brush:bash;toolbar:false">$block-&gt;getProductCollectionFromCategory(4);&nbsp;//&nbsp;YOUR&nbsp;CATEGORY&nbsp;ID &nbsp; foreach&nbsp;($categoryProducts&nbsp;as&nbsp;$product)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;get&nbsp;Product&nbsp;data &nbsp;&nbsp;&nbsp;&nbsp;print_r($product-&gt;getData()); &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;$product-&gt;getName(); }</pre><p>方法 2:使用对象管理器</p><pre class="brush:bash;toolbar:false">$objectManager&nbsp;=&nbsp;&nbsp;\Magento\Framework\App\ObjectManager::getInstance(); $categorysFactory&nbsp;=&nbsp;$objectManager-&gt;get(&#39;\Magento\Catalog\Model\CategoryFactory&#39;); &nbsp; $categoryId&nbsp;=&nbsp;4;&nbsp;//&nbsp;YOUR&nbsp;CATEGORY&nbsp;ID $category&nbsp;=&nbsp;$categorysFactory-&gt;create()-&gt;load($categoryId); &nbsp; $categoryProducts&nbsp;=&nbsp;$category-&gt;getProductCollection() &nbsp;&nbsp;&nbsp;&nbsp;-&gt;addAttributeToSelect(&#39;*&#39;); &nbsp; foreach&nbsp;($categoryProducts&nbsp;as&nbsp;$product)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;get&nbsp;Product&nbsp;data &nbsp;&nbsp;&nbsp;&nbsp;print_r($product-&gt;getData()); &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;$product-&gt;getName(); }</pre><p>注意:使用ObjectManager进行Magento开发不被我们和Magento推荐。这只是为了内识目的。</p><p>小结:</p><p>因此,在实施上述步骤后,您将能够轻松地在Magento 2中按类别ID获取产品集合。</p><p><br/></p>

如何在Magento 2中将参数传递给URL

<h5 style="color:red;">系统学习magento二次开发,推荐小册:<a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank">《Magento中文全栈二次开发 》</a></h5> <div class="image-container"> <p> <a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank"> <img src="https://www.maxiaoke.com/uploads/images/20230218/bb9c82995c24d1105676e02f373755f5.jpg" alt="Magento中文全栈二次开发"> </a> </p> </div> <div class="text-container" style="font-size:14px; color:#888"> <p>本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。</p> </div> <hr><p>如何在Magento 2中将参数传递给URL的步骤:</p><p>应用下面给定的方法通过任何特定产品的 URL 传递参数。</p><pre class="brush:bash;toolbar:false">&lt;?php namespace&nbsp;Vendor\Extension\Helper; &nbsp; &nbsp; class&nbsp;Data&nbsp;extends&nbsp;AbstractHelper { &nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;$urlBuilder; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;__construct( &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\Magento\Framework\App\Helper\Context&nbsp;$context, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\Magento\Framework\UrlInterface&nbsp;$urlBuilder &nbsp;&nbsp;&nbsp;&nbsp;) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;urlBuilder&nbsp;=&nbsp;$urlBuilder; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parent::__construct($context); &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;GetParamsUrl() &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$queryParams&nbsp;=&nbsp;[ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;param_1&#39;&nbsp;=&gt;&nbsp;value1,&nbsp;//&nbsp;value&nbsp;for&nbsp;parameter &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;param_2&#39;&nbsp;=&gt;&nbsp;value2 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$this-&gt;urlBuilder-&gt;getUrl(&#39;route/controller/action&#39;,&nbsp;[&#39;_current&#39;&nbsp;=&gt;&nbsp;true,&#39;_use_rewrite&#39;&nbsp;=&gt;&nbsp;true,&nbsp;&#39;_query&#39;&nbsp;=&gt;&nbsp;$queryParams]); &nbsp;&nbsp;&nbsp;&nbsp;} }</pre><p>重要说明:对于 phtml 文件,请使用:</p><p>$block-&gt;getUrl(<span style="color: #ce9178;">&#39;route/controller/action&#39;</span>,[<span style="color: #ce9178;">&#39;param&#39;</span>=&gt;<span style="color: #ce9178;">&#39;value&#39;</span>])</p><p>结论:</p><p>因此,在实施上述步骤后,您可以轻松地将参数传递给Magento 2中的URL,并提高您的业务增长和客户体验。</p><p><br/></p>