Verkaufbare Menge zeigt Null im Produktraster Magento 2?

14

Eigentlich in meinem Fall absatzfähige Menge zeigt Null in der Produkt - Grid Magento 2.3 .

Aufgrund dieses Problems werden Produkte nicht im Frontend angezeigt. Wenn jemand eine Idee hat, dann sag es mir bitte.

Dafür wird ebenfalls eine Neuindizierung durchgeführt, aber die verkaufsfähige Menge zeigt immer noch Null (0).

Programmgesteuerte Menge hinzufügen und aktualisieren, aber die verkaufsfähige Menge zeigt Null an .

Hitesh Balpande
quelle
Versuchen Sie, eine Fehlbestellung zuzulassen, und prüfen Sie, ob die Produkte angezeigt werden. Dies ist keine Lösung, aber zumindest um zu überprüfen, ob das genaue Problem die verkaufsfähige Menge ist.
3.
Hast du es repariert?
3.
Ja, tatsächlich gab es ein Berechtigungsproblem in unserem Server
Hitesh Balpande
Hallo, hast du das Problem herausgefunden?
Octopus
1
@ Octopus, ja Reindex hat immer funktioniert, aber es gab eine Erlaubnis im Server, dann ist es gelöst
Hitesh Balpande

Antworten:

21

In der Datenbank gab es zwei Typen:

1) Tabellen

2) Ansichten

Das Problem wird möglicherweise verursacht wird, wenn Import / Export DataBase Ansichten nicht in Magento 2.3 erstellt wurden. Erstellen Sie also in der Datenbank die Tabellen Ansichten und Inventar_Stock_1 .

Siehe beigefügtes Bild:

Geben Sie hier die Bildbeschreibung ein

Savan Patel
quelle
1
Ich danke dir sehr. Nachdem ich 2 Stunden verbracht hatte, bekam ich die Lösungen von Ihrer Antwort. Danke noch einmal.
Kamlesh Solanki
2
+1 für eine gute Antwort
Sanjay Gohil
@Savan ist schon an meinem Ende angelegt. aber immer noch vor dem gleichen Problem
Insoftservice
@insoftservice Ich stehe vor dem gleichen Problem. Hast du eine Idee?
Hardik Visa
@HardikVisa hast du diese Ansicht am Ende. Wenn ja, versuchen Sie es einfach manuell auszuführen. Es wurde ein Berechtigungsproblem angegeben, das durch Erteilung der vollständigen Berechtigung behoben wurde.
Insoftservice
10

Ich habe diese Abfragezeile aufgrund eines Previllages-Fehlers übersprungen und mein Hinzufügen zum Warenkorb funktionierte nicht auf dem Live-Server. Auf dem lokalen Server wurde diese Zeile nicht übersprungen und das Hinzufügen zum Warenkorb funktionierte einwandfrei.

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`))) ;

Weil die Ansicht nicht auf dem Live-Server erstellt wurde Geben Sie hier die Bildbeschreibung ein

Sanaullah Ahmad
quelle
3

Ich musste den DEFINER=Root- @Localhost aus der @ Thakur-Antwort entfernen, also habe ich Folgendes verwendet:

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`))) ;

Wenn es nicht entfernt wurde, wurde ein Berechtigungsfehler verursacht.

Der Tote
quelle
1

Bitte versuchen Sie die folgenden Schritte:

Admin -> Stores -> Inventory -> Stock -> Edit Default Stock -> Sales Channels -> select Main Website

Es hat gut funktioniert.

ODER finden Sie den folgenden Link

https://webkul.com/blog/get-salable-quantity-in-magento-2-3/

Pradeep Thakur
quelle
0

Ich hatte das gleiche Problem, nachdem ich die Ansicht durch Ausführen der folgenden Abfrage erstellt hatte, wurde mein Problem behoben.

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`))
   ) ;
Mohd Zahid
quelle
0

Eine andere Methode, um dies zu beheben, besteht darin, den Patch aus dem zu entfernen patch_listund setup:upgradeden Befehl erneut auszuführen, um ihn erneut aufzurufen.

Der Code, der für die Erstellung des Codes verantwortlich SQL SECURITY INVOKERist, befindet sich in Magento \ InventoryCatalog \ Setup \ Patch \ Schema \ CreateLegacyStockStatusView.

Sie können den Daten-Patch aus der Patch-Liste entfernen, indem Sie nach "Ausführen" suchen

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

Löschen Sie den Datensatz.

Wiederholung setup:upgrade setup:di:compile setup:static-content:deploy

Speichern Sie die Produkte mit ZERO Salable Quantity entweder einzeln oder durch Massenaktion über admin.

oliver
quelle
0

Ich werde meine Erfahrungen in Bezug auf dieses Problem teilen. Ich hoffe, es könnte jemandem helfen, der sich in der gleichen Situation befunden hätte.

Wir arbeiteten an einer inszenierten Instanz, alles war bereit für die Produktion. Also haben wir alles auf der Prod-Umgebung dupliziert und einige SQL- Kürzungen gestartet , um alle Dummy-Bestellungen, Überprüfungen usw. zu löschen. Sie haben die Idee.

Nach einigen abschließenden Tests stellten wir fest, dass sich die "Lagermenge" unserer Produkte stark von der "verkaufsfähigen Menge" des Produkts unterschied . Die SQL-Ansicht schien gut zu funktionieren, daher haben wir eingehender nachgeforscht. Es stellte sich heraus, dass wir eine SQL-Tabelle in unseren Anweisungen zum Abschneiden verpasst haben:

TRUNCATE TABLE `inventory_reservation`;

Dieses böse Mädchen enthielt jedes " nicht versendete, aber reservierte Produkt " aus früheren Bestellungen.

Vergessen Sie natürlich nicht, Dinge neu zu indizieren:

bin/magento indexer:reindex;
rou6e
quelle
-3

Ich habe gerade zu STORE -> CATELOG -> INVENTORY -> PRODUCTS STOCK OPTIONS -> BACKORDERS -> Menge unter 0 zulassen gewechselt

und das Problem gelöst

Divya
quelle