In Magento 1 werden Inventarinformationen in einem Lagerartikelobjekt gespeichert. Jedes Lagerartikelobjekt ist einem Produktobjekt zugeordnet. Magento behält Stock Item-Objekte in der cataloginventory_stock_item
Tabelle bei.
Jedes Lagerartikelobjekt verfügt jedoch über ein zugehöriges Lagerstatusobjekt. Lagerstatus erscheint ein sein (Index | Cache | de-normalisiert) Tisch speichert ein Lagerbestand des Produktes als in Integer - Konstante, und ermöglicht es Ihnen , mehr verfügbaren Teile und Produkte mit einem anderen zu verbinden website_id
. Magento behält Lagerstatusobjekte bei cataloginventory_stock_status
. Die Klassenkonstanten und das Tabellenschema hierfür sind unten aufgeführt.
class Mage_CatalogInventory_Model_Stock_Status extends Mage_Core_Model_Abstract
{
const STATUS_OUT_OF_STOCK = 0;
const STATUS_IN_STOCK = 1;
}
mysql> describe cataloginventory_stock_status;
+--------------+----------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+----------------------+------+-----+---------+-------+
| product_id | int(10) unsigned | NO | PRI | NULL | |
| website_id | smallint(5) unsigned | NO | PRI | NULL | |
| stock_id | smallint(5) unsigned | NO | PRI | NULL | |
| qty | decimal(12,4) | NO | | 0.0000 | |
| stock_status | smallint(5) unsigned | NO | | NULL | |
+--------------+----------------------+------+-----+---------+-------+
5 rows in set (0.01 sec)
Aus Gründen, die nicht ganz klar sind, enthält diese Tabelle jedoch auch eine qty
Spalte.
Welche Beziehung besteht zwischen diesen beiden qty
Spalten?
Welches ist die Quelle der Wahrheit qty
und welches ist der indizierte / zwischengespeicherte Wert? Ist der Wert in stock_status
einer zwischengespeicherten Version von dem, was in der Lagerartikeltabelle enthalten ist? Oder gibt es eine Möglichkeit, Magento für die Verwaltung von Lagerbeständen auf Website-Ebene zu konfigurieren? Oder ist die Beziehung etwas anderes als das, was ich beschrieben habe?
Antworten:
Es sieht für mich so aus, als ob Menge in
cataloginventory_stock_item
die Quelle der Wahrheit ist und Menge incataloginventory_stock_status
der zwischengespeicherte / indizierte Wert. Das Neuerstellen des Bestandsstatusindex scheint immer den Wert voncataloginventory_stock_item
nach zu kopierencataloginventory_stock_status
. Wenn mehrere Websites vorhanden sind, wird für jede Kombination aus product_id / website_id ein Datensatz erstelltcataloginventory_stock_status
. Dies deutet auf die Möglichkeit unterschiedlicher Lagerbestände pro Website hin, aber soweit ich das beurteilen kann, ist der Mengenwert für jeden immer gleich.Ich denke, dies könnten die Anfänge eines Multi-Stock-Features sein, wie von Marius in diesem Beitrag vorgeschlagen: Der Zweck der Tabelle cataloginventory_stock
quelle