Answers:
从phpmyadmin转到您的数据库,
此处_1用于表名后的商店ID。
Default Frontend store id is 1.
如果您有多个商店,则必须为每个商店设置查询,其表名称应为sequence_order_2到sequence_order _。*。
在下面的查询表中输入查询sequence_order_1用于默认存储。如果您有多个商店,则必须在以下查询中根据商店ID设置表名。
这仅用于从前端下的订单。
sequence_order_1用于magento 2中的订单ID管理。
ALTER TABLE sequence_order_1 AUTO_INCREMENT=155555551;
下一个订单ID从155555551开始。
如果要更改发票编号,则在下面为INVOICE定义查询。
ALTER TABLE sequence_invoice_1 AUTO_INCREMENT=155555551;
出货
ALTER TABLE sequence_shipment_1 AUTO_INCREMENT=155555551;
什么是以前在eav_entity_store
现在覆盖sales_sequence_profile
和sales_sequence_meta
。下sequence_order_1
订单时将填充该表。
默认情况下,新订单ID的格式由常量定义
Magento \ SalesSequence \ Model \ Sequence:
const DEFAULT_PATTERN =“%s%'。09d%s”;
sprintf()函数的模式可以创建新的id。要删除前导零,您必须将模式传递给构造函数,如下所示:
<type name="Magento\SalesSequence\Model\Sequence">
<arguments>
<argument name="pattern" xsi:type="string">%s%s%s</argument>
</arguments>
</type>
或扩展Sequence类并根据需要进行更改
尽管以上所有答案都完全/部分正确,但我还是想写下答案,因为这将对将来的读者有所帮助。该答案将解决两个问题:
1)如何更改订单序号?
2)如何在订单号上添加前缀或后缀?
在数据库中进行任何盲目更改之前,您应该了解哪个序列表与什么相关。您可以从表中检查sales_sequence_meta
运行查询,select * from sales_sequence_meta;
每个商店将具有与该商店关联的序列表。注意表名称,即:订单,发票,贷记凭证或装运。
完成后,例如,如果要编辑订单号goto表sequence_order_1
并更改AUTO_INCREMENT
值,请转到表
alter table sequence_order_1 AUTO_INCREMENT=617;
这就是跳转顺序的全部要求。
现在,如果您进行更多挖掘并且有一个要添加前缀/后缀的要求,请继续执行以下步骤:
转到表sales_sequence_profile
并检查数据
select * from sales_sequence_profile;
您将观察列prefix
和“后缀”。最初是NULL
。您可以在其中添加相关值的前缀和后缀,meta_id
可以从表中进行映射sales_sequence_meta
这将更改所有订单的订单前缀/后缀。
希望这对所有人有帮助!干杯!
全新安装:
如果您在Magento 2.2.0+上运行并且在启用了多商店的情况下运行全新安装(默认情况下已启用),则可以简单地运行以下查询,然后再通过网站下订单:
ALTER TABLE `sequence_creditmemo_0` AUTO_INCREMENT=303;
ALTER TABLE `sequence_creditmemo_1` AUTO_INCREMENT=303;
ALTER TABLE `sequence_invoice_0` AUTO_INCREMENT=303;
ALTER TABLE `sequence_invoice_1` AUTO_INCREMENT=303;
ALTER TABLE `sequence_order_0` AUTO_INCREMENT=303;
ALTER TABLE `sequence_order_1` AUTO_INCREMENT=303;
ALTER TABLE `sequence_shipment_0` AUTO_INCREMENT=303;
ALTER TABLE `sequence_shipment_1` AUTO_INCREMENT=303;
请注意,这303
只是我为我们的网站选择的编号,因为我们的旧平台在300号订单上停了下来,我希望保持某种一致性。另请注意,_1
如果启用了单存储模式,则不需要任何结尾的查询。
现有安装:
如果您已经在使用Magento 2.2.0+(或已升级到它),并且只是想增加数字,不更改填充或添加字符,只需检查下表中的当前AUTO_INCREMENT值即可(假设是多站点):
并使用上面显示的alter查询更改它们,但请确保您使用的新值大于从检查当前的AUTO_INCREMENT值获得的值。
如果您要弄乱填充或添加自定义模式,则需要在此处查看其他答案并查看下表:
更新:多商店?
对于不熟悉多商店的用户,此功能使您可以从同一Magento安装中运行完全独立的商店。这样做的常见原因是支持其他语言。在后端,这就是为什么在更新配置和执行其他操作时可以选择要查看的商店视图(如果已启用多商店)的原因。
因此,Magento将在某些表的末尾添加一个下划线和一个数字,以跟踪不同的商店视图。您会注意到我提供的查询似乎是重复的表,但是它们以不同的数字结尾(在这种情况下为0或1)。如果您有多个商店/视图,则这些数字将不断增加,例如_2或_3。这使您可以不同地管理每个商店的ID。您在一个视图(存储)中对id系统所做的更改不必在另一个视图(存储)中相同。
它超出了本文的范围,但是此相同的编号系统适用于数据库中的其他表,使您能够真正以不同的方式对待和影响每个商店视图。例如,每个商店的主题可能完全不同。
更改顺序要更改填充的订单号,请编辑Sequence.php(我相信通过di.xml会有更好的方法)
vendor/magento/module-sales-sequence/Model/Sequence.php
编辑此行
const DEFAULT_PATTERN = "%s%'.09d%s";
将“ 9”更改为所需的填充
例
const DEFAULT_PATTERN = "%s%'.05d%s";
更改前缀
In admin > Stores > Sales > Order Number >
Enter Desired prefix
为了使一切变得容易,请向Fooman添加相同的订单发票编号
您可以通过此技巧直接在数据库Magento 2中对订单号进行更改
首先,您需要打开您的PHP Admin数据库。然后找到并打开表“ sales_sequence_profile”。
之后,您可以在Magento 2网站上更改默认订单号:
一种。变更单增量编号
b。变更单编号前缀
C。更改订单号后缀
d。变更单编号起始值
e。更改焊盘长度
我在本文中看到了完整的教程:《 Magento 2中更改订单号的完整教程指南》
要永久摆脱(或更改)多余的零,您不能覆盖核心文件。在您的代码中app/etc/di.xml
添加以下内容并相应地更改"%s%'.09d%s"
值(在此示例中,填充两个00):
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<type name="Magento\Framework\DB\Sequence\SequenceInterface">
<arguments>
<argument name="pattern" xsi:type="string">%s%'.02d%s</argument>
</arguments>
</type>
</config>
Rakesh Jesadiya的答案完美描述了订单和发票编号的数据库编辑。
increment_id
预期使用。