La quantità vendibile mostra zero nella griglia del prodotto magento 2?


14

In realtà nel mio caso la quantità vendibile mostra zero nella griglia del prodotto Magento 2.3 .

A causa di questo problema, i prodotti non vengono visualizzati in frontend. Se qualcuno ha qualche idea, per favore dimmelo.

Anche per questo reindicizzazione viene eseguita, ma la quantità vendibile mostra zero (0).

Aggiungi e aggiorna la quantità programmatica ma la quantità vendibile mostra zero .


provare a consentire il backorder esaurito e verificare se i prodotti verranno visualizzati. Questa non è una soluzione, ma almeno per verificare se il problema esatto è la quantità vendibile.
fmsthird

l'hai riparato?
fmsthird,

sì, in realtà si è verificato un problema di autorizzazione nel nostro server
Hitesh Balpande,

Ciao, hai scoperto il problema?
Polpo,

1
@ Octopus, sì, reindex ha funzionato sempre ma c'era l'autorizzazione nel server, quindi è stata risolta
Hitesh Balpande

Risposte:


21

In DataBase, c'erano due tipi,

1) Tabelle

2) Visualizzazioni

Il problema è probabilmente causato quando Import / Export DataBase Views non è stato creato in Magento 2.3. Quindi crea una tabella Views e Inventory_stock_1 in DataBase.

Vedi immagine allegata:

inserisci qui la descrizione dell'immagine


1
Grazie mille. Dopo aver trascorso 2 ore ho ottenuto le soluzioni dalla tua risposta. Grazie ancora.
Kamlesh Solanki,

2
+1 per la grande risposta
Sanjay Gohil

@Savan è già stato creato alla mia fine. ma ancora affrontando lo stesso problema
insoftservice il

@insoftservice Sto affrontando lo stesso problema, hai avuto idea?
Hardik Visa

@HardikVisa hai questa visione alla tua fine. Se sì, prova a eseguirlo manualmente alla mia fine, è stato dato un problema di autorizzazione che è stato risolto concedendo l'autorizzazione completa.
insoftservice

10

Ho ignorato questa riga di query, a causa dell'errore di Previllages e il mio aggiungi al carrello non funzionava sul server live, nel server locale questa riga non veniva ignorata e l'aggiunta al carrello funzionava bene.

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

Perché la vista non è stata creata nel server live inserisci qui la descrizione dell'immagine


3

Ho dovuto rimuovere il localhost di DEFINER=root @dalla risposta @Thakur, quindi ecco cosa ho usato:

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

La mancata rimozione ha causato un errore di privilegio.



0

Stavo affrontando lo stesso problema, dopo aver creato la vista eseguendo la query di seguito il mio problema è stato risolto.

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

Un altro metodo per risolvere questo problema sarebbe rimuovere la patch da patch_liste rieseguire il setup:upgradeper richiamare nuovamente il comando.

Il codice responsabile della creazione di SQL SECURITY INVOKERpuò essere trovato in Magento \ InventoryCatalog \ Setup \ Patch \ Schema \ CreateLegacyStockStatusView.

È possibile rimuovere la patch di dati dall'elenco delle patch cercando in esecuzione

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

Elimina il record.

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

Salvare nuovamente i prodotti con la quantità vendibile ZERO uno per uno o un'azione di massa tramite admin.


0

Condividerò la mia esperienza relativa a questo problema, spero possa aiutare qualcuno che si sarebbe trovato nella stessa situazione.

Stavamo lavorando su un'istanza organizzata, tutto era pronto per la produzione. Quindi abbiamo duplicato tutto sul prodotto e lanciato alcuni tronchi SQL per eliminare tutti gli ordini fittizi, le recensioni, ecc., Hai avuto l'idea.

Dopo alcuni test finali, ci siamo resi conto che i nostri prodotti "stock qty" erano molto diversi dal prodotto "vendable qty" . La vista SQL sembrava funzionare bene, quindi abbiamo studiato più a fondo. Risulta che abbiamo perso una tabella SQL nelle nostre istruzioni troncate:

TRUNCATE TABLE `inventory_reservation`;

Questa cattiva ragazza conteneva ogni "prodotto non spedito ma riservato " di ordini passati.

Ovviamente non dimenticare di reindicizzare le cose:

bin/magento indexer:reindex;

-3

Sono appena passato a STORE -> CATELOG - - INVENTARIO -> OPZIONI STOCK PRODOTTI -> BACKORDERS -> Consenti quantità inferiore a 0

e il problema è stato risolto

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.