注文増分の長さを#00000000001から#00001に減らしたいと思います。 Magento 1用のチュートリアルを見つけましたが、Magento 2用のチュートリアルは見つかりませんでした。 誰かがこのタスクの実行方法を理解している場合は助けてください。Magento 2のsales_orderテーブルのincrement_idの長さを編集
おかげ
注文増分の長さを#00000000001から#00001に減らしたいと思います。 Magento 1用のチュートリアルを見つけましたが、Magento 2用のチュートリアルは見つかりませんでした。 誰かがこのタスクの実行方法を理解している場合は助けてください。Magento 2のsales_orderテーブルのincrement_idの長さを編集
おかげ
あなたは#00001に注文増分#00000000001の長さを短くすることができます。これを試してみてください :https://store.emizentech.com/magento2/custom-order-and-invoice-number-magento-2-0.html
をあなたのモジュールの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>
この方法では、Magentoのは、9桁の数字で作られた代わりに、既定のパターンの5桁のパターンを通過します。
これは、最初の%s
のシンボルが、の値とのテーブルに格納されたsuffix
の値に置き換えられているためです。照合は店舗のmeta_id
で行います(sales_sequence_meta
の表を参照して確認できます)。 %'.05d
パターンでは、左側に5桁のパディング数字を含む整数を必要とし、Magentoで計算された次の注文番号に置き換えられます。
、SX
上記パターンを、一次番号はPX00001SX
を解決するであろうカスタム開発されたプラグインを使用:
私はすでにhaオン(私が以前に作った既存のオブザーバー)
<event name="sales_order_place_after">
<observer name="customcheckout_customer" instance="Dufry\CustomCheckout\Model\Observer\SaveCustomer"/>
</event>
events.xmlに上
:Dオブザーバは、自動的に順序を置いた後、成功のページをレンダリングする前に、新たな顧客として顧客を保存しますオブザーバーSaveCustomer.php(以前に作成した既存のオブザーバー):
$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()
魅力的なように働きました。
以前に設定した接頭辞を保持するために、2番目の「substr」部分を作成しました。
"eav_entity_type"テーブルをチェックアウトします。私は確信していませんが、このテーブルがその責任を負っているようです。 –
ya、私はincrement_ped_lengthの値を減らしましたが、まだ変更を反映していません。 –