Magento2 编辑Magento 2上销售订单表中增量id的长度

Magento2 编辑Magento 2上销售订单表中增量id的长度,magento2,Magento2,我想将订单增量的长度#0000000000 1减少到#00001。 我找到了一些magento 1的教程,但没有找到magento 2的。 如果有人知道如何执行此任务,请提供帮助 谢谢您可以将订单长度增量#0000000000 1减少到#00001。 尝试以下操作:在模块的etc目录中,添加包含以下内容的di.xml文件: <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-inst

我想将订单增量的长度#0000000000 1减少到#00001。 我找到了一些magento 1的教程,但没有找到magento 2的。 如果有人知道如何执行此任务,请提供帮助


谢谢

您可以将订单长度增量#0000000000 1减少到#00001。
尝试以下操作:

在模块的
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\SalesSequence\Model\Sequence">
        <arguments>
            <argument name="pattern" xsi:type="string"><![CDATA[%s%'.05d%s]]></argument>
        </arguments>
    </type>
</config>

模式意味着您需要一个左边有5个填充数字的整数,该整数将替换为Magento计算的下一个订单号

例如,假设您有:

  • 前缀:PX
  • 后缀:SX

使用上述模式,第一个订单号将通过定制开发的插件解决:

我已经有一名观察员在下订单后和呈现成功页面之前自动将客户保存为新客户:

在events.xml上(我以前做过的已有观察者)

工作起来很有魅力


我做了第二个“substr”部分,以保留先前配置的前缀。

签出表“eav\u entity\u type”。我不确定,但它似乎是这个表的责任。是的,我已经减少了增量长度值,但仍然没有反映任何更改。文件位置-app/etc/di.xml Cay你解释你的代码是解决这个问题的最干净的方法。我不相信其他解决方案可以覆盖实际的PHP文件。谢谢分享。
<event name="sales_order_place_after">
    <observer name="customcheckout_customer" instance="Dufry\CustomCheckout\Model\Observer\SaveCustomer"/>
</event>
    $order = $observer->getOrder();

    $increment = $order->getIncrementId();
    if(strlen($increment) > 9){
        $newIncrement = substr($increment, -8);
        $newIncrement = substr($increment,0,1).$newIncrement;
        $order->setIncrementId($newIncrement);
    }

    ...

    $order->save()