Cantidad vendible muestra cero en la cuadrícula de producto magento 2?

14

En realidad, en mi caso, la cantidad vendible muestra cero en la cuadrícula de productos Magento 2.3 .

Debido a este problema, los productos no se muestran en la interfaz. Si alguien tiene alguna idea, por favor dígame.

Para esta reindexación también se realiza, pero aún la cantidad vendible muestra cero (0).

Agregar y actualizar la cantidad programática pero la cantidad vendible muestra cero .

Hitesh Balpande
fuente
intente permitir pedidos fuera de stock y verifique si se mostrarán los productos. Esto no es una solución, pero al menos para verificar si el problema exacto es la cantidad vendible.
fmsthird
lo has arreglado?
fmsthird
sí, en realidad hubo un problema de permiso en nuestro servidor
Hitesh Balpande
Hola, ¿has descubierto el problema?
Octopus
1
@ Octopus, sí, reindex funcionó siempre, pero hubo permiso en el servidor y luego se resolvió
Hitesh Balpande

Respuestas:

21

En DataBase, había dos tipos,

1) tablas

2) Vistas

El problema posiblemente se deba a que las Vistas Importar / Exportar DataBase no se crearon en Magento 2.3. Así que cree Vistas y tabla de inventario_stock_1 en DataBase.

Ver imagen adjunta:

ingrese la descripción de la imagen aquí

Savan Patel
fuente
1
Muchas gracias. Después de pasar 2 horas obtuve las soluciones de su respuesta. Gracias de nuevo.
Kamlesh Solanki
2
+1 para una gran respuesta
Sanjay Gohil
@Savan ya está creado a mi fin. pero aún enfrenta el mismo problema
insoftservice
@insoftservice Estoy enfrentando el mismo problema, ¿tienes alguna idea?
Visa Hardik el
@HardikVisa, ¿tienes esta vista al final? En caso afirmativo, solo intente ejecutarlo manualmente a mi final, se le dio un problema de permiso que se resolvió otorgando el permiso completo.
insoftservice
10

Omití esta línea de consulta, debido al error de Previllages y mi complemento al carrito no funcionaba en el servidor en vivo, en el servidor local no se omitió esta línea y el complemento al carrito funcionaba bien.

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 la Vista no se creó en el servidor en vivo ingrese la descripción de la imagen aquí

Sanaullah Ahmad
fuente
3

Tuve que eliminar la DEFINER=raíz @localhost de la respuesta @Thakur, así que esto es lo que usé:

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

Si no se elimina, se produjo un error de privilegio.

El hombre muerto
fuente
0

Estaba enfrentando el mismo problema, después de crear la vista ejecutando la consulta a continuación, mi problema se ha resuelto.

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

Otro método para solucionar esto sería eliminar el parche del patch_listy volver a ejecutar el setup:upgradepara volver a invocar el comando.

El código responsable de la creación SQL SECURITY INVOKERse puede encontrar en Magento \ InventoryCatalog \ Setup \ Patch \ Schema \ CreateLegacyStockStatusView.

Puede eliminar el parche de datos de la lista de parches buscando en ejecución

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

Eliminar el registro.

Repetición setup:upgrade setup:di:compile setup:static-content:deploy

Vuelva a guardar los productos con CERO Cantidad vendible , uno por uno o una acción masiva a través del administrador.

Oliver
fuente
0

Voy a compartir mi experiencia relacionada con este tema, espero que pueda ayudar a alguien que hubiera estado en la misma situación.

Estábamos trabajando en una instancia por etapas, todo estaba listo para pasar a producción. Así que duplicamos todo en el entorno de producción y lanzamos algunos truncamientos de SQL para eliminar todas las órdenes ficticias, revisiones, etc.

Después de algunas pruebas finales, nos dimos cuenta de que nuestros productos "cantidad de existencias" eran muy diferentes de los productos "cantidad vendible" . La vista SQL parecía funcionar bien, por lo que investigamos más a fondo. Resulta que perdimos una tabla SQL en nuestras instrucciones truncadas:

TRUNCATE TABLE `inventory_reservation`;

Esta chica mala contenía cada "producto no enviado pero reservado " de pedidos anteriores.

Por supuesto, no olvide reindexar cosas:

bin/magento indexer:reindex;
rou6e
fuente
-3

Acabo de cambiar a TIENDA -> CATÁLOGO -> INVENTARIO -> OPCIONES DE ACCIÓN DE PRODUCTOS -> PEDIDOS -> Permitir cantidad debajo de 0

y el problema resuelto

Divya
fuente