有一个事实是,许多商店所有者希望更改用于Order,Invoice和Shipment的增量ID的默认格式。有多种原因需要自定义增量ID。首先,更复杂的ID字符串可以为店主包含更多有用的信息,但对竞争对手和客户而言则变得更难理解。
此外,由于敏感数字是隐藏的,因此业务数据(例如订单数)对于竞争对手来说是不完整的,因此可以得到安全保护。此外,规则的数字字符串可以吸引并打动客户,使您知道您的企业受欢迎且专业。
1.如何自定义增量ID,在Magento 2 Default中添加前缀和后缀?
可以通过使用代码和命令直接手动更改数据库来实现此ID修改。让我们仔细研究如下:第一步是打开PHP Admin数据库。然后,您将找到表“ sale_sequence_profile”并检查数据。这里主要值包括:profile_id
meta_id
,prefix
,suffix
,start_value
,step
。
订单ID的格式默认定义为下图
如果您不想编辑模块核心,可以通过creating etc/di.xml
以下方式进行更改:
<?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%'.06d%s</argument>
</arguments>
</type>
</config>
整个过程可以表示为以下数学公式:
在Magento Default中,
- Sequence_value从1开始,并在下一个订单/发票/装运中增加1。
- 既START_VALUE和步骤都设置1
- 前缀和后缀未设置为可用(NULL)
如果将这些值放到上面的公式中,则初始订单增量ID将为:
如您所见,Increment_id随内部的各种属性而变化,例如prefix,sequence_value,start_value,step,X digits,后缀。要更改这些特定属性,应添加相关命令。
这里有些例子:
如何更改订单前缀?
在数据库上添加以下命令: UPDATE sales_sequence_profile SET prefix = X WHERE meta_id = 5;
将X替换为所需的前缀(例如:ORD),然后运行查询。如果您希望禁用前缀,请删除引号并设置X = NULL
如何更改后缀顺序?
在数据库上添加以下命令:
UPDATE sales_sequence_profile SET suffix= X WHERE meta_id = 5;
将X替换为所需的后缀,然后运行查询。如果您希望禁用后缀,请删除引号并设置X = NULL
如何更改连续订单的步骤?
在数据库上添加以下命令:
UPDATE sales_sequence_profile SET step = X WHERE meta_id = 5;
将X替换为所需的步骤数,然后运行查询
order_number = prefix + ((sequence_value – start_value) * step + start_value) {padded to X digits} + suffix
进行各种更改后的示例:
更改包括:
step = ‘5’’ , prefix = ‘ORD-’ , suffix = ‘-S1’, start_value = ‘1’ , DEFAULT_PATTERN = “%s%’.03d%s”. And last sequence_value = 2 => next sequence_value = 3
=>新的增量ID = ORD +(3-1)* 5 + 1 {填充为3位数字} + S1
因此,修改后的订单增量ID为ORD-011-S1