Actualizando precios mayoristas en Mercadolibre

26 de febrero de 2026 por
Gustavo Orrillo
| Sin comentarios aún
 

Mercadolibre permite hacer descuentos cuando se vende en cantidad. Por ejemplo, si se venden dos unidades de un producto, ofrecer el precio unitario con un descuento X. Como se hace esto? 

En algunos países se está implementando un nuevo endpoint en el API, que es 

https://api.mercadolibre.com/items/{item_id}/prices/standard/quantity

que permite establecer los precios mayoristas de una publicación. Este endpoint, junto con el endpoint prices de los items (vamos a hablar de ese nuevo endpoint en otro post) son nuevos endpoints que se están habilitando por países, estando habilitados en Argentina desde hace poco.

Como se hace para actualizar los precios mayoristas? Es simple. Supongamos que tenemos un producto X con un precio Y, lo que tenemos que hacer es enviar al API de Mercadolibre una lista con con las cantidades y sus precios. 

Supongamos que extendemos meli_oerp y agregamos un modelo para manejar precios mayoristas. Este modelo esta relacionado con el modelo mercadolibre.posting y consta de cuatro campos (ml_price_id, posting_id, price, qty) donde indicamos el ID del precio, la referencia al posting, precio y cantidad.

Permitimos a los usuarios ingresar las reglas de los precios mayoristas en cada una de las publicaciones (algo que se puede definir de manera automática y actualizar todos los postings mediante xmlrpc, por ejemplo), y luego recorrer todas las reglas de precios de para armar el payload con el que vamos a actualizar el posting de Mercadolibre

        for mayorista in self.mayorista_ids:
if mayorista.ml_price_id:
posting_id = mayorista.ml_price_id
else:
posting_id = mayorista.id
  vals2 = {
'currency_id': self.company_id.currency_id.name,
  'amount': round(mayorista.price,2),
'conditions': {
"context_restrictions": [
"channel_marketplace",
"user_type_business"
],
'min_purchase_unit': mayorista.qty
}
}
  prices.append(vals2)
data = {'prices': prices}
response = requests.post(url,headers=headers,json=data)

Como pueden ver, invocamos el endpoint indicado anteriormente:

https://api.mercadolibre.com/items/MLA15114XXXXX/prices/standard/quantity

Con el siguiente payload

{'prices': [{'currency_id': 'ARS', 'amount': 27772.89, 
'conditions': {'context_restrictions': ['channel_marketplace', 'user_type_business'], 'min_purchase_unit': 2}}, {'currency_id': 'ARS', 'amount': 27188.2,
'conditions': {'context_restrictions': ['channel_marketplace', 'user_type_business'], 'min_purchase_unit': 5}}, {'currency_id': 'ARS', 'amount': 26311.16,
'conditions': {'context_restrictions': ['channel_marketplace', 'user_type_business'], 'min_purchase_unit': 10}}]}

En donde indicamos por canal, cual es el nuevo precio por cantidad. Es interesante este nuevo endpoint portres motivos. El primero es que Mercadolibre esta buscando ganar espacio en el segmento b2b. Segundo porque Mercadolibre está cambiando su API para que se actualicen sus precios de otra manera a diferencia del monolítico endoint items que usan el día de hoy. Y tercero (y esto no es menor) tengo entendido que las publicaciones con precios mayoristas están mejor rankeadas en las búsquedas de Mercadolibre.

Gustavo Orrillo 26 de febrero de 2026
Compartir
Categorías
Archivar
Identificarse dejar un comentario