修改magento订单模块中的订单ID的起始前缀

1,886 人次阅读
没有评论

共计 4349 个字符,预计需要花费 11 分钟才能阅读完成。

magento功能很强大,冗余数据也很多。在开发过程中难免会有很多测试的数据,如何清理呢?另外,客户有好多个magento站点,使用同一个信用卡网关来接受支付,如何才能将各个站点的订单ID的前缀修改成不同的,而不是统一的都是从1000开头的那样。

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_last_id = 30000000
where eav_entity_type . entity_type_code = ‘order’ ;

这样,下一个订单号就会变成300000001。

或者:直接修改increment_prefix:用phpadmin进入到表eav_entity_type中,查看
entity_type_code的值为order的记录对应的entity_type_id对应的ID值,然后进入eav_entity_store表修改entity_type_id的值为上面找到的那个ID的记录对应的increment_prefix。如果有注意可能就会发现不同的store view已经是使用了不同的前缀了。

下面的这个试用于清空后设置相关的ID起始前缀。(后来想了一下,其实本来就不用这么复杂去弄数据库,我们直接弄个字段让用户可以编辑,然后修改一下后台订单的显示模板把这个前缀硬加在前面其实是最轻量的实现方式了)

.清空magento的所有测试数据

SET FOREIGN_KEY_CHECKS=0;

– reset dashboard search queries
TRUNCATE `catalogsearch_query`;
ALTER TABLE `catalogsearch_query` AUTO_INCREMENT=1;

reset sales order info
TRUNCATE `sales_order`;
TRUNCATE `sales_order_datetime`;
TRUNCATE `sales_order_decimal`;
TRUNCATE `sales_order_entity`;
TRUNCATE `sales_order_entity_datetime`;
TRUNCATE `sales_order_entity_decimal`;
TRUNCATE `sales_order_entity_int`;
TRUNCATE `sales_order_entity_text`;
TRUNCATE `sales_order_entity_varchar`;
TRUNCATE `sales_order_int`;
TRUNCATE `sales_order_text`;
TRUNCATE `sales_order_varchar`;
TRUNCATE `sales_flat_quote`;
TRUNCATE `sales_flat_quote_address`;
TRUNCATE `sales_flat_quote_address_item`;
TRUNCATE `sales_flat_quote_item`;
TRUNCATE `sales_flat_quote_item_option`;
TRUNCATE `sales_flat_order_item`;
TRUNCATE `sendfriend_log`;
TRUNCATE `tag`;
TRUNCATE `tag_relation`;
TRUNCATE `tag_summary`;
TRUNCATE `wishlist`;
TRUNCATE `log_quote`;
TRUNCATE `report_event`;

ALTER TABLE `sales_order` AUTO_INCREMENT=1;
ALTER TABLE `sales_order_datetime` AUTO_INCREMENT=1;
ALTER TABLE `sales_order_decimal` AUTO_INCREMENT=1;
ALTER TABLE `sales_order_entity` AUTO_INCREMENT=1;
ALTER TABLE `sales_order_entity_datetime` AUTO_INCREMENT=1;
ALTER TABLE `sales_order_entity_decimal` AUTO_INCREMENT=1;
ALTER TABLE `sales_order_entity_int` AUTO_INCREMENT=1;
ALTER TABLE `sales_order_entity_text` AUTO_INCREMENT=1;
ALTER   TABLE  `sales_order_entity_varchar` AUTO_INCREMENT=1;
ALTER TABLE `sales_order_int` AUTO_INCREMENT=1;
ALTER TABLE `sales_order_text` AUTO_INCREMENT=1;
ALTER TABLE `sales_order_varchar` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_address` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_address_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_item_option` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_item` AUTO_INCREMENT=1;
ALTER TABLE `sendfriend_log` AUTO_INCREMENT=1;
ALTER TABLE `tag` AUTO_INCREMENT=1;
ALTER TABLE `tag_relation` AUTO_INCREMENT=1;
ALTER TABLE `tag_summary` AUTO_INCREMENT=1;
ALTER TABLE `wishlist` AUTO_INCREMENT=1;
ALTER TABLE `log_quote` AUTO_INCREMENT=1;
ALTER TABLE `report_event` AUTO_INCREMENT=1;

.- Reset all ID counters
TRUNCATE `eav_entity_store`;
ALTER TABLE `eav_entity_store` AUTO_INCREMENT=1;

SET FOREIGN_KEY_CHECKS=1;

set appropriate prefixes for orders, invoices, shipments, credit memos
INSERT INTO `YOUR_DB_NAME`.`eav_entity_store` (`entity_store_id` ,`entity_type_id` ,`store_id` ,`increment_prefix` ,`increment_last_id`) VALUES ( ’1′ , ’11′ , ’1′ , ’1′ , ’000000000′ );
update `eav_entity_store` set `increment_prefix`= 1 where `entity_type_id`= ’4′ and `store_id`= ’1′ ;
update `eav_entity_store` set `increment_last_id`= ’000000000′ where `entity_type_id`= ’4′ and `store_id`= ’1′ ;

INSERT INTO `YOUR_DB_NAME`.`eav_entity_store` (`entity_store_id` ,`entity_type_id` ,`store_id` ,`increment_prefix` ,`increment_last_id`) VALUES ( ’2′ , ’16′ , ’1′ , ’2′ , ’000000000′ );
update `eav_entity_store` set `increment_prefix`= 2 where `entity_type_id`= ’18′ and `store_id`= ’1′ ;
update `eav_entity_store` set `increment_last_id`= ’000000000′ where `entity_type_id`= ’18′ and `store_id`= ’1′ ;

INSERT INTO `YOUR_DB_NAME`.`eav_entity_store` (`entity_store_id` ,`entity_type_id` ,`store_id` ,`increment_prefix` ,`increment_last_id`) VALUES ( ’3′ , ’19′ , ’1′ , ’3′ , ’000000000′ );
update `eav_entity_store` set `increment_prefix`= 3 where `entity_type_id`= ’24′ and `store_id`= ’1′ ;
update `eav_entity_store` set `increment_last_id`= ’000000000′ where `entity_type_id`= ’24′ and `store_id`= ’1′ ;

INSERT INTO `YOUR_DB_NAME`.`eav_entity_store` (`entity_store_id` ,`entity_type_id` ,`store_id` ,`increment_prefix` ,`increment_last_id`) VALUES ( ’4′ , ’23′ , ’1′ , ’4′ , ’000000000′ );
update `eav_entity_store` set `increment_prefix`= 4 where `entity_type_id`= ’28′ and `store_id`= ’1′ ;
update `eav_entity_store` set `increment_last_id`= ’000000000′ where `entity_type_id`= ’28′ and `store_id`= ’1′ ;

正文完
 0