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_item
table.
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 qty
colonne dans ce tableau.
Quelle est la relation entre ces deux qty
colonnes?
Quelle est la source de vérité qty
et quelle est la valeur indexée / mise en cache? La valeur est-elle stock_status
simplement 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?
Réponses:
Il me semble que qty in
cataloginventory_stock_item
est la source de la vérité et qty incataloginventory_stock_status
est la valeur mise en cache / indexée. La reconstruction de l'index de l'état du stock semble toujours copier la valeur decataloginventory_stock_item
danscataloginventory_stock_status
. S'il existe plusieurs sites Web, il y aura également un enregistrement pour chaque combo product_id / website_id danscataloginventory_stock_status
. Cela suggère la possibilité de différents niveaux de stock par site Web, mais pour autant que je sache, la valeur de la quantité est toujours la même pour chacun.Je pense que cela peut être le début d'une fonctionnalité multi-stock comme suggéré par Marius dans cet article: Le but de la table cataloginventory_stock
la source