販売可能数量が製品グリッドmagento 2でゼロを示していますか?


14

実際、私の場合、販売可能数量は製品グリッドMagento 2.3ゼロを示しています

この問題のため、製品はフロントエンドに表示されません。誰かアイデアがあれば教えてください。

このため、インデックスの再作成も行われますが、それでも販売可能な数量ゼロ(0)を示しています

プログラムで数量を追加および更新しますが、販売可能な数量ゼロと表示されます


在庫切れのバックオーダーを許可して、商品が表示されるかどうかを確認してください。これは修正ではありませんが、少なくとも正確な問題が販売可能な数量であるかどうかを確認するためです。
fmsthird

修正しましたか?
fmsthird

はい、実際にはサーバーに権限の問題がありました
Hitesh Balpande

こんにちは、問題を見つけましたか?
タコ

1
@タコ、はい、
インデックスの再作成

回答:


21

データベースでは、2つのタイプがありました、

1)テーブル

2)ビュー

この問題は、データベースビューのインポート/エクスポートがMagento 2.3で作成されなかった場合に発生する可能性があります。したがって、データベースにViewsおよび inventory_stock_1テーブルを作成します。

添付画像を参照してください:

ここに画像の説明を入力してください


1
どうもありがとうございます。2時間を費やした後、私はあなたの答えから解決策を得ました。再度、感謝します。
Kamlesh Solanki

2
+1の回答
Sanjay Gohil

@Savanは、私の終わりにすでに作成されています。しかし、依然として同じ問題に直面しています
insoftservice

@insoftservice同じ問題に直面していますが、何かアイデアはありましたか?
Hardik Visa

@HardikVisaあなたはあなたの終わりにこの見解を持っていますか?はいの場合、私の最後に手動で実行しようとすると、完全な権限を付与することで解決される権限の問題が発生しました。
insoftservice

10

Previllagesエラーのため、クエリのこの行をスキップし、カートへの追加がライブサーバーで機能しませんでした。ローカルサーバーでは、この行はスキップされず、カートへの追加は正常に機能しました。

CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY INVOKER VIEW `inventory_stock_1`  AS  select distinct `legacy_stock_status`.`product_id` AS `product_id`,`legacy_stock_status`.`website_id` AS `website_id`,`legacy_stock_status`.`stock_id` AS `stock_id`,`legacy_stock_status`.`qty` AS `quantity`,`legacy_stock_status`.`stock_status` AS `is_salable`,`product`.`sku` AS `sku` from (`cataloginventory_stock_status` `legacy_stock_status` join `catalog_product_entity` `product` on((`legacy_stock_status`.`product_id` = `product`.`entity_id`))) ;

ライブサーバーでビューが作成されなかったため ここに画像の説明を入力してください


3

@Thakurの回答からDEFINER=ルート@localhost を削除する必要があったので、ここで私が使用したものを示します。

CREATE ALGORITHM=UNDEFINED SQL SECURITY INVOKER VIEW `inventory_stock_1`  AS
select distinct `legacy_stock_status`.`product_id` AS `product_id`,
`legacy_stock_status`.`website_id` AS `website_id`,
`legacy_stock_status`.`stock_id` AS `stock_id`,
`legacy_stock_status`.`qty` AS `quantity`,
`legacy_stock_status`.`stock_status` AS `is_salable`,
`product`.`sku` AS `sku`
from (`cataloginventory_stock_status` `legacy_stock_status`
join `catalog_product_entity` `product`
on((`legacy_stock_status`.`product_id` = `product`.`entity_id`))) ;

削除に失敗すると、特権エラーが発生しました。



0

同じ問題に直面していましたが、以下のクエリを実行してビューを作成した後、問題は解決しました。

CREATE ALGORITHM=UNDEFINED DEFINER=`{database_user_name}`@`localhost` SQL SECURITY INVOKER VIEW `inventory_stock_1`  AS  
    SELECT distinct `legacy_stock_status`.`product_id` AS `product_id`,
        `legacy_stock_status`.`website_id` AS `website_id`,
        `legacy_stock_status`.`stock_id` AS `stock_id`,
        `legacy_stock_status`.`qty` AS `quantity`,
        `legacy_stock_status`.`stock_status` AS `is_salable`,
        `product`.`sku` AS `sku` 
   FROM
   (
         `cataloginventory_stock_status` `legacy_stock_status` 
              join `catalog_product_entity` `product` 
                  on ((`legacy_stock_status`.`product_id` = `product`.`entity_id`))
   ) ;

0

これを修正する別の方法は、からパッチを削除し、patch_listを再実行しsetup:upgradeてコマンドを再度呼び出すことです。

を作成するためのコードSQL SECURITY INVOKERは、Magento \ InventoryCatalog \ Setup \ Patch \ Schema \ CreateLegacyStockStatusViewにあります。

次のように検索して、パッチリストからデータパッチを削除できます。

select * from patch_list where patch_name = 'Magento\InventoryCatalog\Setup\Patch\Schema\CreateLegacyStockStatusView

レコードを削除します。

再実行 setup:upgrade setup:di:compile setup:static-content:deploy

ZERO販売可能数量の商品を1つずつ、または管理者による一括アクションで再保存します。


0

この問題に関連した私の経験を共有します。同じ状況にあった人を助けることができれば幸いです。

私たちは段階的なインスタンスに取り組んでおり、すべて本番環境に移行する準備ができていました。したがって、prod envですべてを複製し、すべてのダミーの注文、レビューなどを削除するために、いくつかのSQLトランケートを起動しました。

いくつかの最終テストを行った後、当社の製品「在庫数量」は製品「販売可能数量」とは大きく異なることに気付きました。SQLビューは正常に機能しているようだったので、さらに調査しました。切り捨て命令でSQLテーブルが欠落していることがわかりました。

TRUNCATE TABLE `inventory_reservation`;

この不良少女は、過去の注文からの「出荷されていないが予約済みの製品」をそれぞれ含んでいました

もちろん、インデックスの再作成を忘れないでください:

bin/magento indexer:reindex;

-3

STORE-> CATELOG-> INVENTORY-> PRODUCTS STOCK OPTIONS-> BACKORDERS-> 0以下の数量を許可に変更しました

そして問題は解決しました

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.