Quantidade vendável está mostrando zero na grade de produtos magento 2?

14

Na verdade, no meu caso, a quantidade vendável está mostrando zero na grade do produto Magento 2.3 .

Devido a esse problema, os produtos não são exibidos no front-end. Se alguém tiver alguma idéia, por favor me diga.

Para essa re-indexação, também é feito, mas a Quantidade vendável ainda está mostrando zero (0).

Adicionar e atualizar a quantidade programática, mas a quantidade vendável está mostrando zero .

Hitesh Balpande
fonte
tente permitir pedidos em falta de estoque e verifique se os produtos serão exibidos. Isso não é uma correção, mas pelo menos para verificar se o problema exato é a quantidade vendável.
Fmsthird
você consertou?
Fmsthird 9/01/19
sim, na verdade, havia um problema de permissão no nosso servidor
Hitesh Balpande
Olá, Você descobriu o problema?
Octopus
11
@ Octopus, sim reindex trabalhou sempre, mas não havia permissão no servidor, em seguida, ele é resolvido
Hitesh Balpande

Respostas:

21

No DataBase, havia dois tipos,

1) Tabelas

2) Visualizações

O problema pode ser causado quando o Import / Export DataBase Views não foi criado no Magento 2.3. Portanto, crie Views e inventário_stock_1 no DataBase.

Consulte Imagem em anexo:

insira a descrição da imagem aqui

Savan Patel
fonte
11
Muito obrigado. Depois de duas horas, obtive as soluções da sua resposta. Obrigado novamente.
Kamlesh Solanki
2
+1 Para grande resposta
Sanjay Gohil
@Savan já está criado no meu final. mas ainda enfrentando o mesmo problema
insoftservice 15/08/19
@insoftservice Estou enfrentando o mesmo problema, você teve alguma ideia?
Hardik Visa
@HardikVisa, você tem essa visão ao final. Se sim, apenas tente executá-lo manualmente no meu final, foi dada uma questão de permissão que foi resolvida através da concessão de permissão total.
Insoftservice 8/10/19
10

Ignorei esta linha de consulta devido a um erro de Previllages e meu add ao carrinho não estava funcionando no servidor ativo, no servidor local essa linha não foi ignorada e o add ao carrinho estava funcionando bem.

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

Porque o View não foi criado no servidor ativo insira a descrição da imagem aqui

Sanaullah Ahmad
fonte
3

Eu tive que remover a DEFINER=raiz @localhost da resposta @Thakur, então aqui está o que eu usei:

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

Falha ao removê-lo causou um erro de privilégio.

The Dead Guy
fonte
0

Eu estava enfrentando o mesmo problema. Depois de criar a exibição executando a consulta abaixo, meu problema foi resolvido.

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
fonte
0

Outro método para corrigir isso seria remover o patch patch_liste executar setup:upgradenovamente o para invocar novamente o comando.

O código responsável pela criação do SQL SECURITY INVOKERarquivo pode ser encontrado em Magento \ InventoryCatalog \ Setup \ Patch \ Schema \ CreateLegacyStockStatusView.

Você pode remover o patch de dados da lista de patches pesquisando

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

Exclua o registro.

Executar novamente setup:upgrade setup:di:compile setup:static-content:deploy

Salve novamente os produtos com ZERO Quantidade vendável , um por um ou ação em massa via administrador.

oliver
fonte
0

Vou compartilhar minha experiência relacionada a esse problema. Espero que ajude alguém que estaria na mesma situação.

Estávamos trabalhando em uma instância faseada, tudo estava pronto para a produção. Então, duplicamos tudo no ambiente de produção e lançamos alguns truncados do SQL para excluir todos os pedidos fictícios, análises, etc. você entendeu.

Após alguns testes finais, percebemos que nossos produtos "quantidade de estoque" eram muito diferentes do produto "quantidade vendável" . O SQL View parecia funcionar bem, então investigamos mais profundamente. Acontece que perdemos uma tabela SQL em nossas instruções truncadas:

TRUNCATE TABLE `inventory_reservation`;

Essa garota má estava contendo cada "produtos não enviados, mas reservados " de pedidos anteriores.

Claro que não se esqueça de reindexar coisas:

bin/magento indexer:reindex;
rou6e
fonte
-3

Acabei de alterar para ARMAZENAR -> CATELOG -> INVENTÁRIO -> OPÇÕES DE PRODUTO -> BACKORDERS -> Permitir quantidade abaixo de 0

e o problema resolvido

Divya
fonte