Dans Magento 1, les informations d'inventaire sont stockées dans un objet Article en stock. Chaque objet de stock est associé à un objet produit. Magento persiste les objets Article Stock dans la cataloginventory_stock_itemtable.
Cependant, chaque objet Article de stock a un objet État de stock associé. L'état du stock semble être une table (index | cache | dénormalisée) qui stocke l'état du stock d'un produit sous la forme d'une constante entière et vous permet d'associer plusieurs articles en stock et produits à un autre website_id. Magento conserve les objets d'état des stocks dans le cataloginventory_stock_status. Les constantes de classe et le schéma de table pour cela sont ci-dessous.
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)
Cependant , pour des raisons qui ne sont pas entièrement claires, il existe également une qtycolonne dans ce tableau.
Quelle est la relation entre ces deux qtycolonnes?
Quelle est la source de vérité qtyet quelle est la valeur indexée / mise en cache? La valeur est-elle stock_statussimplement une version mise en cache de ce qui est dans la table des articles en stock? Ou existe-t-il un moyen de configurer Magento pour gérer les stocks au niveau du site Web? Ou la relation est-elle autre chose que ce que j'ai décrit?