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?