文章列表


Magento SEO 优化清单

<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>但是,还有许多其他因素会影响Magento SEO。在上一篇文章中,我们将客户体验作为最佳网站索引的最关键驱动因素。</p><p>使用您网站的客户越多,您获得的排名就越好。因此,在讨论搜索引擎优化时,性能远非您唯一考虑的因素。</p><p>为了优化Magento SEO,您需要注意许多技术方面。本文提供了一个 Magento SEO清单 您可以执行的任务,这将使搜索引擎机器人喜欢您的网站。</p><p>目录</p><p>规范链接</p><p>尾随斜杠重定向</p><p>域重定向</p><p>页面标题和元标记</p><p>软 404 页</p><p>站点地图和机器人.txt存在并正确配置</p><p>机器人元标记</p><p>适合移动设备的主页</p><p>二次优化</p><p>总结</p><p>规范链接</p><p>规范链接存在于每个网页的源代码中,并指向内容的原始 URL。听起来很复杂?让我们详细说明一下。换句话说,您可以让不同的 URL 指向单个页面。</p><p>例如,可以通过两个单独的 URL 访问同一产品详细信息页面,一个在路径中具有类别,另一个没有:</p><p>https://mywebsite/product 和 https://mywebsite/category/product。</p><p>在这种情况下,搜索引擎可能会因为内容重复而受到处罚。在此示例中,由于网页相同时网址不同,因此您需要确保两个网页具有相同的规范链接(在本例中为 https://mywebsite/product,指向原始网页)。</p><p>这是另一个示例:</p><p>https://mywebsite/product 和 https://mywebsite/product?<span style="color: #569cd6;">utm</span>=XXX</p><p>这些是可能指向同一网页的不同网址,因为在这种情况下,规范链接的相同规则适用。</p><p>有关规范链接如何工作以及如何在Magento中正确配置它们的更多详细信息,请参阅Adobe官方文档。</p><p>发现Atwix</p><p>Magento SEO审计</p><p>由Atwix认证的专业人员设计,我们的技术Magento SEO审计提供解决方案和优化,以改善您的商务搜索外观。</p><p>了解更多信息</p><p>CTA 横幅图像深色</p><p>尾随斜杠重定向</p><p>根据搜索引擎的说法,https://mywebsite/product 和 https://mywebsite/product/是不同的URL,因此上述对重复内容的处罚也适用于此处,除非您确保配置从 https://mywebsite/product/到 https://mywebsite/product 的重定向(反之亦然),而不是为两个URL显示相同的页面。</p><p>域重定向</p><p>当不同的域指向同一页面时,会出现另一个常见问题。</p><p>例如,https://mywebsite/product 和 https://www.mywebsite/product 具有相同的最终目标,这是重复内容的另一种情况。因此,您需要管理从一个域到另一个域的重定向,类似于前面的示例。</p><p>页面标题和元标记</p><p>搜索引擎检查您网站上的两个主要项目是页面标题和元标题。元标题是对页面上内容的简短描述 页面标题实体是不言自明的。</p><p>当您在 Google 中执行搜索时,您会在搜索结果中看到返回的每个网页的标题和元描述。</p><p>magento seo checklist, page title and meta tags.</p><p>虽然保持标题和元描述简单很重要,但重要的是您网站的每个页面都有它们。.强烈建议确保每个标题和元描述对于您网站的每个页面都是唯一的。</p><p>要在Magento中编辑标题和元描述,您可以将内置的Magento功能用于CMS页面,类别,产品等,您可以在管理面板的实体编辑表单上找到相应的字段。</p><p>软 404 页</p><p>一些网站不是针对未找到的页面提供 404 消息,而是提供带有自定义消息甚至包含搜索结果的常规页面。</p><p>这些SEO从业者有效地试图隐藏404页面未找到。但是,这种类型的内容并不受到搜索引擎的高度重视。事实上,恰恰相反。</p><p>谷歌和其他搜索引擎利用复杂的算法来识别这种SEO“技巧”。因此,您永远不应该尝试隐藏 404 链接。相反,如果页面有机地不再可用,则必须返回 404 状态。</p><p>站点地图和机器人.txt存在并正确配置</p><p>您的站点地图是您希望搜索引擎编入索引的所有网站页面的列表。请参阅官方文档以使用Magento的内置功能生成站点地图。</p><p>robots.txt 文件可通过您网站的 https://mywebsite/ robots.txt URL 访问,其中包含一组搜索引擎规则,用于描述应从索引中包含或排除哪些页面。</p><p>在这些规则中记录不正确可能会禁用整个网站的索引。因此,您应确保在文件中配置了正确的规则集(以及站点地图的路径)。有关Magento中机器人的更多信息.txt可以从官方文档中检索。</p><p>机器人元标记</p><p>“robots”元标记是页面源代码的一部分,它告诉搜索引擎哪些页面应该可编入索引,哪些页面应该从索引中排除。此标记有几个可能的值。</p><p>NOINDEX,NOFOLLOW – 不要索引页面,不要关注页面上的链接(不允许搜索机器人进一步浏览此页面上找到的链接)</p><p>NOINDEX, FOLLOW – 不要索引页面,而是关注页面上的链接</p><p>索引,NOFOLLOW–索引页面的内容,但不关注链接</p><p>索引,关注(最常见) - 索引页面并跟踪链接</p><p>请务必注意,如果您未为网页指定“漫游器”元标记,它将自动标记为 INDEX, FOLLOW。</p><p>那么,为什么你需要一个“机器人”标签呢?</p><p>例如,从搜索索引中排除登录、结帐、购物车和其他非内容页面始终是一种很好的做法,因为通常在搜索结果中显示它们通常没有好处。例如,NOINDEX,FOLLOW是购物车页面的理想配置。</p><p>您还可以使用上面提到的robots.txt文件排除页面。如果是这样,则 robots.txt 文件中的规则具有优先级。例如,如果某个网页被排除在 robots.txt 中,则“robots”元标记中的记录将不起作用(即,它会被忽略)。</p><p>适合移动设备的主页</p><p>如今,谷歌和其他搜索引擎在对您的网站进行排名时首先考虑移动客户体验,而不是桌面体验。因此,确保页面不会因移动分辨率而损坏至关重要。</p><p>二次优化</p><p>有几个建议不太重要或具有与内容相关的性质。这里也值得一提。</p><p>如果您的分类页面可编入索引,请确保它们不仅包含产品列表,还包含描述该分类的其他文本内容。</p><p>如果您网站上的搜索结果页面可编入索引,这可能不是最佳解决方案(但也有例外)。</p><p>尝试每页仅使用一个 H1 标记。并保持 H 标签的层次结构不变(例如,H1 &gt; H2 &gt; H3 ...</p><p>避免使用低文本比例的页面。有一些工具可以检查 HTML 与文本的比率。或者更简单地说,如果页面可由搜索引擎索引,则避免使用只有几句话的页面。</p><p>定期使用SEO工具(包括Google PageSpeed Insights和Google搜索控制台)检查您的网站,以及时发现和解决问题。</p><p>使用其他丰富网页摘要。丰富网页摘要是搜索引擎可识别的元数据。搜索引擎可能会通过读取元数据在搜索结果页面上显示其他信息。常见示例包括评级、价格、产品可用性等。Magento提供了许多开箱即用的丰富网页摘要,您还可以使用第三方扩展来扩展数据。请随时查看我们的丰富网页摘要扩展,该扩展程序为您的网站添加了其他元数据,同时改善了搜索结果的外观。</p><p>总结</p><p>所以,你有它 - 我们影响您网站SEO的最关键组件的候选名单。</p><p>清单简单但功能强大。虽然它不会涵盖所有技术细节(这需要一本书而不是一篇文章),但我们希望它能帮助您更好地了解Magento技术SEO。</p><p><br/></p>

最受欢迎的Magento 2 SEO扩展和插件

<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商店,则很可能希望店面具有尽可能多的相关流量。而自然SEO流量是此类流量来源的金矿之一。在我们之前的文章中,我们列出了一些Magento ERP扩展。在这篇文章中,我们收集了最受欢迎的Magento 2 SEO插件和扩展。</p><p>最佳Magento SEO扩展(免费和付费)</p><p>1. 马格广场马真托 2 SEO 扩展</p><p>2. BSS商务Magento 2 SEO扩展</p><p>3. 马格凡的马真托 2 SEO 套件终极扩展</p><p>4. 重新加载SEO SEO内容优化</p><p>5. 阿特维克斯大师 2 丰富片段</p><p>6. Amasty 的 SEO 工具包</p><p>7. 米拉斯维特的 Magento 2 SEO 扩展</p><p>使用Magento SEO扩展的好处</p><p>帮助访客找到您的商店</p><p>高性价比</p><p>效果持久</p><p>结论</p><p>我不会为免费和付费的Magento扩展制作单独的列表,而是将它们合并在这里,因为无论如何大多数都提供这两个版本。以下是我的首选:</p><p>1. 马格广场马真托 2 SEO 扩展</p><p>Mageplaza的Magento 2 SEO插件是最受欢迎的选择之一,如果您需要为您的在线商店提供可靠且经济的解决方案。它包括 SEO 功能,如规范链接元标记、结构化数据、URL 重写、站点地图集成、规范网址、图像优化和 SEO 清单。这些功能将帮助您的商店在搜索引擎结果页面 (SERP) 上排名更高,并处于最高位置,从而吸引更多高质量的访问者。</p><p>2. BSS商务Magento 2 SEO扩展</p><p>BSS Commerce Magento 2 SEO Extension是SEO困境的一站式商店。这个 SEO 插件通过在 SERP 中显示各种产品片段以及价格、评级、评论和可用性等数据来吸引访问者的兴趣。此外,可以轻松生成包含商品、类别、CMS 页面和更多链接的 HTML/XML 站点地图。</p><p>发现Atwix</p><p>Magento SEO审计</p><p>由Atwix认证的专业人员设计,我们的技术Magento SEO审计提供解决方案和优化,以改善您的商务搜索外观。</p><p>了解更多信息</p><p>CTA 横幅图像深色</p><p>3. 马格凡的马真托 2 SEO 套件终极扩展</p><p>Magefan的SEO套件终极版是针对不同SEO方面的五个插件的集合。</p><p>通常,您将能够为元标题、描述和关键字构建 SEO 模板,为各种网站页面启用规范标签,简化重定向,调整 OG 标签,制作响应式 HTML 站点地图,并生成多个产品丰富网页摘要。</p><p>此插件可改善用户体验并为您的业务带来大量有针对性的流量,但它也可以帮助您在搜索中脱颖而出。</p><p>4. 重新加载SEO SEO内容优化</p><p>ReloadSEO Magento SEO插件是一个独一无二的Magento SEO扩展,使优化内容变得轻而易举。</p><p>该扩展的算法为您的类别和产品页面的 SEO 优化提供近乎实时的反馈。产品索引视图中的分数允许您根据优化产品的效率对产品进行排序。这个Magento SEO优化插件提高了转化率和AdWords质量评级,同时优化了您的Magento商店页面。</p><p>5. 阿特维克斯大师 2 丰富片段</p><p>丰富网页摘要可帮助搜索引擎更好地理解搜索结果的上下文。安装丰富网页摘要后,搜索引擎能够显示有关实际结果的更多信息,包括此特定结果是否是评论、人员、产品、企业等。如果其他搜索结果没有任何摘要,这会极大地影响点击率。</p><p>6. Amasty 的 SEO 工具包</p><p>Amasty以生产一些最显着的Magento扩展而闻名,这次也不例外。使用Amasty的SEO工具箱,改善您的SEO从未如此简单。这是一个具有高级功能的多合一解决方案,可帮助您的网站获得更好的排名并吸引更多访问者。提供一键式 SEO 分析、丰富网页摘要、分页、重定向和更复杂的功能。</p><p>7. 米拉斯维特的 Magento 2 SEO 扩展</p><p>使用高级SEO套件,您可以节省大量时间并在SEO上工作,同时仍然位于搜索结果的顶部。 Mirasvit的Magento 2插件是一个强大的SEO工具。从元标记到站点地图,您将完全控制在线业务的每个与SEO相关的组件。它还具有可帮助您在客户中脱颖而出的元素,例如丰富网页摘要、痕迹导航和直接显示在搜索结果中的商家信息。</p><p>使用Magento SEO扩展的好处</p><p>拥有没有SEO优化的Magento商店就像对额外的收入来源说“不”。以下是您可以从使用Magento 2 SEO扩展和插件中获得的好处:</p><p>帮助访客找到您的商店</p><p>自然搜索是最有价值的收入来源之一。谷歌通过提供有针对性的访问者将很大一部分流量引导到企业。如果这对你的公司没有发生,你就错过了一些东西。</p><p>高性价比</p><p>在竞争激烈的行业中,付费流量的一次点击可能会花费数十甚至数百美元。有效的Magento SEO策略减少了您对付费流量的依赖。当然,您仍然可以购买广告并执行赞助活动,但忽视获得自然搜索流量的好处是不明智的。</p><p>效果持久</p><p>如果您使用行业标准的SEO策略,效果将持续更长时间并更加成功。由于SEO需要持续的分析方法,因此需要时间来获得动力。</p><p>结论</p><p>Magento 2商店有很多SEO扩展和插件可用。它们可以解决大多数SEO问题,并通过单击几下(如果由专业人员完成)大大减少您的手动工作。那么,您如何定义选择哪个呢?最好查看产品附带的功能、支持的条款和退款保证期。还建议阅读其他人的评论,以发现该扩展程序是否是您正在寻找的扩展程序。</p><p><br/></p>

在Magento/Adobe Commerce中启用维护模式的4种方法

<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商店进行维护”博客文章中,我们描述了如何关闭商店进行维护以及我们对Magento 1中的维护模式有哪些限制。幸运的是,反之亦然,时间过得很快,事情也在变化。Magento应用程序也会发生变化,并更加敏捷地满足业务需求。</p><p>今天我们已经有了Magento 2,并想讨论Magento开源和Adobe Commerce为网站所有者(商家)提供的有关维护模式功能的机会。此外,我们将概述它们的优缺点以及每种解决方案的适用案例。所以,让我们开始吧。</p><p>Magento的维护模式是什么?</p><p>首先,让我们澄清维护模式的经典定义。维护模式是Magento应用程序中的一种特殊模式,当软件暂时脱机进行维护时使用。就电子商务平台而言,通知客户和搜索引擎爬虫网站将尽快可用是一个重要的通知。</p><p>Magento维护模式如何工作?</p><p>在Magento中,维护模式执行以下操作:</p><p>阻止访客在店面上的活动。访问者将看到一个“服务不可用”页面,并且无法浏览网站页面。</p><p>停止Magento由CRON运行的系统进程。</p><p>返回 503 服务器错误响应代码 - 换句话说,您的网站当前已关闭。搜索引擎读取有关停机时间的503响应,并且不会更改现有网站SEO。</p><p>听起来很有趣?让我们继续。</p><p>在Magento中启用维护模式的4种方法?</p><p>1.通过Magento 2电子商务平台中提供的本机工具</p><p>请记住,这是启用维护模式的最常用方法,需要满足以下条件:</p><p>安装Magento 2电子商务平台</p><p>Magento 2应该在“生产”模式下运行。</p><p>启用维护模式过程包括以下步骤:</p><p>允许从特定 IP 地址访问网站:</p><p>bin/magento maintenance:allow-ips &lt;IP 地址&gt; .. &lt;IP 地址&gt; [--无]</p><p>启用维护模式</p><p>bin/magento 维护:启用</p><p>停止Magento cron。更新 app/etc/env.php 并添加以下行以停止 cron 作业:</p><p><span style="color: #ce9178;">&#39;cron&#39;</span> =&gt;array (</p><p>&nbsp; &nbsp; “enable” =&gt; 0</p><p>),</p><p>停止Magento Crons以在Magento上启用维护模式</p><p>通过运行以下命令刷新配置缓存:</p><p>bin/magento cache:clean config</p><p>使用以下命令解锁和终止任何现有的 cron 任务(仅适用于 Adobe Commerce):</p><p>PHP vendor/bin/ece-tools cron:kill</p><p>PHP vendor/bin/ece-tools cron:unlock</p><p>要禁用维护模式,您需要:</p><p>通过app/etc/env.php中的更改启用Magento CRONs:</p><p><span style="color: #ce9178;">&#39;cron&#39;</span> =&gt;数组 (</p><p>&nbsp; &nbsp; “已启用” =&gt; 1</p><p>),</p><p>刷新配置缓存</p><p>bin/magento cache:clean config</p><p>禁用维护模式</p><p>bin/magento 维护:禁用</p><p>通过Magento 2框架使用维护的功能:</p><p>应安装Magento 2电子商务平台<span style="color: #6a9955;">;</span></p><p>Magento 2以“生产”模式运行<span style="color: #6a9955;">;</span></p><p>在 &lt;Magento_root_folder&gt;/var/.maintenance.ip 中定义的以逗号分隔的 IP 地址白名单<span style="color: #6a9955;">;</span></p><p>创建&lt;Magento_root_folder&gt;/var/.maintenance.flag(表示Magento处于维护模式)<span style="color: #6a9955;">;</span></p><p>bin/magento maintenance:enable CLI 命令不会影响 Magento CRON 作业,因此应另外停止它们。</p><p>在多商店Magento 2设置的情况下,我们可能会为不同的网站/商店使用皮肤。</p><p>但是,还有其他工具也可以帮助商家为网站启用维护模式:</p><p>内容分发网络 (CDN)</p><p>网页服务器</p><p>Magento 2网站限制功能(仅适用于Adobe Commerce))</p><p>2. 通过 CDN</p><p>每个流行的 CDN 都包含一个访问限制功能,可以阻止访问者和搜索引擎爬虫访问一个或多个网站(在多商店的情况下)。尽管如此,该软件不会通过bin/magento维护:启用CLI命令切换到维护模式。</p><p>当您需要测试某些网站功能但不想允许所有潜在访问者访问它时,可以使用 CDN 阻止。</p><p>通过CDN在Magento上启用维护模式</p><p>若要通过 CDN 启用维护模式,请使用以下后续步骤:</p><p>将 IP 地址添加到不会被阻止的用户。</p><p>指定 503 页面的内容。</p><p>在 CDN 中启用维护模式。</p><p>对于使用托管在云上的 Adobe Commerce 的商家,我们建议使用以下分步指南在 Fastly CDN 中启用维护模式,这是 Adobe 云基础架构的一部分:</p><p>登录到Magento管理员并转到商店&gt;设置&gt;配置&gt;高级&gt;系统&gt;整页缓存&gt;快速配置</p><p>添加可以访问网站的访问者的 IP 地址。</p><p>添加可以访问网站的访问者的 IP 地址 2</p><p>添加可以访问网站的访问者的 IP 地址</p><p>指定 503 页的内容</p><p>指定 503 页的内容</p><p>如果您有 &lt;Magento_root_folder&gt;/var/.maintenance.ip 文件,您可以使用以下命令来节省时间并将所有 IP 地址添加到 Fastly:</p><p>bin/magento fastly:maintenance -u</p><p>启用维护模式</p><p>通过CDN启用维护模式Magento</p><p>或者您可以使用下一个 CLI 命令:</p><p>bin/magento fastly:maintenance -e</p><p>要在Fastly中禁用维护模式,您可以单击Magento管理员中的“启用/禁用”按钮或运行以下CLI命令:</p><p>bin/magento fastly:maintenance -d</p><p>通过 CDN 启用维护模式的缺点是,您不能为“503 服务不可用”页面使用不同的内容(皮肤),因为 CDN 允许在多商店设置的情况下为所有网站指定单个页面内容。</p><p>通过 CDN 使用维护的功能:</p><p>快速返回 503 标头代码。</p><p>Magento本身不处于维护模式。</p><p>商家无法设置/使用特定网站的单独维护页面/消息(在多商店的情况下)</p><p>var/.maintenance.ip 可用于填充 Fastly “maint_allowlist”</p><p>var/.maintenance.flag没有被创建(所以从技术上讲,Magento不处于维护模式)</p><p>3. 通过网络服务器</p><p>这种方法与CDN访问限制非常相似,适用于未安装Magento应用程序或我们需要限制对特定网站的访问的情况<span style="color: #6a9955;">;这是这种方法的主要好处 - 在Magento配置为多商店的情况下,商家可能会限制对特定网站的访问(请参阅下面的架构)。</span></p><p>通过网络服务器启用Magento维护模式</p><p>关于架构,商家可能会阻止访问“网站1”,但所有用户都可以访问“网站2”和“网站N”。</p><p>此外,建议Adobe在Magento应用程序升级期间使用此方法。</p><p>此解决方案的缺点 – 商家需要让托管服务提供商参与以正确配置 Web 服务器。</p><p>通过 Web 服务器使用维护的功能:</p><p>体验Adobe文档建议在Magento升级期间通过Web服务器启用维护模式。</p><p>可以为所有网站或特定网站启用维护模式。</p><p>Magento本身可以切换到维护模式,也可以不切换到维护模式。</p><p>可以将单独的维护页面设置为特定网站(在多商店的情况下)。</p><p>允许的 IP 和维护模式标志在 Web 服务器配置中设置。</p><p>4. 通过Magento 2网站限制</p><p>如上所述,这是Adobe Commerce的独家功能 - “私人销售和活动”。</p><p>当商家想要对特定网站进行一些更新并暂时为访问者关闭它时,可以使用此方法。例如,一个目录包含数千种产品,商家需要立即更新产品价格,同时防止客户购买价格过时的产品。</p><p>通过“私人销售和活动”启用维护模式需要执行以下步骤:</p><p>登录到Magento管理员并转到商店&gt;设置&gt;配置&gt;常规&gt;常规&gt;网站限制</p><p>将“访问限制”选项设置为“是”。</p><p>将“限制模式”选项设置为“网站已关闭”。</p><p>在“着陆页”下拉列表中选择包含“服务不可用”页面内容的所需CMS页面。</p><p>将“HTTP 响应”选项设置为“503 服务不可用”。</p><p>将 HTTP 响应选项设置为 503 服务不可用</p><p>通过“网站限制”功能使用维护的功能:</p><p>The Magento application is installed and is not in maintenance mode.</p><p>CMS页面可以设置为特定网站的维护页面(在多商店的情况下)。</p><p>不需要商家的技术技能。</p><p>维护模式皮肤</p><p>开箱即用的Magento 2提供了可用于“503服务不可用”页面的皮肤。</p><p>从技术上讲,皮肤 - 是pub/errors/文件夹中的文件夹,其中包含CSS,媒体和phtml模板,用于不同类型的错误(503,404等)。皮肤可以通过$GET[<span style="color: #ce9178;">&#39;skin&#39;</span>]变量传递给Magento应用程序。</p><p>皮肤要求:</p><p>皮肤的名称应遵循 /^[a-z0-9_]+$/i 模式。</p><p>具有皮肤名称的文件夹应存在于&lt;Magento_root&gt;/pub/errors/文件夹中。</p><p>最佳Magento实践皮肤名称:</p><p>pub/errors/{name},其中 {name} 是存储代码。</p><p>要区分具有相同实例的商店和网站,请使用 pub/errors/{type}–{name}。其中 {type} 是商店或网站,与服务器配置中的MAGE_RUN_TYPE匹配。</p><p>最佳实践示例:</p><p>发布/错误/商店1</p><p>发布/错误/商店2</p><p>发布/错误/网站商店1</p><p>发布/错误/网站商店2</p><p>皮肤文件夹结构:</p><p>维护模式外观文件夹结构</p><p>默认皮肤可以在&lt;Magento_root&gt;/pub/errors/design.xml或&lt;Magento_root&gt;/pub/errors/local.xml中设置:</p><p>&lt;?xml 版本=“1.0”?&gt;</p><p>&lt;!--</p><p>/**</p><p>* 版权所有 © Magento, Inc.保留所有权利。</p><p>* 有关许可证详细信息,请参阅复制.txt。</p><p>*/</p><p>--&gt;</p><p>&lt;配置&gt;</p><p>&nbsp; &nbsp;&lt;皮肤&gt;默认&lt;/皮肤&gt;</p><p>&lt;/配置&gt;</p><p>Magento应用程序使用以下算法来检测正确的皮肤:</p><p>Magento应用程序使用以下算法来检测适当的皮肤</p><p>结语</p><p>维护模式不会破坏 SEO。</p><p>概述了商家启用或模拟维护模式的最流行方式。这些方法中的每一种都有自己的优点/缺点。</p><p>另外,请记住,Magento CRON 作业在维护模式下工作,如果需要,应停止。</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>作为企业主,选择合适的支付网关至关重要,这样您的Magento商店才能无缝运行。一流的Magento支付网关可以帮助您利用利润。</p><p>许多企业家错误地选择了他们找到的第一个支付网关。但是,在选择适合您的业务的产品时,需要考虑许多因素。</p><p>在这篇博文中,我们将重点介绍您需要在Magento网站的支付网关中寻找的一些要点。</p><p>为Magento寻找支付网关时要考虑什么</p><p>创建商店时,选择与所需流程兼容的Magento 2支付网关至关重要。但是,为您的电子商务网站选择支付网关可能会令人生畏,特别是如果您不熟悉电子商务。有这么多可用的选项,你怎么知道哪个最适合你的网站?</p><p>为了帮助您,以下是您需要注意的一些事项:</p><p>安全</p><p>您网站的安全性是您在选择支付网关时应考虑的最重要的事情之一。大多数支付网关使用128位SSL加密技术来确保所有交易的安全。</p><p>一些支付网关符合支付卡行业 (PCI) 标准,这是一种用于保护卡信息的标准。如果您寻找提供符合PCI标准的技术的支付网关,那将是最好的,因为它具有高度的安全性。</p><p>方便</p><p>最好的支付网关使您的客户从您的商店购买非常方便。支付网关也应该易于与您的电子商务网站集成。</p><p>能力</p><p>您需要一个接受国际信用卡的系统吗?您需要一个网关来允许您使用您的域名吗?你们允许在线检查吗?了解网关的功能及其局限性将帮助您选择适合您业务的网关。</p><p>BNPL, Apple Pay, Google Pay</p><p>允许客户使用“先买后付”等替代支付方式付款的网关不仅对您的商店访问者来说更方便,而且还会影响转化率。</p><p>成本</p><p>商家费用,交易费用,网关费用 - 无处不在的费用!这些费用可能会迅速增加并削减您的利润。因此,您必须找到一个不会对您的口袋造成重大影响的支付网关。</p><p>如何将支付网关集成到您的网站中</p><p>根据您选择的支付网关,可能有几种不同的设置方法。如果所选的支付网关与Magento进行了本机集成,则可以尝试使用在线指南和教程自行设置。</p><p>或者,您可以从Atwix订购此服务。Atwix已帮助许多客户将支付网关与Magento集成。</p><p>Magento支付</p><p>网关集成服务</p><p>Atwix已帮助许多客户将支付网关与Magento&amp;Adobe Commerce集成。</p><p>联系我们</p><p>CTA 横幅图像深色</p><p>展望未来,这是您可以与Magento集成的最受欢迎的支付网关选项。</p><p>Magento开箱即用的支付集成</p><p>需要一些关于Magento 2最佳支付网关的建议吗?检查此列表:</p><p>PayPal</p><p>PayPal Magento支付网关</p><p>PayPal是在线支付处理的市场领导者,也是希望接受各种付款的电子商务商店的热门选择。它易于使用,安全可靠。由于密码和代码用于付款,因此无需输入您的信用卡号或任何敏感信息。</p><p>Authorize.Net</p><p>授权网络magento支付网关</p><p>使用 Authorize.Net,您可以将信用卡处理添加到您的网站并使用公司的各种功能。其中包括实时事务更新、定期计费和对自定义编码的支持。此外,Authorize.Net 还提供易于使用的界面、欺诈管理和广泛的 API。该公司与不同的行业合作,包括零售、电子商务、医疗保健等。</p><p>布伦特里</p><p>布伦特里 magento 支付网关</p><p>自2007年以来,Braintree通过与Uber,Airbnb和GitHub等公司合作扩大了其商家基础。该公司的主要目标是使店主和消费者的收款变得简单、快速和直接。</p><p>Braintree接受信用卡付款,Apple Pay,比特币和PayPal。</p><p>其他兼容Magento的国际支付网关</p><p>如果您正在寻找一个不那么受欢迎但工作相同的系统,那么值得一提的是以下内容:</p><p>条纹</p><p>Stripe 是一家支付服务提供商,允许您使用任何编程语言接受所有主要信用卡。它与许多领先的电子商务平台集成,包括Magento 2。您每月最多可以免费使用 100 笔交易。</p><p>对于处理更多费用的企业,Stripe 收取每笔交易 2.9% + 30 美分的费用。条纹可以使用插件或开发人员API密钥与您的Magento商店集成。</p><p>广场</p><p>广场和Magento集成提供了高效且可定制的电子商务解决方案。此集成可将付款自动同步到您的 Square 仪表板,提供全面的交易视图。它支持各种付款方式,如Apple Pay和Square Gift Cards。该集成还提供POS库存同步,从而实现无缝的在线和店内零售体验。</p><p>借助Magento的报告工具,这种协作可以对销售和客户行为产生重要的见解,从而增强您的电子商务策略。</p><p>亚马逊支付</p><p>Amazon Pay 允许在线购物者使用已存储在其亚马逊账户中的信息在您的网站上购买商品或服务。当您使用 Amazon Pay 时,您可以减少客户完成购买所需的步骤数,同时还可以降低客户获取成本。您还可以使用“通过亚马逊购买”按钮来提高转化率,该按钮允许客户快速将您的产品添加到购物车中。</p><p>2结帐</p><p>2Checkout(Verifone)被全球数千家Magento商店用于赚取更多收入,降低欺诈风险并增加销售额。2Checkout 是想要在国际上销售的英语、德语、西班牙语、法语和意大利语商店的绝佳支付网关。</p><p>克拉纳</p><p>Klarna 是一种支付网关服务,专门从事实物商品的支付。它是欧洲时尚的电子商务支付网关。由于最近与Magento的合作,它也可以被美国的商人使用。</p><p>总结</p><p>选择来自解决方案合作伙伴的Magento支付网关集成而不是DIY方法带来了关键优势。专家合作伙伴确保安全、高效的交易,并提供面向未来的解决方案,并提供持续支持。</p><p>自行实施可能会导致安全风险和运营效率低下。因此,利用专业服务有望提供卓越可靠的电子商务体验。</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>Magento在市场上已有15年的历史,拥有超过150,000家在线商店,是电子商务行业的巨头。它灵活且功能丰富 - 因此,是中型和大型企业的首选 - 这一切都归功于围绕它建立的蓬勃发展的社区。</p><p>但正如经常发生的那样,没有刺的玫瑰。就Magento而言,对于许多商人来说,棘手的是解锁Magento力量所需的技术专长水平。大多数情况下,这需要一个熟练的Magento开发团队 - 内部或外部。如果您在公司内不具备所需的开发技能,那么如何从庞大的可用人才库中选择一个专业的Magento开发团队,而不会不知所措?</p><p>作为经过认证的Magento / Adobe合作伙伴,以及拥有15年专业知识的Magento开发公司,Atwix在这里阐明这个问题。继续阅读以了解选择Magento电子商务代理商时真正重要的是什么。</p><p>选择Magento开发供应商的关键因素</p><p>选择卓越的B2B Magento代理商的最重要因素是什么?首先,寻找是Magento生态系统的重要组成部分的公司。这些机构将被Adobe和整个市场认可为Magento电子商务领域的先驱。根据我们的经验,以下是要寻找的标准:</p><p>1. 寻找具有区域专业化的成熟公司</p><p>Magento社区奖项是Adobe(平台所有者)的认可印章,也是公司整体专业精神的标志。例如,Atwix拥有100多项认证,这表明我们是世界上与Magento和Adobe平台合作的最佳Magento代理商之一。</p><p>Adobe认证与对Magento生态系统的贡献齐头并进。高度认证和高贡献的机构积极参与Magento的开发,利用其丰富的知识和经验帮助发展该平台。例如,Atwix是认证最高的Adobe金牌解决方案合作伙伴 - 从1年到2018年,我们也是Magento代码库的<span style="color: #6a9955;">#2023贡献者,这并非巧合。</span></p><p>选择Magento机构时,检查他们在特定地理区域内的专业化也很重要。不同的国家采取不同的方法,并对电子商务持有特定的态度。通过了解市场及其文化需求,您可以更好地为成功的市场发布做好准备。</p><p>例如,Atwix 在北美和 EMEA(欧洲、中东和非洲)市场拥有专长。花了12 +年的时间在他们中积累了我们的经验和理解,我们不仅是Magento认证的代理商,我们还是全球电子商务市场的专家。</p><p>2.您的Magento代理商必须是社区的一部分</p><p>Magento拥有一个活跃且蓬勃发展的开源社区,致力于通过对其GitHub代码库的贡献来改进平台。作为这个生态系统不可或缺的一部分,Atwix在过去五年中一直是Magento开源代码库的<span style="color: #6a9955;">#1贡献者。</span></p><p>此外,Atwix首席执行官Viacheslav Kravchuk是Magento协会的董事,Magento协会是一个非营利组织,其唯一目的是保持社区的健康,成长和开放。选择Magento电子商务开发机构时,请确保它在社区中广为人知并受到尊重。</p><p>3. 在 Adobe 合作伙伴列表中寻找公司</p><p>在计划外包Magento开发时,选择受信任的供应商至关重要。Magento平台的当前所有者Adobe策划了一个合作伙伴列表,其中包含Adobe信任的所有公司,以提供世界一流的Magento集成。代理商在此列表中的存在意味着它是可以提供世界级解决方案的值得信赖的供应商。该列表可以根据您的特定需求进行过滤,从而轻松为您的项目找到合适的Magento开发公司。</p><p>4. Magento开发机构必须是市场支柱</p><p>Atwix在Adobe的合作伙伴名单中名列前茅是有充分理由的,他在Magento网络开发服务方面投入了超过12年。从核心网站开发到重新设计欧洲最大的交付系统的运作方式,我们的产品组合可能多种多样。这就是为什么我们如此重视那些已经存在足够长的公司,以积累最好的声誉之一。简而言之,与Adobe没有明确联系的Magento营销机构从一开始就存在相当大的风险。</p><p>机构的寿命很重要的原因是,Magento平台在不断发展和扩展。作为该技术的早期采用者,并跟踪其发展,Atwix帮助引入了Magento 2,并通过我们持续的代码贡献帮助使其变得更好。自推出以来,Atwix一直是顶级贡献者,也是Magento 2的顶级代理商。</p><p>5. 没有太好的投资组合</p><p>多年来,我们了解到接受新的挑战至关重要。这种态度将有助于任何电子商务Magento开发机构了解该技术的独特且不断发展的方面。在此过程中,机构可以从简单但有效的站点转移到规模更大、更复杂的项目。</p><p>只需看看 Byrne Electrical Expertss 向强大的 B2B 市场的过渡。Atwix团队集成了Byrne的ERP,实现了非目录产品的销售,并集成了Magepack以提高前端性能,这对于大型电子商务网站至关重要。</p><p>在寻找和选择您自己的Magento开发供应商时,请考虑其产品组合的多样性。他们的用例是否与您的相似?客户成功的多样性和范围是否激发了信心?“足够好”足够好吗?还是您需要更伟大的东西?</p><p>6. 超越自我的能力</p><p>说到客户成功,这是一些Magento开发公司经常忽视的一个领域。Atwix的客户成功模式被称为“客户轨道”,它将客户及其需求置于我们运营的核心。实时客户电话通常涉及三名关键员工 - 项目经理,技术主管和客户成功经理 - 他们确保敏捷项目可交付成果与业务需求和功能要求保持一致。</p><p>我们试图始终满足客户的需求,即使是那些尚未表达的需求。我们通过积极倾听和主动沟通来做到这一点。我们的目标是交付不言自明的结果,无论项目规模或持续时间如何。我们相信Magento开发机构必须追求完美才能提供卓越。</p><p>7. 满足客户要求的灵活性</p><p>作为顶级的Magento代理商,Atwix也喜欢参与发布后的合作。例如,Magnanni是一个拥有悠久而辉煌历史的奢侈品牌,它希望使其在线平台像鞋子一样优雅。Atwix 能够提供延期交货跟踪、不断刷新的库存状态以及解决公司一些最讨厌的缓存问题的解决方案。</p><p>在寻找Magento代理商时,可能会采取类似的方法。适应不断变化的业务需求的敏捷性至关重要。成功的电子商务要求您满足买家不断变化的需求,因此您选择的Magento代理商必须能够应对这种情况。</p><p>现在您知道世界上最好的Magento机构的特征了......让我们开始工作</p><p>使用这七个技巧,您现在可以在寻求Magento网页设计机构时确定关键特征:</p><p>官方认证和 Adobe 合作伙伴身份</p><p>参与magento社区</p><p>区域专业化和专业知识市场</p><p>熟悉您的利基市场</p><p>灵活和高质量的服务,跻身世界级供应商之列</p><p>Atwix体现了这些价值观,这些价值观造就了一家顶级的Magento开发公司。我们花了12 +年的时间为全球客户提供卓越的质量,为所有垂直行业和运营领域的企业提供服务。从小型初创公司到大型企业,我们通过利用Magento平台提供的所有优势来特别关心我们的客户。</p><p><br/><br/></p><p><br/></p>

更改 Magento 2 DB 的表前缀(安装后)

<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提供了为数据库配置表前缀的选项。真棒。</p><p>如果您错过了它,或者后来意识到当您的数据库中已有实际数据(目录、客户、销售等)时需要对其进行配置,该怎么办?</p><p>别担心,我们已经为您提供了保障。您只需要按照以下步骤操作:</p><p>1. 准备要重命名的 SQL 语句</p><p></p><pre class="brush:bash;toolbar:false">SET&nbsp;@TABLE_PREFIX&nbsp;=&nbsp;&#39;uat_&#39;; SET&nbsp;@DATABASE&nbsp;=&nbsp;&#39;magento242&#39;; SELECT&nbsp;CONCAT(&#39;ALTER&nbsp;TABLE&nbsp;&#39;,&nbsp;TABLE_NAME,&nbsp;&#39;&nbsp;RENAME&nbsp;TO&nbsp;&#39;,&nbsp;@TABLE_PREFIX,&nbsp;TABLE_NAME,&nbsp;&#39;;&#39;)&nbsp;AS&nbsp;&#39;SQL&#39;&nbsp;FROM&nbsp;information_schema.tables&nbsp;WHERE&nbsp;table_schema&nbsp;=&nbsp;@DATABASE;</pre><p>您需要更改 &amp; 变量的值 。@TABLE_PREFIX@DATABASE</p><p>2. 执行 SQL 语句</p><p>如果运行上述 SQL,它将生成准备执行的 SQL 语句列表。</p><p>例如,下面是为vanilla Magento v2.4.2生成的语句列表:</p><p></p><pre class="brush:bash;toolbar:false">ALTER&nbsp;TABLE&nbsp;admin_analytics_usage_version_log&nbsp;RENAME&nbsp;TO&nbsp;uat_admin_analytics_usage_version_log; ALTER&nbsp;TABLE&nbsp;admin_passwords&nbsp;RENAME&nbsp;TO&nbsp;uat_admin_passwords; ALTER&nbsp;TABLE&nbsp;admin_system_messages&nbsp;RENAME&nbsp;TO&nbsp;uat_admin_system_messages; ALTER&nbsp;TABLE&nbsp;admin_user&nbsp;RENAME&nbsp;TO&nbsp;uat_admin_user; ALTER&nbsp;TABLE&nbsp;admin_user_expiration&nbsp;RENAME&nbsp;TO&nbsp;uat_admin_user_expiration; ALTER&nbsp;TABLE&nbsp;admin_user_session&nbsp;RENAME&nbsp;TO&nbsp;uat_admin_user_session; ALTER&nbsp;TABLE&nbsp;adminnotification_inbox&nbsp;RENAME&nbsp;TO&nbsp;uat_adminnotification_inbox; ALTER&nbsp;TABLE&nbsp;authorization_role&nbsp;RENAME&nbsp;TO&nbsp;uat_authorization_role; ALTER&nbsp;TABLE&nbsp;authorization_rule&nbsp;RENAME&nbsp;TO&nbsp;uat_authorization_rule; ALTER&nbsp;TABLE&nbsp;cache&nbsp;RENAME&nbsp;TO&nbsp;uat_cache; ALTER&nbsp;TABLE&nbsp;cache_tag&nbsp;RENAME&nbsp;TO&nbsp;uat_cache_tag; ALTER&nbsp;TABLE&nbsp;captcha_log&nbsp;RENAME&nbsp;TO&nbsp;uat_captcha_log; ALTER&nbsp;TABLE&nbsp;catalog_category_entity&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_category_entity; ALTER&nbsp;TABLE&nbsp;catalog_category_entity_datetime&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_category_entity_datetime; ALTER&nbsp;TABLE&nbsp;catalog_category_entity_decimal&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_category_entity_decimal; ALTER&nbsp;TABLE&nbsp;catalog_category_entity_int&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_category_entity_int; ALTER&nbsp;TABLE&nbsp;catalog_category_entity_text&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_category_entity_text; ALTER&nbsp;TABLE&nbsp;catalog_category_entity_varchar&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_category_entity_varchar; ALTER&nbsp;TABLE&nbsp;catalog_category_product&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_category_product; ALTER&nbsp;TABLE&nbsp;catalog_category_product_index&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_category_product_index; ALTER&nbsp;TABLE&nbsp;catalog_category_product_index_replica&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_category_product_index_replica; ALTER&nbsp;TABLE&nbsp;catalog_category_product_index_store1&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_category_product_index_store1; ALTER&nbsp;TABLE&nbsp;catalog_category_product_index_store1_replica&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_category_product_index_store1_replica; ALTER&nbsp;TABLE&nbsp;catalog_category_product_index_tmp&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_category_product_index_tmp; ALTER&nbsp;TABLE&nbsp;catalog_compare_item&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_compare_item; ALTER&nbsp;TABLE&nbsp;catalog_compare_list&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_compare_list; ALTER&nbsp;TABLE&nbsp;catalog_eav_attribute&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_eav_attribute; ALTER&nbsp;TABLE&nbsp;catalog_product_bundle_option&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_bundle_option; ALTER&nbsp;TABLE&nbsp;catalog_product_bundle_option_value&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_bundle_option_value; ALTER&nbsp;TABLE&nbsp;catalog_product_bundle_price_index&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_bundle_price_index; ALTER&nbsp;TABLE&nbsp;catalog_product_bundle_selection&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_bundle_selection; ALTER&nbsp;TABLE&nbsp;catalog_product_bundle_selection_price&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_bundle_selection_price; ALTER&nbsp;TABLE&nbsp;catalog_product_bundle_stock_index&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_bundle_stock_index; ALTER&nbsp;TABLE&nbsp;catalog_product_entity&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_entity; ALTER&nbsp;TABLE&nbsp;catalog_product_entity_datetime&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_entity_datetime; ALTER&nbsp;TABLE&nbsp;catalog_product_entity_decimal&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_entity_decimal; ALTER&nbsp;TABLE&nbsp;catalog_product_entity_gallery&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_entity_gallery; ALTER&nbsp;TABLE&nbsp;catalog_product_entity_int&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_entity_int; ALTER&nbsp;TABLE&nbsp;catalog_product_entity_media_gallery&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_entity_media_gallery; ALTER&nbsp;TABLE&nbsp;catalog_product_entity_media_gallery_value&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_entity_media_gallery_value; ALTER&nbsp;TABLE&nbsp;catalog_product_entity_media_gallery_value_to_entity&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_entity_media_gallery_value_to_entity; ALTER&nbsp;TABLE&nbsp;catalog_product_entity_media_gallery_value_video&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_entity_media_gallery_value_video; ALTER&nbsp;TABLE&nbsp;catalog_product_entity_text&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_entity_text; ALTER&nbsp;TABLE&nbsp;catalog_product_entity_tier_price&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_entity_tier_price; ALTER&nbsp;TABLE&nbsp;catalog_product_entity_varchar&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_entity_varchar; ALTER&nbsp;TABLE&nbsp;catalog_product_frontend_action&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_frontend_action; ALTER&nbsp;TABLE&nbsp;catalog_product_index_eav&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_index_eav; ALTER&nbsp;TABLE&nbsp;catalog_product_index_eav_decimal&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_index_eav_decimal; ALTER&nbsp;TABLE&nbsp;catalog_product_index_eav_decimal_idx&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_index_eav_decimal_idx; ALTER&nbsp;TABLE&nbsp;catalog_product_index_eav_decimal_replica&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_index_eav_decimal_replica; ALTER&nbsp;TABLE&nbsp;catalog_product_index_eav_decimal_tmp&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_index_eav_decimal_tmp; ALTER&nbsp;TABLE&nbsp;catalog_product_index_eav_idx&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_index_eav_idx; ALTER&nbsp;TABLE&nbsp;catalog_product_index_eav_replica&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_index_eav_replica; ALTER&nbsp;TABLE&nbsp;catalog_product_index_eav_tmp&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_index_eav_tmp; ALTER&nbsp;TABLE&nbsp;catalog_product_index_price&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_index_price; ALTER&nbsp;TABLE&nbsp;catalog_product_index_price_bundle_idx&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_index_price_bundle_idx; ALTER&nbsp;TABLE&nbsp;catalog_product_index_price_bundle_opt_idx&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_index_price_bundle_opt_idx; ALTER&nbsp;TABLE&nbsp;catalog_product_index_price_bundle_opt_tmp&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_index_price_bundle_opt_tmp; ALTER&nbsp;TABLE&nbsp;catalog_product_index_price_bundle_sel_idx&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_index_price_bundle_sel_idx; ALTER&nbsp;TABLE&nbsp;catalog_product_index_price_bundle_sel_tmp&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_index_price_bundle_sel_tmp; ALTER&nbsp;TABLE&nbsp;catalog_product_index_price_bundle_tmp&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_index_price_bundle_tmp; ALTER&nbsp;TABLE&nbsp;catalog_product_index_price_cfg_opt_agr_idx&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_index_price_cfg_opt_agr_idx; ALTER&nbsp;TABLE&nbsp;catalog_product_index_price_cfg_opt_agr_tmp&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_index_price_cfg_opt_agr_tmp; ALTER&nbsp;TABLE&nbsp;catalog_product_index_price_cfg_opt_idx&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_index_price_cfg_opt_idx; ALTER&nbsp;TABLE&nbsp;catalog_product_index_price_cfg_opt_tmp&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_index_price_cfg_opt_tmp; ALTER&nbsp;TABLE&nbsp;catalog_product_index_price_downlod_idx&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_index_price_downlod_idx; ALTER&nbsp;TABLE&nbsp;catalog_product_index_price_downlod_tmp&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_index_price_downlod_tmp; ALTER&nbsp;TABLE&nbsp;catalog_product_index_price_final_idx&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_index_price_final_idx; ALTER&nbsp;TABLE&nbsp;catalog_product_index_price_final_tmp&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_index_price_final_tmp; ALTER&nbsp;TABLE&nbsp;catalog_product_index_price_idx&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_index_price_idx; ALTER&nbsp;TABLE&nbsp;catalog_product_index_price_opt_agr_idx&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_index_price_opt_agr_idx; ALTER&nbsp;TABLE&nbsp;catalog_product_index_price_opt_agr_tmp&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_index_price_opt_agr_tmp; ALTER&nbsp;TABLE&nbsp;catalog_product_index_price_opt_idx&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_index_price_opt_idx; ALTER&nbsp;TABLE&nbsp;catalog_product_index_price_opt_tmp&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_index_price_opt_tmp; ALTER&nbsp;TABLE&nbsp;catalog_product_index_price_replica&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_index_price_replica; ALTER&nbsp;TABLE&nbsp;catalog_product_index_price_tmp&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_index_price_tmp; ALTER&nbsp;TABLE&nbsp;catalog_product_index_tier_price&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_index_tier_price; ALTER&nbsp;TABLE&nbsp;catalog_product_index_website&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_index_website; ALTER&nbsp;TABLE&nbsp;catalog_product_link&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_link; ALTER&nbsp;TABLE&nbsp;catalog_product_link_attribute&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_link_attribute; ALTER&nbsp;TABLE&nbsp;catalog_product_link_attribute_decimal&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_link_attribute_decimal; ALTER&nbsp;TABLE&nbsp;catalog_product_link_attribute_int&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_link_attribute_int; ALTER&nbsp;TABLE&nbsp;catalog_product_link_attribute_varchar&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_link_attribute_varchar; ALTER&nbsp;TABLE&nbsp;catalog_product_link_type&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_link_type; ALTER&nbsp;TABLE&nbsp;catalog_product_option&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_option; ALTER&nbsp;TABLE&nbsp;catalog_product_option_price&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_option_price; ALTER&nbsp;TABLE&nbsp;catalog_product_option_title&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_option_title; ALTER&nbsp;TABLE&nbsp;catalog_product_option_type_price&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_option_type_price; ALTER&nbsp;TABLE&nbsp;catalog_product_option_type_title&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_option_type_title; ALTER&nbsp;TABLE&nbsp;catalog_product_option_type_value&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_option_type_value; ALTER&nbsp;TABLE&nbsp;catalog_product_relation&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_relation; ALTER&nbsp;TABLE&nbsp;catalog_product_super_attribute&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_super_attribute; ALTER&nbsp;TABLE&nbsp;catalog_product_super_attribute_label&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_super_attribute_label; ALTER&nbsp;TABLE&nbsp;catalog_product_super_link&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_super_link; ALTER&nbsp;TABLE&nbsp;catalog_product_website&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_product_website; ALTER&nbsp;TABLE&nbsp;catalog_url_rewrite_product_category&nbsp;RENAME&nbsp;TO&nbsp;uat_catalog_url_rewrite_product_category; ALTER&nbsp;TABLE&nbsp;cataloginventory_stock&nbsp;RENAME&nbsp;TO&nbsp;uat_cataloginventory_stock; ALTER&nbsp;TABLE&nbsp;cataloginventory_stock_item&nbsp;RENAME&nbsp;TO&nbsp;uat_cataloginventory_stock_item; ALTER&nbsp;TABLE&nbsp;cataloginventory_stock_status&nbsp;RENAME&nbsp;TO&nbsp;uat_cataloginventory_stock_status; ALTER&nbsp;TABLE&nbsp;cataloginventory_stock_status_idx&nbsp;RENAME&nbsp;TO&nbsp;uat_cataloginventory_stock_status_idx; ALTER&nbsp;TABLE&nbsp;cataloginventory_stock_status_replica&nbsp;RENAME&nbsp;TO&nbsp;uat_cataloginventory_stock_status_replica; ALTER&nbsp;TABLE&nbsp;cataloginventory_stock_status_tmp&nbsp;RENAME&nbsp;TO&nbsp;uat_cataloginventory_stock_status_tmp; ALTER&nbsp;TABLE&nbsp;catalogrule&nbsp;RENAME&nbsp;TO&nbsp;uat_catalogrule; ALTER&nbsp;TABLE&nbsp;catalogrule_customer_group&nbsp;RENAME&nbsp;TO&nbsp;uat_catalogrule_customer_group; ALTER&nbsp;TABLE&nbsp;catalogrule_group_website&nbsp;RENAME&nbsp;TO&nbsp;uat_catalogrule_group_website; ALTER&nbsp;TABLE&nbsp;catalogrule_group_website_replica&nbsp;RENAME&nbsp;TO&nbsp;uat_catalogrule_group_website_replica; ALTER&nbsp;TABLE&nbsp;catalogrule_product&nbsp;RENAME&nbsp;TO&nbsp;uat_catalogrule_product; ALTER&nbsp;TABLE&nbsp;catalogrule_product_price&nbsp;RENAME&nbsp;TO&nbsp;uat_catalogrule_product_price; ALTER&nbsp;TABLE&nbsp;catalogrule_product_price_replica&nbsp;RENAME&nbsp;TO&nbsp;uat_catalogrule_product_price_replica; ALTER&nbsp;TABLE&nbsp;catalogrule_product_replica&nbsp;RENAME&nbsp;TO&nbsp;uat_catalogrule_product_replica; ALTER&nbsp;TABLE&nbsp;catalogrule_website&nbsp;RENAME&nbsp;TO&nbsp;uat_catalogrule_website; ALTER&nbsp;TABLE&nbsp;catalogsearch_recommendations&nbsp;RENAME&nbsp;TO&nbsp;uat_catalogsearch_recommendations; ALTER&nbsp;TABLE&nbsp;checkout_agreement&nbsp;RENAME&nbsp;TO&nbsp;uat_checkout_agreement; ALTER&nbsp;TABLE&nbsp;checkout_agreement_store&nbsp;RENAME&nbsp;TO&nbsp;uat_checkout_agreement_store; ALTER&nbsp;TABLE&nbsp;cms_block&nbsp;RENAME&nbsp;TO&nbsp;uat_cms_block; ALTER&nbsp;TABLE&nbsp;cms_block_store&nbsp;RENAME&nbsp;TO&nbsp;uat_cms_block_store; ALTER&nbsp;TABLE&nbsp;cms_page&nbsp;RENAME&nbsp;TO&nbsp;uat_cms_page; ALTER&nbsp;TABLE&nbsp;cms_page_store&nbsp;RENAME&nbsp;TO&nbsp;uat_cms_page_store; ALTER&nbsp;TABLE&nbsp;core_config_data&nbsp;RENAME&nbsp;TO&nbsp;uat_core_config_data; ALTER&nbsp;TABLE&nbsp;cron_schedule&nbsp;RENAME&nbsp;TO&nbsp;uat_cron_schedule; ALTER&nbsp;TABLE&nbsp;customer_address_entity&nbsp;RENAME&nbsp;TO&nbsp;uat_customer_address_entity; ALTER&nbsp;TABLE&nbsp;customer_address_entity_datetime&nbsp;RENAME&nbsp;TO&nbsp;uat_customer_address_entity_datetime; ALTER&nbsp;TABLE&nbsp;customer_address_entity_decimal&nbsp;RENAME&nbsp;TO&nbsp;uat_customer_address_entity_decimal; ALTER&nbsp;TABLE&nbsp;customer_address_entity_int&nbsp;RENAME&nbsp;TO&nbsp;uat_customer_address_entity_int; ALTER&nbsp;TABLE&nbsp;customer_address_entity_text&nbsp;RENAME&nbsp;TO&nbsp;uat_customer_address_entity_text; ALTER&nbsp;TABLE&nbsp;customer_address_entity_varchar&nbsp;RENAME&nbsp;TO&nbsp;uat_customer_address_entity_varchar; ALTER&nbsp;TABLE&nbsp;customer_eav_attribute&nbsp;RENAME&nbsp;TO&nbsp;uat_customer_eav_attribute; ALTER&nbsp;TABLE&nbsp;customer_eav_attribute_website&nbsp;RENAME&nbsp;TO&nbsp;uat_customer_eav_attribute_website; ALTER&nbsp;TABLE&nbsp;customer_entity&nbsp;RENAME&nbsp;TO&nbsp;uat_customer_entity; ALTER&nbsp;TABLE&nbsp;customer_entity_datetime&nbsp;RENAME&nbsp;TO&nbsp;uat_customer_entity_datetime; ALTER&nbsp;TABLE&nbsp;customer_entity_decimal&nbsp;RENAME&nbsp;TO&nbsp;uat_customer_entity_decimal; ALTER&nbsp;TABLE&nbsp;customer_entity_int&nbsp;RENAME&nbsp;TO&nbsp;uat_customer_entity_int; ALTER&nbsp;TABLE&nbsp;customer_entity_text&nbsp;RENAME&nbsp;TO&nbsp;uat_customer_entity_text; ALTER&nbsp;TABLE&nbsp;customer_entity_varchar&nbsp;RENAME&nbsp;TO&nbsp;uat_customer_entity_varchar; ALTER&nbsp;TABLE&nbsp;customer_form_attribute&nbsp;RENAME&nbsp;TO&nbsp;uat_customer_form_attribute; ALTER&nbsp;TABLE&nbsp;customer_grid_flat&nbsp;RENAME&nbsp;TO&nbsp;uat_customer_grid_flat; ALTER&nbsp;TABLE&nbsp;customer_group&nbsp;RENAME&nbsp;TO&nbsp;uat_customer_group; ALTER&nbsp;TABLE&nbsp;customer_log&nbsp;RENAME&nbsp;TO&nbsp;uat_customer_log; ALTER&nbsp;TABLE&nbsp;customer_visitor&nbsp;RENAME&nbsp;TO&nbsp;uat_customer_visitor; ALTER&nbsp;TABLE&nbsp;design_change&nbsp;RENAME&nbsp;TO&nbsp;uat_design_change; ALTER&nbsp;TABLE&nbsp;design_config_grid_flat&nbsp;RENAME&nbsp;TO&nbsp;uat_design_config_grid_flat; ALTER&nbsp;TABLE&nbsp;directory_country&nbsp;RENAME&nbsp;TO&nbsp;uat_directory_country; ALTER&nbsp;TABLE&nbsp;directory_country_format&nbsp;RENAME&nbsp;TO&nbsp;uat_directory_country_format; ALTER&nbsp;TABLE&nbsp;directory_country_region&nbsp;RENAME&nbsp;TO&nbsp;uat_directory_country_region; ALTER&nbsp;TABLE&nbsp;directory_country_region_city&nbsp;RENAME&nbsp;TO&nbsp;uat_directory_country_region_city; ALTER&nbsp;TABLE&nbsp;directory_country_region_city_name&nbsp;RENAME&nbsp;TO&nbsp;uat_directory_country_region_city_name; ALTER&nbsp;TABLE&nbsp;directory_country_region_name&nbsp;RENAME&nbsp;TO&nbsp;uat_directory_country_region_name; ALTER&nbsp;TABLE&nbsp;directory_currency_rate&nbsp;RENAME&nbsp;TO&nbsp;uat_directory_currency_rate; ALTER&nbsp;TABLE&nbsp;downloadable_link&nbsp;RENAME&nbsp;TO&nbsp;uat_downloadable_link; ALTER&nbsp;TABLE&nbsp;downloadable_link_price&nbsp;RENAME&nbsp;TO&nbsp;uat_downloadable_link_price; ALTER&nbsp;TABLE&nbsp;downloadable_link_purchased&nbsp;RENAME&nbsp;TO&nbsp;uat_downloadable_link_purchased; ALTER&nbsp;TABLE&nbsp;downloadable_link_purchased_item&nbsp;RENAME&nbsp;TO&nbsp;uat_downloadable_link_purchased_item; ALTER&nbsp;TABLE&nbsp;downloadable_link_title&nbsp;RENAME&nbsp;TO&nbsp;uat_downloadable_link_title; ALTER&nbsp;TABLE&nbsp;downloadable_sample&nbsp;RENAME&nbsp;TO&nbsp;uat_downloadable_sample; ALTER&nbsp;TABLE&nbsp;downloadable_sample_title&nbsp;RENAME&nbsp;TO&nbsp;uat_downloadable_sample_title; ALTER&nbsp;TABLE&nbsp;eav_attribute&nbsp;RENAME&nbsp;TO&nbsp;uat_eav_attribute; ALTER&nbsp;TABLE&nbsp;eav_attribute_group&nbsp;RENAME&nbsp;TO&nbsp;uat_eav_attribute_group; ALTER&nbsp;TABLE&nbsp;eav_attribute_label&nbsp;RENAME&nbsp;TO&nbsp;uat_eav_attribute_label; ALTER&nbsp;TABLE&nbsp;eav_attribute_option&nbsp;RENAME&nbsp;TO&nbsp;uat_eav_attribute_option; ALTER&nbsp;TABLE&nbsp;eav_attribute_option_swatch&nbsp;RENAME&nbsp;TO&nbsp;uat_eav_attribute_option_swatch; ALTER&nbsp;TABLE&nbsp;eav_attribute_option_value&nbsp;RENAME&nbsp;TO&nbsp;uat_eav_attribute_option_value; ALTER&nbsp;TABLE&nbsp;eav_attribute_set&nbsp;RENAME&nbsp;TO&nbsp;uat_eav_attribute_set; ALTER&nbsp;TABLE&nbsp;eav_entity&nbsp;RENAME&nbsp;TO&nbsp;uat_eav_entity; ALTER&nbsp;TABLE&nbsp;eav_entity_attribute&nbsp;RENAME&nbsp;TO&nbsp;uat_eav_entity_attribute; ALTER&nbsp;TABLE&nbsp;eav_entity_datetime&nbsp;RENAME&nbsp;TO&nbsp;uat_eav_entity_datetime; ALTER&nbsp;TABLE&nbsp;eav_entity_decimal&nbsp;RENAME&nbsp;TO&nbsp;uat_eav_entity_decimal; ALTER&nbsp;TABLE&nbsp;eav_entity_int&nbsp;RENAME&nbsp;TO&nbsp;uat_eav_entity_int; ALTER&nbsp;TABLE&nbsp;eav_entity_store&nbsp;RENAME&nbsp;TO&nbsp;uat_eav_entity_store; ALTER&nbsp;TABLE&nbsp;eav_entity_text&nbsp;RENAME&nbsp;TO&nbsp;uat_eav_entity_text; ALTER&nbsp;TABLE&nbsp;eav_entity_type&nbsp;RENAME&nbsp;TO&nbsp;uat_eav_entity_type; ALTER&nbsp;TABLE&nbsp;eav_entity_varchar&nbsp;RENAME&nbsp;TO&nbsp;uat_eav_entity_varchar; ALTER&nbsp;TABLE&nbsp;eav_form_element&nbsp;RENAME&nbsp;TO&nbsp;uat_eav_form_element; ALTER&nbsp;TABLE&nbsp;eav_form_fieldset&nbsp;RENAME&nbsp;TO&nbsp;uat_eav_form_fieldset; ALTER&nbsp;TABLE&nbsp;eav_form_fieldset_label&nbsp;RENAME&nbsp;TO&nbsp;uat_eav_form_fieldset_label; ALTER&nbsp;TABLE&nbsp;eav_form_type&nbsp;RENAME&nbsp;TO&nbsp;uat_eav_form_type; ALTER&nbsp;TABLE&nbsp;eav_form_type_entity&nbsp;RENAME&nbsp;TO&nbsp;uat_eav_form_type_entity; ALTER&nbsp;TABLE&nbsp;email_template&nbsp;RENAME&nbsp;TO&nbsp;uat_email_template; ALTER&nbsp;TABLE&nbsp;flag&nbsp;RENAME&nbsp;TO&nbsp;uat_flag; ALTER&nbsp;TABLE&nbsp;gift_message&nbsp;RENAME&nbsp;TO&nbsp;uat_gift_message; ALTER&nbsp;TABLE&nbsp;googleoptimizer_code&nbsp;RENAME&nbsp;TO&nbsp;uat_googleoptimizer_code; ALTER&nbsp;TABLE&nbsp;import_history&nbsp;RENAME&nbsp;TO&nbsp;uat_import_history; ALTER&nbsp;TABLE&nbsp;importexport_importdata&nbsp;RENAME&nbsp;TO&nbsp;uat_importexport_importdata; ALTER&nbsp;TABLE&nbsp;indexer_state&nbsp;RENAME&nbsp;TO&nbsp;uat_indexer_state; ALTER&nbsp;TABLE&nbsp;integration&nbsp;RENAME&nbsp;TO&nbsp;uat_integration; ALTER&nbsp;TABLE&nbsp;layout_link&nbsp;RENAME&nbsp;TO&nbsp;uat_layout_link; ALTER&nbsp;TABLE&nbsp;layout_update&nbsp;RENAME&nbsp;TO&nbsp;uat_layout_update; ALTER&nbsp;TABLE&nbsp;login_as_customer&nbsp;RENAME&nbsp;TO&nbsp;uat_login_as_customer; ALTER&nbsp;TABLE&nbsp;login_as_customer_assistance_allowed&nbsp;RENAME&nbsp;TO&nbsp;uat_login_as_customer_assistance_allowed; ALTER&nbsp;TABLE&nbsp;magento_acknowledged_bulk&nbsp;RENAME&nbsp;TO&nbsp;uat_magento_acknowledged_bulk; ALTER&nbsp;TABLE&nbsp;magento_bulk&nbsp;RENAME&nbsp;TO&nbsp;uat_magento_bulk; ALTER&nbsp;TABLE&nbsp;magento_login_as_customer_log&nbsp;RENAME&nbsp;TO&nbsp;uat_magento_login_as_customer_log; ALTER&nbsp;TABLE&nbsp;magento_operation&nbsp;RENAME&nbsp;TO&nbsp;uat_magento_operation; ALTER&nbsp;TABLE&nbsp;media_content_asset&nbsp;RENAME&nbsp;TO&nbsp;uat_media_content_asset; ALTER&nbsp;TABLE&nbsp;media_gallery_asset&nbsp;RENAME&nbsp;TO&nbsp;uat_media_gallery_asset; ALTER&nbsp;TABLE&nbsp;media_gallery_asset_keyword&nbsp;RENAME&nbsp;TO&nbsp;uat_media_gallery_asset_keyword; ALTER&nbsp;TABLE&nbsp;media_gallery_keyword&nbsp;RENAME&nbsp;TO&nbsp;uat_media_gallery_keyword; ALTER&nbsp;TABLE&nbsp;mview_state&nbsp;RENAME&nbsp;TO&nbsp;uat_mview_state; ALTER&nbsp;TABLE&nbsp;newsletter_problem&nbsp;RENAME&nbsp;TO&nbsp;uat_newsletter_problem; ALTER&nbsp;TABLE&nbsp;newsletter_queue&nbsp;RENAME&nbsp;TO&nbsp;uat_newsletter_queue; ALTER&nbsp;TABLE&nbsp;newsletter_queue_link&nbsp;RENAME&nbsp;TO&nbsp;uat_newsletter_queue_link; ALTER&nbsp;TABLE&nbsp;newsletter_queue_store_link&nbsp;RENAME&nbsp;TO&nbsp;uat_newsletter_queue_store_link; ALTER&nbsp;TABLE&nbsp;newsletter_subscriber&nbsp;RENAME&nbsp;TO&nbsp;uat_newsletter_subscriber; ALTER&nbsp;TABLE&nbsp;newsletter_template&nbsp;RENAME&nbsp;TO&nbsp;uat_newsletter_template; ALTER&nbsp;TABLE&nbsp;oauth_consumer&nbsp;RENAME&nbsp;TO&nbsp;uat_oauth_consumer; ALTER&nbsp;TABLE&nbsp;oauth_nonce&nbsp;RENAME&nbsp;TO&nbsp;uat_oauth_nonce; ALTER&nbsp;TABLE&nbsp;oauth_token&nbsp;RENAME&nbsp;TO&nbsp;uat_oauth_token; ALTER&nbsp;TABLE&nbsp;oauth_token_request_log&nbsp;RENAME&nbsp;TO&nbsp;uat_oauth_token_request_log; ALTER&nbsp;TABLE&nbsp;password_reset_request_event&nbsp;RENAME&nbsp;TO&nbsp;uat_password_reset_request_event; ALTER&nbsp;TABLE&nbsp;patch_list&nbsp;RENAME&nbsp;TO&nbsp;uat_patch_list; ALTER&nbsp;TABLE&nbsp;paypal_billing_agreement&nbsp;RENAME&nbsp;TO&nbsp;uat_paypal_billing_agreement; ALTER&nbsp;TABLE&nbsp;paypal_billing_agreement_order&nbsp;RENAME&nbsp;TO&nbsp;uat_paypal_billing_agreement_order; ALTER&nbsp;TABLE&nbsp;paypal_cert&nbsp;RENAME&nbsp;TO&nbsp;uat_paypal_cert; ALTER&nbsp;TABLE&nbsp;paypal_payment_transaction&nbsp;RENAME&nbsp;TO&nbsp;uat_paypal_payment_transaction; ALTER&nbsp;TABLE&nbsp;paypal_settlement_report&nbsp;RENAME&nbsp;TO&nbsp;uat_paypal_settlement_report; ALTER&nbsp;TABLE&nbsp;paypal_settlement_report_row&nbsp;RENAME&nbsp;TO&nbsp;uat_paypal_settlement_report_row; ALTER&nbsp;TABLE&nbsp;persistent_session&nbsp;RENAME&nbsp;TO&nbsp;uat_persistent_session; ALTER&nbsp;TABLE&nbsp;product_alert_price&nbsp;RENAME&nbsp;TO&nbsp;uat_product_alert_price; ALTER&nbsp;TABLE&nbsp;product_alert_stock&nbsp;RENAME&nbsp;TO&nbsp;uat_product_alert_stock; ALTER&nbsp;TABLE&nbsp;queue&nbsp;RENAME&nbsp;TO&nbsp;uat_queue; ALTER&nbsp;TABLE&nbsp;queue_lock&nbsp;RENAME&nbsp;TO&nbsp;uat_queue_lock; ALTER&nbsp;TABLE&nbsp;queue_message&nbsp;RENAME&nbsp;TO&nbsp;uat_queue_message; ALTER&nbsp;TABLE&nbsp;queue_message_status&nbsp;RENAME&nbsp;TO&nbsp;uat_queue_message_status; ALTER&nbsp;TABLE&nbsp;queue_poison_pill&nbsp;RENAME&nbsp;TO&nbsp;uat_queue_poison_pill; ALTER&nbsp;TABLE&nbsp;quote&nbsp;RENAME&nbsp;TO&nbsp;uat_quote; ALTER&nbsp;TABLE&nbsp;quote_address&nbsp;RENAME&nbsp;TO&nbsp;uat_quote_address; ALTER&nbsp;TABLE&nbsp;quote_address_item&nbsp;RENAME&nbsp;TO&nbsp;uat_quote_address_item; ALTER&nbsp;TABLE&nbsp;quote_id_mask&nbsp;RENAME&nbsp;TO&nbsp;uat_quote_id_mask; ALTER&nbsp;TABLE&nbsp;quote_item&nbsp;RENAME&nbsp;TO&nbsp;uat_quote_item; ALTER&nbsp;TABLE&nbsp;quote_item_option&nbsp;RENAME&nbsp;TO&nbsp;uat_quote_item_option; ALTER&nbsp;TABLE&nbsp;quote_payment&nbsp;RENAME&nbsp;TO&nbsp;uat_quote_payment; ALTER&nbsp;TABLE&nbsp;quote_shipping_rate&nbsp;RENAME&nbsp;TO&nbsp;uat_quote_shipping_rate; ALTER&nbsp;TABLE&nbsp;rating&nbsp;RENAME&nbsp;TO&nbsp;uat_rating; ALTER&nbsp;TABLE&nbsp;rating_entity&nbsp;RENAME&nbsp;TO&nbsp;uat_rating_entity; ALTER&nbsp;TABLE&nbsp;rating_option&nbsp;RENAME&nbsp;TO&nbsp;uat_rating_option; ALTER&nbsp;TABLE&nbsp;rating_option_vote&nbsp;RENAME&nbsp;TO&nbsp;uat_rating_option_vote; ALTER&nbsp;TABLE&nbsp;rating_option_vote_aggregated&nbsp;RENAME&nbsp;TO&nbsp;uat_rating_option_vote_aggregated; ALTER&nbsp;TABLE&nbsp;rating_store&nbsp;RENAME&nbsp;TO&nbsp;uat_rating_store; ALTER&nbsp;TABLE&nbsp;rating_title&nbsp;RENAME&nbsp;TO&nbsp;uat_rating_title; ALTER&nbsp;TABLE&nbsp;release_notification_viewer_log&nbsp;RENAME&nbsp;TO&nbsp;uat_release_notification_viewer_log; ALTER&nbsp;TABLE&nbsp;report_compared_product_index&nbsp;RENAME&nbsp;TO&nbsp;uat_report_compared_product_index; ALTER&nbsp;TABLE&nbsp;report_event&nbsp;RENAME&nbsp;TO&nbsp;uat_report_event; ALTER&nbsp;TABLE&nbsp;report_event_types&nbsp;RENAME&nbsp;TO&nbsp;uat_report_event_types; ALTER&nbsp;TABLE&nbsp;report_viewed_product_aggregated_daily&nbsp;RENAME&nbsp;TO&nbsp;uat_report_viewed_product_aggregated_daily; ALTER&nbsp;TABLE&nbsp;report_viewed_product_aggregated_monthly&nbsp;RENAME&nbsp;TO&nbsp;uat_report_viewed_product_aggregated_monthly; ALTER&nbsp;TABLE&nbsp;report_viewed_product_aggregated_yearly&nbsp;RENAME&nbsp;TO&nbsp;uat_report_viewed_product_aggregated_yearly; ALTER&nbsp;TABLE&nbsp;report_viewed_product_index&nbsp;RENAME&nbsp;TO&nbsp;uat_report_viewed_product_index; ALTER&nbsp;TABLE&nbsp;reporting_counts&nbsp;RENAME&nbsp;TO&nbsp;uat_reporting_counts; ALTER&nbsp;TABLE&nbsp;reporting_module_status&nbsp;RENAME&nbsp;TO&nbsp;uat_reporting_module_status; ALTER&nbsp;TABLE&nbsp;reporting_orders&nbsp;RENAME&nbsp;TO&nbsp;uat_reporting_orders; ALTER&nbsp;TABLE&nbsp;reporting_system_updates&nbsp;RENAME&nbsp;TO&nbsp;uat_reporting_system_updates; ALTER&nbsp;TABLE&nbsp;reporting_users&nbsp;RENAME&nbsp;TO&nbsp;uat_reporting_users; ALTER&nbsp;TABLE&nbsp;review&nbsp;RENAME&nbsp;TO&nbsp;uat_review; ALTER&nbsp;TABLE&nbsp;review_detail&nbsp;RENAME&nbsp;TO&nbsp;uat_review_detail; ALTER&nbsp;TABLE&nbsp;review_entity&nbsp;RENAME&nbsp;TO&nbsp;uat_review_entity; ALTER&nbsp;TABLE&nbsp;review_entity_summary&nbsp;RENAME&nbsp;TO&nbsp;uat_review_entity_summary; ALTER&nbsp;TABLE&nbsp;review_status&nbsp;RENAME&nbsp;TO&nbsp;uat_review_status; ALTER&nbsp;TABLE&nbsp;review_store&nbsp;RENAME&nbsp;TO&nbsp;uat_review_store; ALTER&nbsp;TABLE&nbsp;sales_bestsellers_aggregated_daily&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_bestsellers_aggregated_daily; ALTER&nbsp;TABLE&nbsp;sales_bestsellers_aggregated_monthly&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_bestsellers_aggregated_monthly; ALTER&nbsp;TABLE&nbsp;sales_bestsellers_aggregated_yearly&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_bestsellers_aggregated_yearly; ALTER&nbsp;TABLE&nbsp;sales_creditmemo&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_creditmemo; ALTER&nbsp;TABLE&nbsp;sales_creditmemo_comment&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_creditmemo_comment; ALTER&nbsp;TABLE&nbsp;sales_creditmemo_grid&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_creditmemo_grid; ALTER&nbsp;TABLE&nbsp;sales_creditmemo_item&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_creditmemo_item; ALTER&nbsp;TABLE&nbsp;sales_invoice&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_invoice; ALTER&nbsp;TABLE&nbsp;sales_invoice_comment&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_invoice_comment; ALTER&nbsp;TABLE&nbsp;sales_invoice_grid&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_invoice_grid; ALTER&nbsp;TABLE&nbsp;sales_invoice_item&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_invoice_item; ALTER&nbsp;TABLE&nbsp;sales_invoiced_aggregated&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_invoiced_aggregated; ALTER&nbsp;TABLE&nbsp;sales_invoiced_aggregated_order&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_invoiced_aggregated_order; ALTER&nbsp;TABLE&nbsp;sales_order&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_order; ALTER&nbsp;TABLE&nbsp;sales_order_address&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_order_address; ALTER&nbsp;TABLE&nbsp;sales_order_aggregated_created&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_order_aggregated_created; ALTER&nbsp;TABLE&nbsp;sales_order_aggregated_updated&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_order_aggregated_updated; ALTER&nbsp;TABLE&nbsp;sales_order_grid&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_order_grid; ALTER&nbsp;TABLE&nbsp;sales_order_item&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_order_item; ALTER&nbsp;TABLE&nbsp;sales_order_payment&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_order_payment; ALTER&nbsp;TABLE&nbsp;sales_order_status&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_order_status; ALTER&nbsp;TABLE&nbsp;sales_order_status_history&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_order_status_history; ALTER&nbsp;TABLE&nbsp;sales_order_status_label&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_order_status_label; ALTER&nbsp;TABLE&nbsp;sales_order_status_state&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_order_status_state; ALTER&nbsp;TABLE&nbsp;sales_order_tax&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_order_tax; ALTER&nbsp;TABLE&nbsp;sales_order_tax_item&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_order_tax_item; ALTER&nbsp;TABLE&nbsp;sales_payment_transaction&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_payment_transaction; ALTER&nbsp;TABLE&nbsp;sales_refunded_aggregated&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_refunded_aggregated; ALTER&nbsp;TABLE&nbsp;sales_refunded_aggregated_order&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_refunded_aggregated_order; ALTER&nbsp;TABLE&nbsp;sales_sequence_meta&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_sequence_meta; ALTER&nbsp;TABLE&nbsp;sales_sequence_profile&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_sequence_profile; ALTER&nbsp;TABLE&nbsp;sales_shipment&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_shipment; ALTER&nbsp;TABLE&nbsp;sales_shipment_comment&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_shipment_comment; ALTER&nbsp;TABLE&nbsp;sales_shipment_grid&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_shipment_grid; ALTER&nbsp;TABLE&nbsp;sales_shipment_item&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_shipment_item; ALTER&nbsp;TABLE&nbsp;sales_shipment_track&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_shipment_track; ALTER&nbsp;TABLE&nbsp;sales_shipping_aggregated&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_shipping_aggregated; ALTER&nbsp;TABLE&nbsp;sales_shipping_aggregated_order&nbsp;RENAME&nbsp;TO&nbsp;uat_sales_shipping_aggregated_order; ALTER&nbsp;TABLE&nbsp;salesrule&nbsp;RENAME&nbsp;TO&nbsp;uat_salesrule; ALTER&nbsp;TABLE&nbsp;salesrule_coupon&nbsp;RENAME&nbsp;TO&nbsp;uat_salesrule_coupon; ALTER&nbsp;TABLE&nbsp;salesrule_coupon_aggregated&nbsp;RENAME&nbsp;TO&nbsp;uat_salesrule_coupon_aggregated; ALTER&nbsp;TABLE&nbsp;salesrule_coupon_aggregated_order&nbsp;RENAME&nbsp;TO&nbsp;uat_salesrule_coupon_aggregated_order; ALTER&nbsp;TABLE&nbsp;salesrule_coupon_aggregated_updated&nbsp;RENAME&nbsp;TO&nbsp;uat_salesrule_coupon_aggregated_updated; ALTER&nbsp;TABLE&nbsp;salesrule_coupon_usage&nbsp;RENAME&nbsp;TO&nbsp;uat_salesrule_coupon_usage; ALTER&nbsp;TABLE&nbsp;salesrule_customer&nbsp;RENAME&nbsp;TO&nbsp;uat_salesrule_customer; ALTER&nbsp;TABLE&nbsp;salesrule_customer_group&nbsp;RENAME&nbsp;TO&nbsp;uat_salesrule_customer_group; ALTER&nbsp;TABLE&nbsp;salesrule_label&nbsp;RENAME&nbsp;TO&nbsp;uat_salesrule_label; ALTER&nbsp;TABLE&nbsp;salesrule_product_attribute&nbsp;RENAME&nbsp;TO&nbsp;uat_salesrule_product_attribute; ALTER&nbsp;TABLE&nbsp;salesrule_website&nbsp;RENAME&nbsp;TO&nbsp;uat_salesrule_website; ALTER&nbsp;TABLE&nbsp;search_query&nbsp;RENAME&nbsp;TO&nbsp;uat_search_query; ALTER&nbsp;TABLE&nbsp;search_synonyms&nbsp;RENAME&nbsp;TO&nbsp;uat_search_synonyms; ALTER&nbsp;TABLE&nbsp;sendfriend_log&nbsp;RENAME&nbsp;TO&nbsp;uat_sendfriend_log; ALTER&nbsp;TABLE&nbsp;sequence_creditmemo_0&nbsp;RENAME&nbsp;TO&nbsp;uat_sequence_creditmemo_0; ALTER&nbsp;TABLE&nbsp;sequence_creditmemo_1&nbsp;RENAME&nbsp;TO&nbsp;uat_sequence_creditmemo_1; ALTER&nbsp;TABLE&nbsp;sequence_invoice_0&nbsp;RENAME&nbsp;TO&nbsp;uat_sequence_invoice_0; ALTER&nbsp;TABLE&nbsp;sequence_invoice_1&nbsp;RENAME&nbsp;TO&nbsp;uat_sequence_invoice_1; ALTER&nbsp;TABLE&nbsp;sequence_order_0&nbsp;RENAME&nbsp;TO&nbsp;uat_sequence_order_0; ALTER&nbsp;TABLE&nbsp;sequence_order_1&nbsp;RENAME&nbsp;TO&nbsp;uat_sequence_order_1; ALTER&nbsp;TABLE&nbsp;sequence_shipment_0&nbsp;RENAME&nbsp;TO&nbsp;uat_sequence_shipment_0; ALTER&nbsp;TABLE&nbsp;sequence_shipment_1&nbsp;RENAME&nbsp;TO&nbsp;uat_sequence_shipment_1; ALTER&nbsp;TABLE&nbsp;session&nbsp;RENAME&nbsp;TO&nbsp;uat_session; ALTER&nbsp;TABLE&nbsp;setup_module&nbsp;RENAME&nbsp;TO&nbsp;uat_setup_module; ALTER&nbsp;TABLE&nbsp;shipping_tablerate&nbsp;RENAME&nbsp;TO&nbsp;uat_shipping_tablerate; ALTER&nbsp;TABLE&nbsp;sitemap&nbsp;RENAME&nbsp;TO&nbsp;uat_sitemap; ALTER&nbsp;TABLE&nbsp;store&nbsp;RENAME&nbsp;TO&nbsp;uat_store; ALTER&nbsp;TABLE&nbsp;store_group&nbsp;RENAME&nbsp;TO&nbsp;uat_store_group; ALTER&nbsp;TABLE&nbsp;store_website&nbsp;RENAME&nbsp;TO&nbsp;uat_store_website; ALTER&nbsp;TABLE&nbsp;tax_calculation&nbsp;RENAME&nbsp;TO&nbsp;uat_tax_calculation; ALTER&nbsp;TABLE&nbsp;tax_calculation_rate&nbsp;RENAME&nbsp;TO&nbsp;uat_tax_calculation_rate; ALTER&nbsp;TABLE&nbsp;tax_calculation_rate_title&nbsp;RENAME&nbsp;TO&nbsp;uat_tax_calculation_rate_title; ALTER&nbsp;TABLE&nbsp;tax_calculation_rule&nbsp;RENAME&nbsp;TO&nbsp;uat_tax_calculation_rule; ALTER&nbsp;TABLE&nbsp;tax_class&nbsp;RENAME&nbsp;TO&nbsp;uat_tax_class; ALTER&nbsp;TABLE&nbsp;tax_order_aggregated_created&nbsp;RENAME&nbsp;TO&nbsp;uat_tax_order_aggregated_created; ALTER&nbsp;TABLE&nbsp;tax_order_aggregated_updated&nbsp;RENAME&nbsp;TO&nbsp;uat_tax_order_aggregated_updated; ALTER&nbsp;TABLE&nbsp;theme&nbsp;RENAME&nbsp;TO&nbsp;uat_theme; ALTER&nbsp;TABLE&nbsp;theme_file&nbsp;RENAME&nbsp;TO&nbsp;uat_theme_file; ALTER&nbsp;TABLE&nbsp;translation&nbsp;RENAME&nbsp;TO&nbsp;uat_translation; ALTER&nbsp;TABLE&nbsp;ui_bookmark&nbsp;RENAME&nbsp;TO&nbsp;uat_ui_bookmark; ALTER&nbsp;TABLE&nbsp;url_rewrite&nbsp;RENAME&nbsp;TO&nbsp;uat_url_rewrite; ALTER&nbsp;TABLE&nbsp;variable&nbsp;RENAME&nbsp;TO&nbsp;uat_variable; ALTER&nbsp;TABLE&nbsp;variable_value&nbsp;RENAME&nbsp;TO&nbsp;uat_variable_value; ALTER&nbsp;TABLE&nbsp;vault_payment_token&nbsp;RENAME&nbsp;TO&nbsp;uat_vault_payment_token; ALTER&nbsp;TABLE&nbsp;vault_payment_token_order_payment_link&nbsp;RENAME&nbsp;TO&nbsp;uat_vault_payment_token_order_payment_link; ALTER&nbsp;TABLE&nbsp;weee_tax&nbsp;RENAME&nbsp;TO&nbsp;uat_weee_tax; ALTER&nbsp;TABLE&nbsp;widget&nbsp;RENAME&nbsp;TO&nbsp;uat_widget; ALTER&nbsp;TABLE&nbsp;widget_instance&nbsp;RENAME&nbsp;TO&nbsp;uat_widget_instance; ALTER&nbsp;TABLE&nbsp;widget_instance_page&nbsp;RENAME&nbsp;TO&nbsp;uat_widget_instance_page; ALTER&nbsp;TABLE&nbsp;widget_instance_page_layout&nbsp;RENAME&nbsp;TO&nbsp;uat_widget_instance_page_layout; ALTER&nbsp;TABLE&nbsp;wishlist&nbsp;RENAME&nbsp;TO&nbsp;uat_wishlist; ALTER&nbsp;TABLE&nbsp;wishlist_item&nbsp;RENAME&nbsp;TO&nbsp;uat_wishlist_item; ALTER&nbsp;TABLE&nbsp;wishlist_item_option&nbsp;RENAME&nbsp;TO&nbsp;uat_wishlist_item_option;</pre><p>3. 更改应用程序/等/环境中的表前缀.php</p><p>打开文件并更改节点下的键的值。</p><p>例如:app/etc/env.phptable_prefixdb</p><pre class="brush:bash;toolbar:false">&#39;db&#39;&nbsp;=&gt;&nbsp;[ &nbsp;&nbsp;&nbsp;&nbsp;&#39;table_prefix&#39;&nbsp;=&gt;&nbsp;&#39;uat_&#39;, &nbsp;&nbsp;&nbsp;&nbsp;&#39;connection&#39;&nbsp;=&gt;&nbsp;[ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;default&#39;&nbsp;=&gt;&nbsp;[ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;host&#39;&nbsp;=&gt;&nbsp;&#39;localhost&#39;, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;dbname&#39;&nbsp;=&gt;&nbsp;&#39;magento242&#39;, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;username&#39;&nbsp;=&gt;&nbsp;&#39;dbuser&#39;, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;password&#39;&nbsp;=&gt;&nbsp;&#39;dbpass&#39;, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;model&#39;&nbsp;=&gt;&nbsp;&#39;mysql4&#39;, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;engine&#39;&nbsp;=&gt;&nbsp;&#39;innodb&#39;, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;initStatements&#39;&nbsp;=&gt;&nbsp;&#39;SET&nbsp;NAMES&nbsp;utf8;&#39;, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;active&#39;&nbsp;=&gt;&nbsp;&#39;1&#39;, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;] &nbsp;&nbsp;&nbsp;&nbsp;] ],</pre><p>如果需要,您可以运行 命令。setup:upgrade</p><p>4.清除缓存</p><p>执行步骤 2 中生成的 SQL 语句并按步骤 3 配置表前缀后,我们就可以清除缓存了。</p><p>在下面的评论中让我们知道此解决方案是否以任何方式对您有所帮助或有一些替代/更好的方法。</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>使用最强大的CMS Magento 2,它允许您自定义结帐流程,并在运输和评论付款部分之间添加自己的步骤。让我们使用一个例子来做到这一点,在这里我们添加了一个指令步骤,然后下订单并将客户进一步转发到Magento 2商店的付款部分。此外,安装自定义结帐字段,这有助于商店管理员通过添加额外字段来自定义结帐页面。</p><p>首先,我们需要创建“checkout_index_index.xml”以在此路径中添加自定义结帐步骤。</p><p>app\code\Vendor\Extension\frontend\view\layout\checkout_index_index.xml</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;&lt;body&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;referenceBlock&nbsp;name=&quot;checkout.root&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;arguments&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;argument&nbsp;name=&quot;jsLayout&quot;&nbsp;xsi:type=&quot;array&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;item&nbsp;name=&quot;components&quot;&nbsp;xsi:type=&quot;array&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;item&nbsp;name=&quot;checkout&quot;&nbsp;xsi:type=&quot;array&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;item&nbsp;name=&quot;children&quot;&nbsp;xsi:type=&quot;array&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;item&nbsp;name=&quot;steps&quot;&nbsp;xsi:type=&quot;array&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;item&nbsp;name=&quot;children&quot;&nbsp;xsi:type=&quot;array&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;The&nbsp;new&nbsp;step&nbsp;you&nbsp;add&nbsp;--&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;item&nbsp;name=&quot;check-login-step&quot;&nbsp;xsi:type=&quot;array&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;item&nbsp;name=&quot;component&quot;&nbsp;xsi:type=&quot;string&quot;&gt;Vendor_Extension/js/view/checkout-new-step &lt;/item&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;item&nbsp;name=&quot;sortOrder&quot;&nbsp;xsi:type=&quot;string&quot;&gt;2&lt;/item&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;item&nbsp;name=&quot;children&quot;&nbsp;xsi:type=&quot;array&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--add&nbsp;here&nbsp;child&nbsp;component&nbsp;declaration&nbsp;for&nbsp;your&nbsp;step--&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/item&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/item&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/item&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/item&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/item&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/item&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/item&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/argument&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/arguments&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/referenceBlock&gt; &nbsp;&nbsp;&nbsp;&nbsp;&lt;/body&gt; &lt;/page&gt;</pre><p>在上面的代码中,我们在“运输步骤”之后添加了结帐步骤。如果您想在结帐过程中更改步骤位置,以下是一些方案。</p><p>要在发货步骤“sortOrder”值之前显示步骤内容,应&lt; 1 显示发货步骤和付款步骤之间的步骤内容 1</p><p>&lt;“sortOrder” &lt; 2 显示付款步骤“sortOrder”后的步骤内容 &gt; 2</p><p>在下一步中,我们需要在前端 Web 文件夹中创建一个 Js 文件。</p><p>app\code\Vendor\Extension\view\frontend\web\js\view\checkout-new-step.js</p><p></p><pre class="brush:bash;toolbar:false">define( &nbsp;[ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;ko&#39;, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;uiComponent&#39;, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;underscore&#39;, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;Magento_Checkout/js/model/step-navigator&#39;, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;Magento_Checkout/js/model/full-screen-loader&#39;, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;mage/storage&#39;, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;Magento_Customer/js/model/customer&#39;, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;Magento_Checkout/js/model/quote&#39;, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;Magento_Checkout/js/model/shipping-rate-registry&#39;, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;Magento_Checkout/js/action/get-totals&#39;, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;Magento_Checkout/js/model/totals&#39;, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;Magento_Checkout/js/model/cart/totals-processor/default&#39;, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;Magento_Checkout/js/model/cart/cache&#39; &nbsp;], &nbsp;function&nbsp;(ko, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Component, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stepNavigator, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fullScreenLoader, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;storage, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;customer, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;quote, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rateRegistry, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;totals, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getTotalsAction, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultTotal, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cartCache)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;use&nbsp;strict&#39;; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;check-login&nbsp;-&nbsp;is&nbsp;the&nbsp;name&nbsp;of&nbsp;the&nbsp;component&#39;s&nbsp;.html&nbsp;template &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;Component.extend({ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaults:&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;template:&nbsp;‘Vendor_Extension/check-new’ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//add&nbsp;here&nbsp;your&nbsp;logic&nbsp;to&nbsp;display&nbsp;step, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isVisible:&nbsp;ko.observable(true), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isVisibleDrop:&nbsp;ko.observable(false), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isLogedIn:&nbsp;customer.isLoggedIn(), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//step&nbsp;code&nbsp;will&nbsp;be&nbsp;used&nbsp;as&nbsp;step&nbsp;content&nbsp;id&nbsp;in&nbsp;the&nbsp;component&nbsp;template &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stepCode:&nbsp;&#39;newstep&#39;, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//step&nbsp;title&nbsp;value &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stepTitle:&nbsp;&quot;New&nbsp;Step&quot;, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@returns&nbsp;{*} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;initialize:&nbsp;function&nbsp;()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this._super(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;register&nbsp;your&nbsp;step &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stepNavigator.registerStep( &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.stepCode, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//step&nbsp;alias &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;null, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.stepTitle, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//observable&nbsp;property&nbsp;with&nbsp;logic&nbsp;when&nbsp;display&nbsp;step&nbsp;or&nbsp;hide&nbsp;step &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.isVisible, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_.bind(this.navigate,&nbsp;this), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;sort&nbsp;order&nbsp;value &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&#39;sort&nbsp;order&nbsp;value&#39;&nbsp;&lt;&nbsp;10:&nbsp;step&nbsp;displays&nbsp;before&nbsp;shipping&nbsp;step; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;10&nbsp;&lt;&nbsp;&#39;sort&nbsp;order&nbsp;value&#39;&nbsp;&lt;&nbsp;20&nbsp;:&nbsp;step&nbsp;displays&nbsp;between&nbsp;shipping&nbsp;and&nbsp;payment&nbsp;step&nbsp;*&nbsp;&#39;sort&nbsp;order&nbsp;value&#39;&nbsp;&gt;&nbsp;20&nbsp;:&nbsp;step&nbsp;displays&nbsp;after&nbsp;payment&nbsp;step &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;15 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isStepDisplayed:&nbsp;function&nbsp;()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;The&nbsp;navigate()&nbsp;method&nbsp;is&nbsp;responsible&nbsp;for&nbsp;navigation&nbsp;between&nbsp;checkout&nbsp;step &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;during&nbsp;checkout.&nbsp;You&nbsp;can&nbsp;add&nbsp;custom&nbsp;logic,&nbsp;for&nbsp;example&nbsp;some&nbsp;conditions &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;for&nbsp;switching&nbsp;to&nbsp;your&nbsp;custom&nbsp;step &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;navigate:&nbsp;function&nbsp;()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@returns&nbsp;void &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;navigateToNextStep:&nbsp;function&nbsp;()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stepNavigator.next(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}); &nbsp;} );</pre><p><span style="color: #ce9178;">现在在最后一步中,我们需要在此路径上再创建一个 html 文件。</span></p><p><span style="color: #ce9178;">app</span><span style="color: #d7ba7d;">\c</span><span style="color: #ce9178;">ode</span><span style="color: #d7ba7d;">\V</span><span style="color: #ce9178;">endor</span><span style="color: #d7ba7d;">\E</span><span style="color: #ce9178;">xtension</span><span style="color: #d7ba7d;">\v</span><span style="color: #ce9178;">iew</span><span style="color: #d7ba7d;">\f</span><span style="color: #ce9178;">rontend</span><span style="color: #d7ba7d;">\w</span><span style="color: #ce9178;">eb</span><span style="color: #d7ba7d;">\j</span><span style="color: #ce9178;">s</span><span style="color: #d7ba7d;">\v</span><span style="color: #ce9178;">iew</span><span style="color: #d7ba7d;">\c</span><span style="color: #ce9178;">heck-new.html</span></p><p><span style="color: #ce9178;"></span></p><pre class="brush:bash;toolbar:false">&lt;!--Use&nbsp;&#39;stepCode&#39;&nbsp;as&nbsp;id&nbsp;attribute--&gt; &lt;li&nbsp;data-bind=&quot;fadeVisible:&nbsp;isVisible,&nbsp;attr:&nbsp;{&nbsp;id:&nbsp;stepCode&nbsp;}&quot;&gt; &nbsp;&lt;div&nbsp;class=&quot;step-title&quot;&nbsp;data-bind=&quot;i18n:&nbsp;stepTitle&quot;&nbsp;data-role=&quot;title&quot;&gt;&lt;/div&gt; &nbsp;&lt;div&nbsp;id=&quot;checkout-step-title&quot; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class=&quot;step-content&nbsp;delivery-option-master&quot; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data-role=&quot;content&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&nbsp;class=&quot;fieldset&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;span&gt;&lt;!--&nbsp;ko&nbsp;i18n:&nbsp;&#39;New&nbsp;Step&nbsp;Added&#39;--&gt;&lt;!--&nbsp;/ko&nbsp;--&gt;&lt;/span&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt; &nbsp;&lt;/div&gt; &lt;/li&gt;</pre><p><span style="color: #ce9178;">哒!您已成功在Magento 2结帐流程中添加自定义步骤。</span></p><p><br/></p>

如何在Magento 2中使用REST API获取所有订单状态

<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>流行的API类型之一是REST,旨在利用现有的HTTP协议。主要是,RESTful API是一个应用程序接口(API),它使用HTTP请求来获取,放置,发布和删除数据。此外,如果您想使用 REST API,则不需要安装任何插件或库。REST API的唯一主要优点是它提供了更好的灵活性,可以处理多种类型的调用,返回不同的数据格式,并且可以在结构上实现正确的超媒体。这意味着它允许开发人员通过接触新客户来构建满足所有业务需求的 API。</p><p>同样,Magento 2 API框架允许开发人员开发新的服务,用于使用CRUD操作同步Magento 2存储数据。</p><p>此外,如果您熟悉在 PHP 中调用 API 的流程,那么使用 Rest API 就像馅饼一样简单。如果您正在开发此类服务,您可能会遇到使用 REST API 获取订单数据的要求。因此,我们再次回到了另一个博客,它允许您使用Magento 2中的REST API获取所有订单状态。</p><p>首先,我们需要在此路径的扩展中创建“注册.php”文件。</p><p>app\code\VENDOR\EXTENSION</p><p>&lt;!--?php \Magento\Framework\Component\ComponentRegistrar::register( \Magento\Framework\Component\ComponentRegistrar::MODULE, <span style="color: #ce9178;">&#39;VENDOR_EXTENSION&#39;</span>, __DIR__ )<span style="color: #6a9955;">; &lt;/pre&gt; &lt;p&gt;After that, we need to create “&lt;strong&gt;Module.xml&lt;/strong&gt;” file inside extension etc folder&lt;br ?--&gt;</span></p><p>&lt;strong&gt;app\code\VENDOR\EXTENSION\etc&lt;/strong&gt;</p><p>&lt;!--?xml <span style="color: #569cd6;">version</span>=<span style="color: #ce9178;">&quot;1.0&quot;</span>?--&gt;</p><p>现在,我们必须在同一个 etc 文件夹中再创建一个文件“Webapi.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>之后,我们需要在同一等文件夹中创建“Di.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>之后,我们需要在扩展 API 文件夹中创建“Getorderstatus.php”文件来提供响应。</p><p>app\code\VENDOR\EXTENSION\Api\</p><pre class="brush:bash;toolbar:false">&lt;!--?php&nbsp;namespace&nbsp;VENDOR\EXTENSION\Api ;&nbsp;interface&nbsp;Getorderstatus&nbsp;{&nbsp;public&nbsp;function&nbsp;getorderstatusarray();&nbsp;}&nbsp;&lt;/pre&gt;&nbsp;&lt;p&gt;Lastly,&nbsp;Create&nbsp;&quot;&lt;strong&gt;GetorderstatusModel.php&lt;/strong&gt;&quot;&nbsp;file&nbsp;inside&nbsp;model&nbsp;folder&nbsp;of&nbsp;extension.&lt;br&nbsp;?--&gt;</pre><p>&lt;strong&gt;app\code\VENDOR\EXTENSION\Model&lt;/strong&gt;</p><pre class="brush:bash;toolbar:false">&lt;!--?php&nbsp;namespace&nbsp;VENDOR\EXTENSION\Model ;&nbsp;use&nbsp;VENDOR\EXTENSION\Api\Getorderstatus;&nbsp;class&nbsp;GetorderstatusModel&nbsp;implements&nbsp;Getorderstatus&nbsp;{&nbsp;protected&nbsp;$statusCollectionFactory;&nbsp;public&nbsp;function&nbsp;__construct(&nbsp;\Magento\Sales\Model\ResourceModel\Order\Status\CollectionFactory&nbsp;$statusCollectionFactory&nbsp;)&nbsp;{&nbsp;$this-&gt;statusCollectionFactory&nbsp;=&nbsp;$statusCollectionFactory;&nbsp;}&nbsp;public&nbsp;function&nbsp;getorderstatusarray()&nbsp;{&nbsp;$options&nbsp;=&nbsp;$this-&gt;statusCollectionFactory-&gt;create()-&gt;toOptionArray();&nbsp;return&nbsp;$options;&nbsp;}&nbsp;}&nbsp;&lt;/pre&gt;&nbsp;&lt;p&gt;Now,&nbsp;Go&nbsp;to&nbsp;&lt;strong&gt;Admin&nbsp;-&gt;&nbsp;System&nbsp;-&gt;&nbsp;Integrations&lt;/strong&gt;&nbsp;and&nbsp;Get&nbsp;Access&nbsp;Token&nbsp;value&nbsp;and&nbsp;set&nbsp;authorization&nbsp;value&nbsp;into&nbsp;postman&nbsp;application.&lt;br&nbsp;?--&gt;</pre><p>今天就讲到这里!您已成功添加获取Magento 2订单状态,您可以根据使用REST API获取数据的需要自由自定义此代码。</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>在电子商务商店中,每种产品都有不同的运费以及店主收取的其他额外费用。因此,如果客户在他/她的购物车中添加了产品,则可以在购物车中以及在结帐时查看整个购物车摘要。此外,Magento将每个购物车存储在后端中称为持久购物车,所有添加的产品都绑定在一个报价项目字段中。但是,如果恢复此类购物车,则只会恢复选定的产品,而不会恢复其额外费用或运费。因此,每次您的客户在回来结账时都需要重新选择每个选项。</p><p>因此,要解决此类问题,您需要在后端创建自定义附加报价字段,该字段保存此类值并在购物车恢复时重新应用费用。要执行相同的操作,只需按照以下两个步骤将自定义字段从报价单项转换为Magento</p><p>中的订单项 首先,在以下路径创建“di.xml”文件。</p><p>app\code \Vendor \Extension\etc\</p><pre class="brush:bash;toolbar:false">&lt;pre&nbsp;class=&quot;lang:default&nbsp;decode:true&quot;&gt; &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:ObjectManager/etc/config.xsd&quot;&gt; &nbsp;&nbsp;&lt;type&nbsp;name=&quot;Magento\Quote\Model\Quote\Item\ToOrderItem&quot;&gt; &nbsp;&lt;plugin&nbsp;name=&quot;quote_item_to_order_item&quot;&nbsp;&nbsp;&nbsp;&nbsp;type=&quot;Vendor\Extension\Plugin\Quote\Convertquoteitemtoorder&quot;/&gt; &lt;/type&gt; &nbsp;&lt;/config&gt; &lt;/pre&gt;</pre><p>现在,我们需要再创建一个文件“转换报价项到订单.php”以在此路径上转换报价项。</p><p>app\code\Vendor\Extension\Plugin\Quote\</p><p><br/></p><pre class="brush:bash;toolbar:false">&lt;pre&nbsp;class=&quot;lang:default&nbsp;decode:true&quot;&gt; &lt;?php namespace&nbsp;Vendor\Extension\Plugin\Quote; class&nbsp;Convertquoteitemtoorder{ &nbsp;public&nbsp;function&nbsp;aroundConvert( &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\Magento\Quote\Model\Quote\Item\ToOrderItem&nbsp;$subject, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\Closure&nbsp;$proceed, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\Magento\Quote\Model\Quote\Item\AbstractItem&nbsp;$item, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$additional&nbsp;=&nbsp;[] &nbsp;)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$orderItem&nbsp;=&nbsp;$proceed($item,&nbsp;$additional); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$orderItem-&gt;setCustomField1($item-&gt;getCustomField1()); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$orderItem-&gt;setCustomField2($item-&gt;getCustomField2()); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$orderItem-&gt;setCustomField3($item-&gt;getCustomField3()); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$orderItem; &nbsp;} } &lt;/pre&gt;</pre><p>就是这样,通过遵循这两个简单的步骤,您可以将报价字段中的所有附加自定义字段转移到客户的最终订单列表中。您可以自由添加上面的代码操作。</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>为此,您必须将折扣可折叠小部件设置为 true,并且需要通过创建自定义扩展来覆盖两个模板文件。</p><p>首先,我们需要使用以下代码在自定义扩展中创建一个“checkout_cart_index.xml”文件。</p><p>app/code/VENDOR/EXTENSION/view/frontend/layout/</p><pre class="brush:bash;toolbar:false">&lt;pre&nbsp;class=&quot;lang:default&nbsp;decode:true&quot;&gt; &lt;?xml&nbsp;version=&quot;1.0&quot;&nbsp;encoding=&quot;UTF-8&quot;?&gt; &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;&lt;body&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;referenceContainer&nbsp;name=&quot;cart.summary&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;block&nbsp;class=&quot;Magento\Checkout\Block\Cart\Coupon&quot;&nbsp;name=&quot;checkout.cart.coupon&quot;&nbsp;as=&quot;coupon&quot;&nbsp;template=&quot;VENDOR_EXTENSION::cart/coupon.phtml&quot;/&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/referenceContainer&gt; &nbsp;&lt;/body&gt; &lt;/page&gt; &lt;/pre&gt;</pre><p>现在,您需要使用以下代码在此路径上再创建一个文件“coupon.phtml”。</p><p>app/code/VENDOR/EXTENSION/view/frontend/templates/cart/</p><pre class="brush:bash;toolbar:false">&lt;pre&nbsp;class=&quot;lang:default&nbsp;decode:true&quot;&gt; &lt;?php &nbsp; //&nbsp;@codingStandardsIgnoreFile ?&gt; &lt;div&nbsp;class=&quot;block&nbsp;discount&quot;&nbsp;id=&quot;block-discount&quot;&nbsp;data-mage-init=&#39;{&quot;collapsible&quot;:{&quot;openedState&quot;:&nbsp;&quot;active&quot;,&nbsp;&quot;active&quot;:&nbsp;true,&nbsp;&quot;saveState&quot;:&nbsp;false}}&#39;&gt; &nbsp;&lt;div&nbsp;class=&quot;title&quot;&nbsp;data-role=&quot;title&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;strong&nbsp;id=&quot;block-discount-heading&quot;&nbsp;role=&quot;heading&quot;&nbsp;aria-level=&quot;2&quot;&gt;&lt;?=&nbsp;/*&nbsp;@escapeNotVerified&nbsp;*/&nbsp;__(&#39;Apply&nbsp;Discount&nbsp;Code&#39;)&nbsp;?&gt;&lt;/strong&gt; &nbsp;&lt;/div&gt; &nbsp;&lt;div&nbsp;class=&quot;content&quot;&nbsp;data-role=&quot;content&quot;&nbsp;aria-labelledby=&quot;block-discount-heading&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;form&nbsp;id=&quot;discount-coupon-form&quot; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;action=&quot;&lt;?=&nbsp;/*&nbsp;@escapeNotVerified&nbsp;*/&nbsp;$block-&gt;getUrl(&#39;checkout/cart/couponPost&#39;)&nbsp;?&gt;&quot; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;method=&quot;post&quot; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data-mage-init=&#39;{&quot;discountCode&quot;:{&quot;couponCodeSelector&quot;:&nbsp;&quot;#coupon_code&quot;, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;removeCouponSelector&quot;:&nbsp;&quot;#remove-coupon&quot;, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;applyButton&quot;:&nbsp;&quot;button.action.apply&quot;, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;cancelButton&quot;:&nbsp;&quot;button.action.cancel&quot;}}&#39;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&nbsp;class=&quot;fieldset&nbsp;coupon&lt;?=&nbsp;strlen($block-&gt;getCouponCode())&nbsp;?&nbsp;&#39;&nbsp;applied&#39;&nbsp;:&nbsp;&#39;&#39;&nbsp;?&gt;&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input&nbsp;type=&quot;hidden&quot;&nbsp;name=&quot;remove&quot;&nbsp;id=&quot;remove-coupon&quot;&nbsp;value=&quot;0&quot;&nbsp;/&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&nbsp;class=&quot;field&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;label&nbsp;for=&quot;coupon_code&quot;&nbsp;class=&quot;label&quot;&gt;&lt;span&gt;&lt;?=&nbsp;/*&nbsp;@escapeNotVerified&nbsp;*/&nbsp;__(&#39;Enter&nbsp;discount&nbsp;code&#39;)&nbsp;?&gt;&lt;/span&gt;&lt;/label&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&nbsp;class=&quot;control&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input&nbsp;type=&quot;text&quot;&nbsp;class=&quot;input-text&quot;&nbsp;id=&quot;coupon_code&quot;&nbsp;name=&quot;coupon_code&quot;&nbsp;value=&quot;&lt;?=&nbsp;$block-&gt;escapeHtml($block-&gt;getCouponCode())&nbsp;?&gt;&quot;&nbsp;placeholder=&quot;&lt;?=&nbsp;$block-&gt;escapeHtml(__(&#39;Enter&nbsp;discount&nbsp;code&#39;))&nbsp;?&gt;&quot;&nbsp;&lt;?php&nbsp;if&nbsp;(strlen($block-&gt;getCouponCode())):&nbsp;?&gt;&nbsp;disabled=&quot;disabled&quot;&nbsp;&lt;?php&nbsp;endif;&nbsp;?&gt;&nbsp;/&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&nbsp;class=&quot;actions-toolbar&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;?php&nbsp;if&nbsp;(!strlen($block-&gt;getCouponCode())):&nbsp;?&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&nbsp;class=&quot;primary&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;button&nbsp;class=&quot;action&nbsp;apply&nbsp;primary&quot;&nbsp;type=&quot;button&quot;&nbsp;value=&quot;&lt;?=&nbsp;/*&nbsp;@escapeNotVerified&nbsp;*/&nbsp;__(&#39;Apply&nbsp;Discount&#39;)&nbsp;?&gt;&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;span&gt;&lt;?=&nbsp;/*&nbsp;@escapeNotVerified&nbsp;*/&nbsp;__(&#39;Apply&nbsp;Discount&#39;)&nbsp;?&gt;&lt;/span&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/button&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;?php&nbsp;else:&nbsp;?&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&nbsp;class=&quot;primary&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;button&nbsp;&nbsp;type=&quot;button&quot;&nbsp;class=&quot;action&nbsp;cancel&nbsp;primary&quot;&nbsp;value=&quot;&lt;?=&nbsp;/*&nbsp;@escapeNotVerified&nbsp;*/&nbsp;__(&#39;Cancel&nbsp;Coupon&#39;)&nbsp;?&gt;&quot;&gt;&lt;span&gt;&lt;?=&nbsp;/*&nbsp;@escapeNotVerified&nbsp;*/&nbsp;__(&#39;Cancel&nbsp;Coupon&#39;)&nbsp;?&gt;&lt;/span&gt;&lt;/button&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;?php&nbsp;endif;&nbsp;?&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/form&gt; &nbsp;&lt;/div&gt; &lt;/div&gt; &lt;/pre&gt;</pre><p>就是这样。如果您看到上面的“coupon.phtml”模板文件,我们已经修改了以下</p><p>代码 执行此操作后,此自定义扩展将使您的优惠券代码框保持打开状态而不会折叠。</p><p>最后,如果您发现此博客有帮助,请不要忘记与您的同事和Magento朋友分享,如果您在实现此代码时遇到任何问题,请告诉我们。</p><p>祝您编码愉快!</p><pre class="brush:bash;toolbar:false">&lt;pre&nbsp;class=&quot;lang:default&nbsp;decode:true&quot;&gt; &lt;div&nbsp;class=&quot;block&nbsp;discount&quot;&nbsp;id=&quot;block-discount&quot;&nbsp;data-mage-init=&#39;{&quot;collapsible&quot;:{&quot;openedState&quot;:&nbsp;&quot;active&quot;,&nbsp;&quot;saveState&quot;:&nbsp;false}}&#39;&gt; &lt;/pre&gt; to &lt;pre&nbsp;class=&quot;lang:default&nbsp;decode:true&quot;&gt; &lt;div&nbsp;class=&quot;block&nbsp;discount&quot;&nbsp;id=&quot;block-discount&quot;&nbsp;data-mage-init=&#39;{&quot;collapsible&quot;:{&quot;openedState&quot;:&nbsp;&quot;active&quot;,&nbsp;&quot;active&quot;:&nbsp;true,&nbsp;&quot;saveState&quot;:&nbsp;false}}&#39;&gt; &lt;/pre&gt;</pre><p><br/></p>