Hast du dich je gefragt, wie Magento die increment_id
Werte für Bestellungen, Rechnungen etc. generiert und wie man diesen Mechnismus nutzen oder erweitern kann? Vielleicht hast du die eav_entity_store
Tabelle entdeckt, die die jeweils letzte increment id pro Entity-Typ und Store enthält, wobei je Store ggf. ein unterschiedlicher Präfix verwendet wird:
mysql> select * from eav_entity_store; +-----------------+----------------+----------+------------------+-------------------+ | entity_store_id | entity_type_id | store_id | increment_prefix | increment_last_id | +-----------------+----------------+----------+------------------+-------------------+ | 1 | 5 | 1 | 1 | 100000090 | | 2 | 6 | 1 | 1 | 100000050 | | 3 | 8 | 1 | 1 | 100000027 | | 4 | 7 | 1 | 1 | 100000005 | | 5 | 1 | 0 | 0 | 000000011 | | 6 | 5 | 2 | 2 | 200000001 | | 7 | 5 | 3 | 3 | 300000002 | | 8 | 8 | 3 | 3 | 300000001 | | 9 | 6 | 3 | 3 | 300000001 | +-----------------+----------------+----------+------------------+-------------------+ 9 rows in set (0.00 sec)
In diesem Artikel erkläre ich, wie dieses System für andere Entities genutzt werden kann.
Zunächst mal, die Standard-Methode funktioniert nur mit EAV Entities, nur mit einem Attribut pro Entity und dessen Name muss increment_id
sein. Ich erkläre gleich aber noch, wie diese Beschränkungen umgangen werden können.