Magento 2-デフォルトの注文IDを変更する正しい方法は何ですか?


29

Magento 2.新規インストール後、新しい注文IDは100000001、100000002などになります。

それがより大きな数字になるようにその増分IDを変更する正しい方法は何ですか?たとえば、1555555552、155555553など。変更すると、はるかに良くなります。

Magento 1.9では、注文、請求書、または出荷のデフォルトIDを編集するには、「eav_entity_store」のデータベースの値を変更するだけでした。

Magento 2は非常に異なって見えます...

これを行うためのプラグインがいくつかあることは知っていますが、手動で行う方法を知りたいです。


こちらの質問をご覧ください:magento.stackexchange.com/questions/279454/…ShipWorks(およびその他)は、想定どおりに使用していない可能性がありますincrement_id
クリスK

回答:


31
  1. PHP Adminデータベースを開きます(PHP 7でテストしました)
  2. 次の表を検索してクリックします:sequence_order_1(これはinformation_schemaではなくデータベース自体にあります)
  3. [操作]タブをクリックし、[AUTO_INCREMENT]の下で目的の注文番号に編集します。

AUTO_INCREMENTフィールドに100500400という番号を入力し、[続行]をクリックします。それから私はテスト購入をしたが、注文IDのはまだ000000013、00000014です...
ルイス・ガルシア

1
sequence_order_1を見つけましたが、操作タブにAuto_incrementがあり、値は5です。正しい値は何ですか?
アフマドダーウィッシュ

1)変更を行う前にデータベースをバックアップします。2)5の代わりに、注文IDに必要な値、たとえば1035327500を設定します。次の注文は1035327501
マークする

どのmagentoバージョンについて話しているのですか?
フェリックス

@Felix Magento 2用
Kishan Patadia

25

phpmyadminからデータベースに移動し、

ここでは、_1はテーブル名の後のストアIDに使用されます。

Default Frontend store id is 1.マルチストアがある場合、sequence_order_2 upto sequence_order _。*のようなテーブル名を持つ各ストアのクエリを設定する必要があります

デフォルトのストアに使用されるテーブルsequence_order_1のクエリを以下に入力します。複数のストアがある場合は、以下のクエリでストアIDごとにテーブル名を設定する必要があります。

これは、フロントエンドからの注文にのみ使用されます。

sequence_order_1は、magento 2の注文ID管理に使用されます。

ALTER TABLE sequence_order_1 AUTO_INCREMENT=155555551;

次の注文IDは155555551から始まります。

請求書IDを変更する場合は、以下のクエリがINVOICEに対して定義されます

ALTER TABLE sequence_invoice_1 AUTO_INCREMENT=155555551;

出荷用 ALTER TABLE sequence_shipment_1 AUTO_INCREMENT=155555551;


これは私にはうまくいきません。いくつかのテスト買物をした後、注文IDのはまだ000000013、00000014です...
ルイス・ガルシア

素晴らしい答えです!
フゼファム


これが正しいmagentoバージョンを述べていただけますか?
フェリックス

新しい注文IDの最初の桁を変更する方法
Tirth Patel

16

以前はeav_entity_storeであったものが、sales_sequence_profileおよびでカバーされていsales_sequence_metaます。sequence_order_1注文が行われると、テーブルにデータが入力されます。


これが事実であり、機能するmagentoのバージョン番号を大まかに述べることができますか?
フェリックス

私は、これは2.0.0アップから現在のリリース2.2.1に適用されると思います。この上の行動の変化に遭遇していない
Foomanでクリストフ

2.2.4でも同じですが、テストしました。
フランクグルート

7

新しい注文IDの形式は、デフォルトで

Magento \ SalesSequence \ Model \ Sequence:

const DEFAULT_PATTERN = "%s% '。09d%s";

新しいIDを作成するsprintf()関数のパターンです。先行ゼロを削除するには、次のようにパターンをコンストラクターに渡す必要があります。

<type name="Magento\SalesSequence\Model\Sequence">
    <arguments>
        <argument name="pattern" xsi:type="string">%s%s%s</argument>
    </arguments>
</type>

または、Sequenceクラスを拡張し、必要に応じて変更します


6

上記のすべての回答は完全/部分的に正しいものですが、将来の読者に役立つように、回答を書き留めようと思いました。この回答では、次の2つの質問に対処します。

1)注文シーケンス番号の変更方法

2)注文番号にプレフィックスまたはサフィックスを追加する方法

データベースでブラインド変更を行う前に、どのシーケンステーブルが何に関連付けられているかを理解する必要があります。これは表から確認できますsales_sequence_meta

select * from sales_sequence_meta;各ストアに、そのストアに関連付けられたシーケンステーブルがあるクエリを実行します。テーブル名に注意してください:注文、請求書、クレジットメモまたは出荷。

完了したら、注文番号gotoテーブルを編集しsequence_order_1AUTO_INCREMENT値を変更する場合は、たとえばテーブルに移動します

alter table sequence_order_1 AUTO_INCREMENT=617;

これが順序順をジャンプするために必要なものです。

ここで、さらに掘り下げて、プレフィックス/サフィックスを追加して注文する必要がある場合は、次の手順に従ってさらに進んでください:

テーブルに移動sales_sequence_profileしてデータを確認する

select * from sales_sequence_profile;

prefixと「接尾辞」を確認します。最初はそうだろうNULLmeta_idテーブルからマップできる関連のプレフィックスとサフィックスの値をそこに追加できますsales_sequence_meta

これにより、すべての注文の注文プレフィックス/サフィックスが変更されます。

これがすべてに役立つことを願っています!! 乾杯!!


4


新規インストール: 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値を確認します(マルチサイトを想定) ):

  • sequence_creditmemo_0
  • sequence_creditmemo_1
  • sequence_invoice_0
  • sequence_invoice_1
  • sequence_order_0
  • sequence_order_1
  • sequence_shipment_0
  • sequence_shipment_1

上記のalterクエリを使用してそれらを変更しますが、使用する新しい値が現在のAUTO_INCREMENT値のチェックから返される値より大きいことを確認してください。

パディングをいじったり、カスタムパターンを追加する場合は、ここで他の回答を確認し、次の表を確認する必要があります。

  • sales_sequence_meta
  • sales_sequence_profile

更新:マルチストア?
マルチストアに慣れていない人のために、これは同じMagentoインストールから完全に別々のストアを実行できる機能です。これを行う一般的な理由は、他の言語をサポートするためです。バックエンドでは、これが、たとえば、構成を更新するときや他のことを行うときに、見ているストアビューを選択できる理由です(マルチストアがオンになっている場合)。

このため、Magentoは特定のテーブルの末尾にアンダースコアと数字を追加して、さまざまなストアビューを追跡します。私が提供したクエリはどのように重複したテーブルであるように見えますが、異なる番号、この場合は0または1で終わります。複数のストア/ビューがある場合、これらの数値は、たとえば_2または_3だけ増加し続けます。これにより、各ストアのIDを別々に管理できます。あるビュー(ストア)のIDシステムへの変更は、別のビューと同じである必要はありません。

この投稿の範囲外ですが、この同じ番号付けシステムがデータベース内の他のテーブルに適用されるため、各ストアビューを真に扱い、影響を与えることができます。たとえば、店舗ごとにまったく異なるテーマを持つことができます。


なぜ複数の店舗について言及し続けるのですか?シングルストアモードを有効にした場合、何が違うのでしょうか?
コンドル

1
私はこれが投稿だと答えました:「...シングルストアモードを有効にした場合、_1で終わるクエリは必要ないことに注意してください。」私が提供したクエリは、末尾に番号があり、この場合は0または1である以外は、重複したテーブルのように見えることに注意してください。マルチストアを無効にした場合、_1または_2または_3などで_0のみが表示されます。これを明確にするために更新を追加しました。
ブリザー

2

シーケンスの変更順序番号のパディングを変更するには、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に同じ注文請求書番号を追加してください


1
コアファイルのパディングパターンを編集することはお勧めできません。パディングパターンを変更するには、「表示名」のメソッドを使用する必要があります。
ティモンドグルート

1
これはどのようなマグントですか?(admin> Stores> Sales> Order Number)MAG 2.2.2を使用していますが、メニューの順序が変更されているようです。
モハメッドジョレイド

1

注文増分IDを変更する

  1. PHP Adminを開きます
  2. 次の表を検索してクリックします:sequence_order_1
  3. [操作]タブをクリックし、[AUTO_INCREMENT]の下で目的の注文番号に編集します。

別のストアの同じ手順に従う

  1. 次の表を見つけてクリックします:sequence_order_2
  2. [操作]タブをクリックし、[AUTO_INCREMENT]の下で目的の注文番号に編集します。

これにより、複数の店舗の注文番号が変更されます


0

PHPMYADMINを使用して請求書番号を調整するには

INSERT INTO sequence_order_1sequence_value)VALUES( '2000');

2000は新しい開始番号になります


0

このヒントにより、データベースMagento 2で注文番号を直接変更できます。

まず、PHP Adminデータベースを開く必要があります。次に、テーブル「sales_sequence_profile」を見つけて開きます。

その後、Magento 2 Webサイトでデフォルトの注文番号を変更できます。

a。変更注文の増分ID

b。注文番号のプレフィックスの変更

c。注文番号の接尾辞の変更

d。変更注文番号の開始値

e。パッド長を変更する

この記事に完全なチュートリアルがあります:Magento 2で注文番号を変更するための完全なチュートリアルガイド


テーブルの名前が正しくありません。「sales_sequence_profile」である必要があります
デニスヴァン

0

余分なゼロを永久に取り除く(または変更する)には、コアファイルをオーバーライドしないでください。あなたにはapp/etc/di.xml、以下を追加し、変更する"%s%'.09d%s"(この例では2 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の回答で完全に説明されています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.