文章列表


行业领导者对雇用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>

如何在Magento 2中使用标准方式编写删除SQL查询而不使用模型文件

<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>这是我执行删除SQL查询以向您展示一个演示,该演示如何在不使用Magento 2中的模型文件的情况下删除特定数量的行/记录。</p><p>为此,我使用以下代码在此路径的扩展文件夹中创建了“Index.php”文件。</p><p>app\code\Vendor\Extension\Controller\Deletequery\</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\Controller\Deletequery; use&nbsp;Magento\Framework\App\ResourceConnection; use&nbsp;Magento\Framework\App\Action\Context; class&nbsp;Index&nbsp;extends&nbsp;\Magento\Framework\App\Action\Action { &nbsp;const&nbsp;QUOTE_TABLE&nbsp;=&nbsp;&#39;quote&#39;; &nbsp;private&nbsp;$resourceConnection; &nbsp;public&nbsp;function&nbsp;__construct( &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Context&nbsp;$context, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ResourceConnection&nbsp;$resourceConnection) &nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;resourceConnection&nbsp;=&nbsp;$resourceConnection; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;parent::__construct($context); &nbsp;} &nbsp;public&nbsp;function&nbsp;execute() &nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$connection&nbsp;&nbsp;=&nbsp;$this-&gt;resourceConnection-&gt;getConnection(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$tableName&nbsp;=&nbsp;$connection-&gt;getTableName(self::QUOTE_TABLE); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$quoteId&nbsp;=&nbsp;191; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$whereConditions&nbsp;=&nbsp;[ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$connection-&gt;quoteInto(&#39;entity_id&nbsp;=&nbsp;?&#39;,&nbsp;$quoteId), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$deleteRows&nbsp;=&nbsp;$connection-&gt;delete($tableName,&nbsp;$whereConditions); &nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;&quot;Deleted&nbsp;Rows&nbsp;:&nbsp;&quot;.$deleteRows; &nbsp;} } &lt;/pre&gt;</pre><p>就是这样。使用此代码,您可以执行类似的不同SQL操作,而无需创建标准的Magento 2模型文件。</p><p><br/></p>

如何解决安装Magento 2.x后的空白页问题

<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.x后遇到相同的空白页问题,这是一个解决方案。</p><p>要先执行相同的操作,您需要打开位于以下路径的“验证器.php”文件。</p><p>vendor\magento\framework\View\Element\Template\File\Validator.php</p><p>大约在第 133 行左右,你会发现这个函数。</p><p>protected function isPathInDirectories($path, $directories)</p><p>现在在这个函数中找到这个代码。</p><p>$<span style="color: #569cd6;">realPath</span> = $this-&gt;fileDriver-&gt;getRealPath($path)<span style="color: #6a9955;">;</span></p><p>并将其替换为以下代码。</p><p>$<span style="color: #569cd6;">realPath</span> = str_replace(<span style="color: #ce9178;">&#39;</span><span style="color: #d7ba7d;">\\</span><span style="color: #ce9178;">&#39;</span>, <span style="color: #ce9178;">&#39;/&#39;</span>, $this-&gt;fileDriver-&gt;getRealPath($path))<span style="color: #6a9955;">;</span></p><p>就是这样,现在打开命令行界面 (CLI) 并运行以下命令。</p><pre class="brush:bash;toolbar:false">php&nbsp;bin/magento&nbsp;cache:clean php&nbsp;bin/magento&nbsp;cache:flush php&nbsp;bin/magento&nbsp;indexer:reindex php&nbsp;bin/magento&nbsp;setup:upgrade php&nbsp;bin/magento&nbsp;setup:static-content:deploy&nbsp;-f</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>Magento是为电子商务CMS打造的之一,以其功能,灵活的代码结构和性能而闻名。它使用 MySQL 作为存储后端,以表格格式存储和检索数据。它存储所有有用信息的位置,例如客户数据,订单数据和配置。</p><p>但是很多时候,您的客户无法在商店前端登录,或者他们忘记了重置详细信息或商店电子邮件不起作用,在这种情况下如何重置客户帐户的密码?如果您是新手,则解决客户的登录问题变得更加困难。但是,如果您是Magento专家,则可以轻松重置密码并恢复其登录的一些技巧。因此,我们再次使用了一个小型PHP脚本,您可以使用该脚本快速重置客户帐户密码。</p><p>只需使用以下代码在Magento根目录中创建一个“change_password.php”文件。不要忘记指定要在代码中设置的客户 ID 和密码。</p><pre class="brush:bash;toolbar:false">&lt;?php use&nbsp;Magento\Framework\AppInterface; try&nbsp;{ &nbsp;require_once&nbsp;__DIR__&nbsp;.&nbsp;&#39;/app/bootstrap.php&#39;; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(\Exception&nbsp;$e)&nbsp;{ &nbsp;echo&nbsp;&#39;Autoload&nbsp;error:&nbsp;&#39;&nbsp;.&nbsp;$e-&gt;getMessage(); &nbsp;exit(1); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try{ &nbsp;$bootstrap&nbsp;=&nbsp;\Magento\Framework\App\Bootstrap::create(BP,&nbsp;$_SERVER); &nbsp;$objectManager&nbsp;=&nbsp;$bootstrap-&gt;getObjectManager(); &nbsp;$appState&nbsp;=&nbsp;$objectManager-&gt;get(&#39;\Magento\Framework\App\State&#39;); &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$customerRepositoryInterface&nbsp;=&nbsp;$objectManager-&gt;get(&#39;\Magento\Customer\Api\CustomerRepositoryInterface&#39;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$customerRegistry&nbsp;=&nbsp;$objectManager-&gt;get(&#39;\Magento\Customer\Model\CustomerRegistry&#39;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$encryptor&nbsp;=&nbsp;$objectManager-&gt;get(&#39;\Magento\Framework\Encryption\EncryptorInterface&#39;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$appState-&gt;setAreaCode(&#39;frontend&#39;); &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$customerId&nbsp;=&nbsp;1;&nbsp;//&nbsp;here&nbsp;assign&nbsp;your&nbsp;customer&nbsp;id &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$password&nbsp;=&nbsp;&quot;custom_password&quot;;&nbsp;//&nbsp;set&nbsp;your&nbsp;custom&nbsp;password &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$customer&nbsp;=&nbsp;$customerRepositoryInterface-&gt;getById($customerId);&nbsp;//&nbsp;_customerRepositoryInterface&nbsp;is&nbsp;an&nbsp;instance&nbsp;of&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\Magento\Customer\Api\CustomerRepositoryInterface &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$customerSecure&nbsp;=&nbsp;$customerRegistry-&gt;retrieveSecureData($customerId);&nbsp;//&nbsp;_customerRegistry&nbsp;is&nbsp;an&nbsp;instance&nbsp;of&nbsp;\Magento\Customer\Model\CustomerRegistry &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$customerSecure-&gt;setRpToken(null); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$customerSecure-&gt;setRpTokenCreatedAt(null); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$customerSecure-&gt;setPasswordHash($encryptor-&gt;getHash($password,&nbsp;true));&nbsp;//&nbsp;here&nbsp;_encryptor&nbsp;is&nbsp;an&nbsp;instance&nbsp;of&nbsp;\Magento\Framework\Encryption\EncryptorInterface &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$customerRepositoryInterface-&gt;save($customer); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;&#39;Successfully&nbsp;Changes&nbsp;Your&nbsp;Password.&#39;; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(\Exception&nbsp;$e){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print_r($e-&gt;getMessage()); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</pre><p>就是这样。成功执行脚本后,您的客户将能够使用定义的密码登录其帐户。在这种紧急情况下,使用PHP脚本重置密码成为开发人员的救星。</p><p><br/></p>

如何在不使用Magento 2中的模型文件的情况下创建更新查询

<h5 style="color:red;">系统学习magento二次开发,推荐小册:<a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank">《Magento中文全栈二次开发 》</a></h5> <div class="image-container"> <p> <a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank"> <img src="https://www.maxiaoke.com/uploads/images/20230218/bb9c82995c24d1105676e02f373755f5.jpg" alt="Magento中文全栈二次开发"> </a> </p> </div> <div class="text-container" style="font-size:14px; color:#888"> <p>本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。</p> </div> <hr><p>有时开发人员想要执行数据库操作,例如存储某些数据、修改数据或在编码过程中删除数据。但是Magento中有一定的编码标准。根据这些标准,开发人员必须创建一个模型文件才能执行任何SQL查询。对于电子商务商店来说,这是一个近乎完美的平台中的一个忙碌的困境。</p><p>但是,如果可以在不使用模型文件的情况下执行这些SQL查询,该怎么办?相信我,这是可能的。今天的博客也是关于同样的。在这里,我将向您展示如何执行更新查询。在下面的代码中显示了更新,它显示了如何在不使用模态文件的情况下执行任意次数的更新。那么,让我们开始吧...??</p><p>最初,为了执行它,您需要在我的扩展文件夹中创建一个“Index.php”文件,该文件位于下面定义的路径中。</p><p>app\code\Vendor\Extension\Controller\Deletequery\</p><p>创建文件夹后,您需要应用以下代码才能执行更新操作。</p><pre class="brush:bash;toolbar:false">&lt;?php namespace&nbsp;Vendor\Extension\Controller\Updatequery;&nbsp; use&nbsp;Magento\Framework\App\ResourceConnection;&nbsp; use&nbsp;Magento\Framework\App\Action\Context;&nbsp; class&nbsp;Index&nbsp;extends&nbsp;\Magento\Framework\App\Action\Action&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;QUOTE_TABLE&nbsp;=&nbsp;&#39;[TABLE_NAME]&#39;; &nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;$resourceConnection; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;__construct(&nbsp;Context&nbsp;$context,&nbsp;ResourceConnection&nbsp;$resourceConnection)&nbsp;{&nbsp;$this-&gt;resourceConnection&nbsp;=&nbsp;$resourceConnection; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;parent::__construct($context); &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;execute() &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$connection&nbsp;&nbsp;=&nbsp;$this-&gt;resourceConnection-&gt;getConnection(); &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$data&nbsp;=&nbsp;[&quot;field1&quot;=&gt;3,&quot;field2&quot;=&gt;15];&nbsp;//&nbsp;you&nbsp;can&nbsp;use&nbsp;as&nbsp;per&nbsp;your&nbsp;requirement &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$id&nbsp;=&nbsp;1; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$where&nbsp;=&nbsp;[&#39;entity_id&nbsp;=&nbsp;?&#39;&nbsp;=&gt;&nbsp;(int)$id]; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$tableName&nbsp;=&nbsp;$connection-&gt;getTableName(self::QUOTE_TABLE); &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$updatedRows=$connection-&gt;update($tableName,&nbsp;$data,&nbsp;$where); &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;&quot;Updated&nbsp;Rows&nbsp;:&nbsp;&quot;.$updatedRows; &nbsp;&nbsp;&nbsp;&nbsp;} }</pre><p>就是这样。借助此代码,您可以执行多个 SQL 更新操作,而无需创建模型文件。不创建标准的Magento 2模型文件在您的开发阶段会非常有用。</p><p><br/></p>