Magento 1: relazione tra `qty` in articoli in stock e tabelle di stato degli stock


8

In Magento 1, le informazioni di inventario sono archiviate in un oggetto Articolo di magazzino. Ogni oggetto Articolo in magazzino è associato a un oggetto prodotto. Magento persiste gli oggetti oggetto di scorta sul cataloginventory_stock_itemtavolo.

Tuttavia, ogni oggetto Articolo in stock ha un oggetto Stato stock correlato. Lo stato dello stock sembra essere una tabella (indice | cache | de-normalizzata) che memorizza lo stato dello stock di un prodotto come in costante intera e consente di associare più articoli e prodotti a uno diverso website_id. Magento persiste gli oggetti stato stock su cataloginventory_stock_status. Le costanti di classe e lo schema di tabella per questo sono di seguito.

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)

Tuttavia , per motivi che non sono del tutto chiari, c'è anche una qtycolonna in questa tabella.

Qual è la relazione tra queste due qtycolonne?

Qual è la fonte della verità qtye qual è il valore indicizzato / memorizzato nella cache? Il valore è stock_statussemplicemente una versione cache di ciò che è nella tabella degli articoli di scorta? O c'è un modo per configurare Magento per gestire lo stock a livello di sito Web? O la relazione è qualcosa di diverso da quello che ho descritto?


1
Inoltre, il campo is_in_stock dalla tabella articoli-magazzino viene ignorato nella pagina di visualizzazione del prodotto.
MagoPsycho,

Giusto per prendere nota: una cosa che ho notato è che se un prodotto è riordinabile, la quantità può andare <0 in cataloginventory_stock_item, tuttavia cataloginventory_stock_status non scenderà mai sotto 0. Non so perché si comporti in questo modo, però.
mpchadwick,

Risposte:


7

Mi sembra che qty in cataloginventory_stock_itemsia la fonte della verità e qty in cataloginventory_stock_statussia il valore memorizzato nella cache / indicizzato. La ricostruzione dell'indice dello stato dello stock sembra copiare sempre il valore da cataloginventory_stock_itemin cataloginventory_stock_status. Se ci sono più siti Web, ci sarà anche un record per ogni combinazione product_id / website_id in cataloginventory_stock_status. Ciò suggerisce la possibilità di livelli di scorte diversi per sito Web, ma per quanto posso dire il valore della quantità è sempre lo stesso per ciascuno.

Penso che questo potrebbe essere l'inizio di una funzionalità multi-stock come suggerito da Marius in questo post: Lo scopo del catalogo delle tabelleinventory_stock

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.