Como prevenir el faltante de stock en entornos de comercio electronico o en Mercadolibre

9 de agosto de 2025 por
Gustavo Orrillo
| Sin comentarios aún
 

Si hay un problema enorme cuando uno trabaja con marketplaces como Mercadolibre o en plataformas de e-commerce como VTex o Tiendanube es el faltante de stock cuando uno recibo un pedido de un cliente. En marketplaces es algo muy caro debido a que el faltante de stock frente a un pedido es penalizado con una baja en la reputación del vendedor.

Lo que es peor? Lo primero que uno hace para evitar estos problemas es reducir el stock ofrecido (mediante stocks de seguridad) lo cual termina ocasionando una pérdida de ventas (lo que afecta el bottom-line).

Una situación que se presenta en los canales de venta online es que uno debe publicar de forma certera las cantidades de centenares o miles de SKUs, de los cuales hay poco stock (por ejemplo una o dos unidades). Y la otra característica de los canales de venta online es que comparten el stock con otros canales de venta (por ejemplo locales de venta) lo cual complica la gestión de inventarios.

Que origina el faltante de stock? En mi experiencia (y despues de haber sufrido algunos en un par de implementaciones) tienen dos motivos. La falta de disciplina y el desmanejo de los inventarios en la empresa, y fallas en el proceso de actualización de stocks en el marketplace o e-commerce.

Desmanejo en inventarios

Si la gestión de inventarios es deficitaria, no espere que la información de inventarios en Mercadolibre o en su e-commerce sea mejor. El primer paso para mejorar la cantidad de unidades disponibles para la venta online es mejorar la gestión de inventarios en su depósito. Todos los productos disponibles para la venta deben tener su SKU, deben estar apropiadamente inventariados y sus ingresos y egresos deben ser registrados de manera correcta. 

Una vez que se confía en la información de los inventarios, ahí se puede empezar a registrar de forma más certera la cantidad de productos disponibles para la venta online. Quiero aclarar que uno puede empezar a hacerlo por más que uno tenga  mala información de stock, pero va a necesitar contar con importantes stocks de seguridad para prevenir sorpresas por faltantes de stock.

Proceso de actualización de inventarios en marketplace o e-commerce

Muchas veces el proceso de actualización de las cantidades disponibles para la venta online presenta problemas. La mayoría de las veces o no se llegan a actualizar los stocks de todos los productos disponibles para la venta; o se lo hace a destiempo.

El primer paso es, se deben actualizar los stocks de todos los productos disponibles para la venta online. Y se lo debe hacer de forma periódica (como mucho diaria). Esto es lo primero que se debe hacer. Aca es importante brindar al usuario vistas para controlar que el stock disponible en la empresa coincida con el stock disponible para la venta online. Debe formar parte de las tareas del usuario dedicarle unos minutos del día a asegurarse que las cantidades disponibles para la venta online no deparan ninguna sorpresa.

 El segundo puede llegar a ser opcional, pero es el deseado. Cada vez que se registra un egreso de un SKU en la empresa, se debe actualizar la cantidad de venta disponible para la venta online. Por ejemplo, el módulo meli_oerp hace eso. Si uno mira el código encontrará que se extiendo el método action_confirm del sale.order para actualizar el stock del producto en Mercadolibre una vez confirmado el pedido de venta

    def action_confirm(self):
#_logger.info("meli order action_confirm: " + str(self.mapped("name")) )
res = super(sale_order,self).action_confirm()
try:
for order in self:
if(order.meli_order_id):
for line in order.order_line:
#_logger.info(line)
#_logger.info(line.is_delivery)
#_logger.info(line.price_unit)
if line.is_delivery and line.price_unit<=0.0:
#_logger.info(line)
line.write({ "qty_to_invoice": 0.0 })
#_logger.info(line.qty_to_invoice)
pass;
except:
pass;

try:
company = self.env.user.company_id
#_logger.info(Company: "+str(company))
#_logger.info(Order done: company.mercadolibre_cron_post_update_stock: "+str(company.mercadolibre_cron_post_update_stock))
for order in self:
for line in order.order_line:
if (company.mercadolibre_cron_post_update_stock):
if line.product_id and line.product_id.meli_id and line.product_id.meli_pub:
#_logger.info(Order done: product_post_stock: "+str(line.product_id.meli_id))
line.product_id.product_post_stock()
except:
pass;
return res


Lo cual es una forma bastante eficiente de mantener sincronizado el inventario de Mercadolibre con el disponible en la empresa.

Otro método para mantener sincronizado el stock con Mercadolibre me lo compartió Franco (de Villa María, Córdoba) ayer. Basicamente recorre todos los inventarios y actualiza su stock (cabe aclarar que Franco utiliza meli_oerp)

for quant in records:
if quant.location_id.id == <ubicacion de stock de ML>:
product = quant.product_id

# Sincronizar producto base si está publicado
if product.meli_status == 'active':
product.product_post_stock()

# Si el producto tiene default_code, buscar derivados que empiecen con base + "C"
if product.default_code:
sku_base = product.default_code
derived_products = env['product.product'].search([
('default_code', 'ilike', sku_base + 'C%'),
('id', '!=', product.id)
])

for derived in derived_products:
if derived.meli_status == 'active':
derived.product_post_stock()

Como pueden ver, es una acción que se puede utilizar en una acción de servidor sin problemas. 

Conclusiones

Sincronizar los inventarios de los canales de venta off-line con los canales de venta on-line es algo que requiero planificación y trabajo. Si usted espera que instalando un módulo se va a solucionar el problema, bueno... puede escribirle una carta a Santa Claus y esperar que una respuesta. Para esta sincronización se requiere trabajo y control diario, pero es fundamental. 

Gustavo Orrillo 9 de agosto de 2025
Compartir
Archivar
Identificarse dejar un comentario