En Magento 1, la información de inventario se almacena en un objeto de artículo de stock. Cada objeto de artículo de stock está asociado con un objeto de producto. Magento persiste en los objetos Stock Item en la cataloginventory_stock_item
tabla.
Sin embargo, cada objeto Artículo de stock tiene un objeto de Estado de stock relacionado. El estado de existencias parece ser una tabla (índice | caché | desnormalizada) que almacena el estado de existencias de un producto como en una constante entera, y le permite asociar múltiples artículos y productos de existencias con un producto diferente website_id
. Magento persiste los objetos de estado de stock en cataloginventory_stock_status
. Las constantes de clase y el esquema de tabla para esto están a continuación.
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)
Sin embargo , por razones que no están del todo claras, también hay una qty
columna en esta tabla.
¿Cuál es la relación entre estas dos qty
columnas?
¿Cuál es la fuente de la verdad qty
y cuál es el valor indexado / en caché? ¿Es el valor stock_status
simplemente una versión en caché de lo que está en la tabla de artículos de stock? ¿O hay una manera de configurar Magento para administrar las existencias a nivel de sitio web? ¿O es la relación algo diferente a lo que he descrito?
Respuestas:
Me parece que qty in
cataloginventory_stock_item
es la fuente de la verdad, y qty incataloginventory_stock_status
es el valor en caché / indexado. La reconstrucción del índice de estado de stock parece copiar siempre el valor decataloginventory_stock_item
encataloginventory_stock_status
. Si hay varios sitios web, también habrá un registro para cada combo product_id / website_id encataloginventory_stock_status
. Esto sugiere la posibilidad de diferentes niveles de existencias por sitio web, pero por lo que puedo decir, el valor de cantidad es siempre el mismo para cada uno.Creo que este puede ser el comienzo de una característica de varias existencias como lo sugiere Marius en esta publicación: El propósito de la tabla cataloginventory_stock
fuente