注文増分プレフィックスを変更する方法
-
13-12-2019 - |
質問
私は(歴史的な理由から)ID 1,3,4、および7を持っている4つの異なる店景色を持つ店舗(Magento CE 1.6.2)を運営しています(歴史的な理由から)。オーダー番号はこの10000001,30000001,40000001のように見えています。70000001。
Magento CE 1.9.1でブランドの新規インストールを設定しましたが、これで店頭IDは1,2,3,4 ...
です。古い状況でこれを変更する方法は?
私はこの投稿に出会いました - >
解決
store_id
データベーステーブルの[core_store
]列にあるストアのIDを編集するだけです。外部キーのために、これは他のすべてのテーブルで更新されます。
さらに更新する必要があります。
-
default_store_id
テーブル の -
core_store_group
列
コメントしているように、実際のデータベースIDを変更するとビットラジカルがあります。また、まだeav_entity_store
テーブルを更新する必要があります。
そのため、インクリメントIDのストアの設定ごとに設定することもできます。eav_entity_store
テーブルでこれを行うことができます。
- ストアID 1の場合は、
increment_prefix
を1 に設定します。
- ストアID 2の場合は、
increment_prefix
を3 に設定します。
- Store ID 3の場合は、
increment_prefix
を4 に設定します。
- Store ID 4の場合は、
increment_prefix
を7 に設定します。
他のヒント
RAW SQL文ではなくモデルラッパーを使用してください。
例:
$productEntityType = Mage::getModel('eav/entity_type')
->loadByCode(Mage_Catalog_Model_Product::ENTITY);
$entityStoreConfig = Mage::getModel('eav/entity_store')
->loadByEntityStore($productEntityType->getId(), 0);
$entityStoreConfig->setEntityTypeId($productEntityType->getId())
->setStoreId(0)
->setIncrementPrefix($prefix)
->setIncrementLastId($lastId)
->save();
.
見る:
-
https://www.schmengler-se.de/en/2014/12/magento-tutorial-use-increment-models-generate-ids-or-skus/ - https://www.atwix.com/magento/カスタムオーダーと顧客番号/
私はさまざまな理由でこれを何度も行わなければなりませんでした、そしてこれは私がすることです:
このクエリには、entity_type_code= order
のみのインクリメントIDが表示されます。SELECT * FROM eav_entity_store join eav_entity_type ON eav_entity_type.entity_type_id = eav_entity_store.entity_type_id
WHERE eav_entity_type.entity_type_code='order';
.
あなたが更新したい行を見つけたらあなたはこのようにそれらを変更することができます:
UPDATE eav_entity_store
INNER JOIN eav_entity_type ON eav_entity_type.entity_type_id = eav_entity_store.entity_type_id
SET eav_entity_store.increment_prefix='X'
WHERE eav_entity_type.entity_type_code='order' and eav_entity_store.eav_entity_store_id = {row_id_here};
.
increment_last_idの値に既にIncrement_prefixが含まれているので、通常、Increment_Last_IDから古いIncrement_Prefixを削除しました。
予約済みのincrement_order_idを使用して引用符を指定した場合は、rest_id で注文を表示することができます。更新後の新しい引用符の生成を開始したら、すべて大丈夫です。
通常、私の開発環境では、 is_active= 0 にすべての引用符を設定してください。
詳細についてはこちら:
本当にマゼントDBへの直接クエリを避けてください。可能であれば、これを実行するインストールまたはアップグレードスクリプトを持つ単純なモジュールを作成します。たとえば、以下のスクリプトを使用して、増分IDとインクリメントプレフィックスを変更できます。
<?php
$this->startSetup();
/*
* Get the resource model
*/
$resource = Mage::getSingleton('core/resource');
/*
* Retrieve the write connection
*/
$writeConnection = $resource->getConnection('core_write');
/*
* Retrieve our table name
*/
$table = $resource->getTableName('eav/entity_store');
$table2=$resource->getTableName('eav/entity_type');
$query = "UPDATE {$table}
INNER JOIN {$table2} ON {$table2}.entity_type_id ={$table}.entity_type_id
SET {$table}.increment_last_id='XXXXXXXXX'
WHERE {$table2}.entity_type_code='order' AND eav_entity_store.store_id = 'Y'";
/*
* Execute the query
*/
$writeConnection->query($query);
$this->endSetup();
.
ここで、xxxxxxxxxはあなたが始めるためにあなたが始めるためにあなたが始めるためにあなたが始める店舗IDであるあなたの増分IDです。
実際のプレフィックスを変更するには、以下のクエリを使用します。
$query = "UPDATE {$table}
INNER JOIN {$table2} ON {$table2}.entity_type_id ={$table}.entity_type_id
SET {$table}.increment_prefix='X'
WHERE {$table2}.entity_type_code='order' AND eav_entity_store.store_id = 'Y'";
.
ここで、xはあなたが使いたいプレフィックスで、あなたがこれをやりたいSotre IDであることがあります。