Magento 1: Hubungan Antara `qty` dalam Stok Item, dan Tabel Status Stok

8

Dalam Magento 1, informasi Persediaan disimpan dalam objek Item Saham. Setiap objek Stok Item dikaitkan dengan objek produk. Magento tetap objek Stock Item ke atas cataloginventory_stock_itemmeja.

Namun, setiap objek Stok Item memiliki objek Status Stok terkait. Status Stok tampaknya menjadi tabel (indeks | cache | de-dinormalisasi) yang menyimpan status stok produk sebagai konstanta integer, dan memungkinkan Anda untuk mengaitkan beberapa item stok dan produk dengan yang berbeda website_id. Magento tetap mempertahankan status stok objek ke cataloginventory_stock_status. Konstanta kelas dan skema tabel untuk ini ada di bawah ini.

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)

Namun , untuk alasan yang tidak sepenuhnya jelas, ada juga sebuah qtykolom dalam tabel ini.

Apa hubungan antara kedua qtykolom ini?

Yang merupakan sumber kebenaran qtydan yang merupakan nilai diindeks / di-cache? Apakah nilai stock_statushanya versi yang di-cache dari apa yang ada di tabel item persediaan? Atau adakah cara untuk mengonfigurasi Magento untuk mengelola stok di tingkat situs web? Atau apakah hubungan itu sesuatu yang berbeda dari yang telah saya jelaskan?

Alan Storm
sumber
1
Juga, is_in_stock isian dari tabel stok-barang diabaikan di halaman tampilan produk.
MagePsycho
Hanya untuk membuat catatan - satu hal yang saya perhatikan adalah bahwa jika suatu produk dapat dipesan kembali qty dapat masuk <0 di cataloginventory_stock_item, namun cataloginventory_stock_status tidak akan pernah turun di bawah 0. Namun, saya tidak tahu mengapa berperilaku seperti ini.
mpchadwick

Jawaban:

7

Bagiku qty in cataloginventory_stock_itemadalah sumber kebenaran, dan qty in cataloginventory_stock_statusadalah nilai yang di-cache / diindeks. Membangun kembali indeks Status Stok tampaknya selalu menyalin nilai dari cataloginventory_stock_itemke cataloginventory_stock_status. Jika ada beberapa situs web, akan ada juga catatan untuk setiap kombo product_id / website_id cataloginventory_stock_status. Ini menunjukkan kemungkinan tingkat stok yang berbeda per situs web, tetapi sejauh yang saya tahu nilai qty selalu sama untuk masing-masing.

Saya pikir ini mungkin merupakan awal dari fitur multi-saham seperti yang disarankan oleh Marius dalam posting ini: Tujuan katalog tabelinventory_stock

Zeke Farwell
sumber