タグ付けされた質問 「inventory」

2
在庫変更の検出
製品の在庫レベルが変化するたびに検出する必要があります。cataloginventory_stock_item_save_afterバックエンドで在庫が変更されたとき、またはフロントエンドで注文がキャンセルされたときに(Paypalを介して)トリガーされるイベントを使用して成功しましたが、フロントエンドから製品が購入されたときにトリガーされません。 私はcataloginventory_stock_item_save_afterこのようなイベントにフックしています: <global> <events> <cataloginventory_stock_item_save_after> <observers> <cataloginventory_stock_item_save_after_handler> <type>model</type> <class>stockchange/observer</class> <method>stockChange</method> </cataloginventory_stock_item_save_after_handler> </observers> </cataloginventory_stock_item_save_after> </events> <?php class FashionBunker_StockChange_Model_Observer { public function stockChange(Varien_Event_Observer $observer) { 顧客が何かを購入したときに在庫の変更をキャプチャするために別のイベントを使用する必要がありますか、それともイベントにフックした方法に何か問題がありますか?

3
複数の在庫場所または倉庫の取り扱い
Magentoデータベースには、cataloginventory_stock「デフォルト」と呼ばれる単一のエントリを持つテーブルが含まれています。これは、複数の在庫場所を処理するための開始点であることを知っています。 経験のある人がいるのか、落とし穴は何なのか疑問に思っています。 私が探しているのは: さまざまな物理的な場所(ショップ/倉庫/など)で製品在庫を追跡できる 製品の在庫が顧客の注文ごとにどこからピッキングされるかを識別できるようにする 誰かがこれに関する記事やチュートリアルへのリンクを提供したり、このパスをたどる自分の経験を共有したりすることができれば素晴らしいと思います。あなたがそれを自分で開発したか、サードパーティのモジュールを使用したかに関わらず、私はあなたから聞いてみたいです。 編集:最終的に、既存のcataloginventory_stockテーブルに行を追加する独自のマルチインベントリモジュールを作成しました。在庫の場所を確認するいくつかのオブザーバーとモデルをオーバーライドする必要がありました。多くの場所で、ストックID 1がコアにハードコードされていました。 別のプロジェクトでは、Demacのマルチインベントリロケーションモジュールを使用しました。完全ではありませんが、そのまま使用でき、うまく書かれています。ニーズに合わせて簡単に拡張およびカスタマイズできました。

3
パフォーマンス:すべての製品タイプの製品リストlist.phtmlに在庫在庫レベルを追加します
TL; DRの要件は、Magentoのフレームワークに準拠したパフォーマンスを念頭に置いて、追加のクエリ/メモリを最小限に抑えて、在庫の在庫レベルをカテゴリ製品リストページに表示することです。 スケーラビリティのためのプリロードに関するVinai Koppの記事を読んだ後。 パフォーマンスのために追加のクエリ/ロードをできるだけ少なくして、カテゴリ製品リストページ(list.phtml)に在庫在庫レベルを含める最良の方法は何ですか? 私はいくつかのアプローチを知っています: afterLoad()は、media_gallery追加のクエリなしでインクルードしてもうまく機能するように見えますが、インベントリで同じアプローチを実装することに成功していません。 $attributes = $_product->getTypeInstance(true)->getSetAttributes($_product); $media_gallery = $attributes['media_gallery']; $backend = $media_gallery->getBackend(); $backend->afterLoad($_product); product_idたとえば、キーを使用してコレクションと並行して必要なデータを収集するようにSQLに指示します。しかし、フレームワークを通じてより多くの手段を探しています。 現在、私は単に次のstock_item方法でオブジェクトをロードしています: $_product->load('stock_item')->getTotalQty(); これは機能しますが、コレクション内のすべての製品の在庫在庫合計を取得するためのクエリが追加されていることに気付きました。 ... __EAV_LOAD_MODEL__ (Mage_Catalog_Model_Product, id: stock_item, attributes: NULL) __EAV_LOAD_MODEL__ (Mage_Catalog_Model_Product, id: stock_item, attributes: NULL) __EAV_LOAD_MODEL__ (Mage_Catalog_Model_Product, id: stock_item, attributes: NULL) ... 奇妙なことに、これは動作します。魔法はMage_Eav_Model_Entity_Abstract-> load($ object、$ entityId、$ attributes)で発生します。$ attributesが空の場合、loadAllAttribute($ object)を呼び出します。したがって、$ product-> load( …

10
Magento 2:プログラムでインベントリを更新する
次のコードでは、株式データを除外してすべての情報を保存できます。Magento 2で何か変更はありますか? public function __construct( ScopeConfigInterface $scopeConfig, CollectionFactory $product, Magento\Catalog\Api\ProductRepositoryInterface $productRepository ) { $this->scopeConfig = $scopeConfig; $this->product = $product; $this->productRepository = $productRepository; } public function update(\XXXXXX\XXXXXX\Api\Data\InventoryCollectionInterface $data) { foreach ($data['list'] as $d) { $product = $this->productRepository->getById($d['entity_id']); $product->setStatus(($d['quantity'] > 0 ? 1 : 0)); $product->setUpc($d['upc']); $product->setStockData(array( 'qty' => $d['quantity'], 'is_in_stock' => …

1
テーブルcataloginventory_stockの目的
デフォルトのMagentoバージョン1.0から1.8(ce)には、cataloginventory_stockレコードが1つだけ含まれるというテーブルがあることがわかります。 stock_id stock_name 1 Default これに関連して、Mage_CatalogInventory_Model_Stock_Itemモデルにはこのメソッドがあります public function getStockId() { return 1; } その上のコメント付き@todo multi stock。 誰かがマルチストック機能を実装したいと思い、(他の多くの「機能」のように)しないことに決めたと思いますが、私にはわかりません。 だから私の質問は... この表に他の目的はありますか、それはコードの他のセクションに影響しますか、それとも新機能の開始点としてそこにありますか?
10 inventory  stock 

4
Magento Observerイベント-操作の順序
catalog_model_product_duplicateイベントに機能を注入しようとしています。このモジュールの一部は、複製された製品の在庫状況も複製されるようにすることです。現在はそうではありません。 CatalogInventoryこのイベントを観察し、いくつかの標準的な株式情報を設定しているのがわかります。地元の人より先にコアイベントが解決されることを保証できますか?ここで信頼できる操作の順序はありますか?

1
Magento 1:在庫アイテムの「qty」と在庫ステータステーブルの関係
Magento 1では、在庫情報はStock Itemオブジェクトに保存されます。各Stock Itemオブジェクトは、製品オブジェクトに関連付けられています。MagentoはStock Itemオブジェクトをcataloginventory_stock_itemテーブルに永続化します。 ただし、各Stock Itemオブジェクトには、関連するStock Statusオブジェクトがあります。在庫状況は、製品の在庫状況を整数定数として格納する(インデックス|キャッシュ|非正規化)テーブルのように見え、複数の在庫アイテムと製品を異なるに関連付けることができますwebsite_id。Magentoは在庫ステータスオブジェクトをに永続化しますcataloginventory_stock_status。このためのクラス定数とテーブルスキーマを以下に示します。 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 | …

9
プログラムで製品の在庫を設定する方法
オンラインで見つかったスニペットをいくつか試しましたが、成功しませんでした。 製品をコードで在庫/在庫なしに設定しようとすると、これは私が得た限りです: $product = Mage::getModel('catalog/product')->load( 'id' ); $stockItem = $product->getStockItem(); $stockItem->setData('manage_stock', 1); $stockItem->setData('is_in_stock', 0); $stockItem->setData('use_config_notify_stock_qty', 0); $stockItem->setData('qty', 0); $stockItem->save(); $product->save(); 管理パネルから見たときに製品情報に変更はありません。

2
在庫切れの商品はまだフロントエンドに表示されます
在庫切れの商品がmagentoのウェブサイトに表示されないようにしたい。フロントエンドに構成可能な製品が表示されないようにするために、次のことを行いました。 Configurable product inventory - out of stock Associated products inventory - out of stock, qty - 0 config settings -> quantity to become out of stock - 0 config settings -> display out of stock items - No config settings -> backorder - No これらすべての設定にもかかわらず、この製品では[カートに追加]が無効になっているのがわかります。しかし、URL経由でアクセスした場合でも、製品はサイトに表示されます。この製品が私のウェブサイトに表示されてほしくありません。 「カートに追加」なしで製品を表示すると、「在庫切れの製品を表示-いいえ」という意味のmagentoのデフォルトですか? この設定を明確にしてください。また、magentoのデフォルト設定を使用して、この製品をWebサイトから削除するにはどうすればよいですか?(バックエンドで製品を無効にしたくないので、フロントエンドで非表示にします)。ありがとう。

4
その日に在庫がなくなった製品の毎日の管理者用メール
スクリプトを設定して、管理者に毎日メールを送信して、その日に在庫切れになったものだけを知らせるようにしています。 品物がテキストファイルにメールで送信されて翌日のためにクリアされる1日の終わりまで在庫がなくなると、テキストファイルにアイテムを書き込むことなど、特別なことをする必要はありませんか? ありがとう!
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.