Si vendes en Shopify, probablemente la mayoría de tus competidores también lo hacen, y sus precios, descuentos y niveles de stock están a la vista de cualquiera que abra su tienda. Las apps de monitorización convierten eso en paneles, pero puedes recoger los mismos datos tú mismo, exactamente para las tiendas y productos que te importan, y conservar el historial. Esto es inteligencia de precios a la escala del propietario de una sola tienda, y Shopify hace el primer paso más fácil que la mayoría de plataformas.
Esta guía explica dónde están los datos, qué registrar por producto, cómo comparar mercados por país y cómo hacerlo funcionar de forma fiable.
Por qué construirlo tú mismo
Las apps se ponen en marcha rápido, pero tienen límites. Suelen limitar el número de competidores o productos, se actualizan según su propio calendario y guardan el historial en bruto dentro de la app. Un pequeño recolector propio te da:
- Tu lista de rivales, incluidas tiendas pequeñas que ninguna app sigue.
- Tu calendario, por ejemplo cada pocas horas durante una rebaja y una vez al día el resto del tiempo.
- Tus datos, en una hoja de cálculo o base de datos que puedes cruzar con tus propias ventas y márgenes.
A cambio, hace falta algo de configuración y mantener las peticiones educadas y constantes, y ahí es donde entran los proxies.
Dónde están los datos: el JSON público de productos
La mayoría de las tiendas Shopify publican su catálogo público en un formato legible por máquinas:
/products.jsonlista los productos con sus variantes, por páginas. Añade?limit=250&page=2y así sucesivamente para recorrer un catálogo grande./products/<handle>.jsondevuelve un solo producto, donde el handle es la última parte de la URL del producto./collections/<handle>/products.jsonlista los productos de una colección, útil cuando solo sigues una categoría.
Cada variante incluye los campos que necesitas: price, compare_at_price (el precio tachado “antes”), available, sku y marcas de tiempo. Es mucho más ligero que cargar la página de producto renderizada con sus imágenes y scripts, y no cambia cuando la tienda cambia de tema.
No todas las tiendas lo dejan abierto. Algunas devuelven un error o una página con contraseña, y las tiendas headless pueden no exponerlo en absoluto. En esos casos, lee los datos estructurados incrustados en la página de producto; explicamos cómo en extraer JSON-LD en lugar de analizar HTML.
Qué registrar por producto
Sigue variantes, no productos. Una camiseta en cinco tallas son cinco variantes, y un competidor a menudo descuenta solo las tallas que no se venden.
Por variante y por comprobación:
- Tienda, handle del producto, ID de variante, SKU y título de la variante (talla, color).
priceycompare_at_price.available(en stock o no).- La hora de tu comprobación, el país desde el que comprobaste y la moneda mostrada.
Señales que derivar:
- Profundidad del descuento: la diferencia entre
compare_at_priceyprice, y cuándo empieza y termina un descuento. - Cambios de precio: cada vez que el precio de una variante se mueve, con el valor anterior y el nuevo.
- Roturas de stock: variantes que pasan a no disponibles, a menudo señal de demanda fuerte o de problemas de suministro.
- Productos nuevos y retirados: lo que el competidor lanza y lo que retira sin avisar.
Guarda solo los cambios más una instantánea diaria, y el historial seguirá siendo pequeño incluso con decenas de tiendas.
Mercados: la misma tienda, precios distintos por país
Shopify Markets permite a una tienda vender en muchos países con monedas locales y, a menudo, precios distintos. El mercado que recibe un visitante suele depender de su ubicación, a veces con una subcarpeta de país como /en-ca/ o un selector de moneda.
Eso importa para la monitorización. Si recoges todo desde un servidor en un país, solo verás ese mercado. Para comparar lo que pagan los compradores en Estados Unidos, Reino Unido y Alemania:
- Pide la tienda desde una IP en cada país donde vendes, para que la tienda elija el mercado que recibe un comprador local.
- Registra la moneda y el precio recibidos, no un valor convertido.
- Comprueba a mano un producto por mercado la primera vez, frente a la página renderizada, para confirmar que el JSON que recoges muestra el precio local de esa tienda.
La segmentación por país basta para la mayoría de comparaciones en Shopify. La segmentación por ciudad solo importa cuando una tienda cambia opciones de envío o stock por región.
Un recolector mínimo
El script de abajo lee el catálogo de una tienda a través de un proxy e imprime el precio y el stock de cada variante. Ejecútalo por tienda y por país de forma programada y escribe las filas en tu base de datos.
import time
import requests
PROXY = "http://customer-USERNAME-country-us:PASSWORD@p.shifter.io:443"
STORE = "https://competitor-store.example"
def fetch_catalogue(store):
page = 1
while True:
r = requests.get(
f"{store}/products.json",
params={"limit": 250, "page": page},
proxies={"http": PROXY, "https": PROXY},
timeout=30,
)
r.raise_for_status()
products = r.json().get("products", [])
if not products:
break
yield from products
page += 1
time.sleep(2) # stay polite between pages
for product in fetch_catalogue(STORE):
for v in product["variants"]:
print(product["handle"], v["id"], v["title"],
v["price"], v["compare_at_price"], v["available"])
Cambia country-us en el nombre de usuario para recoger la misma tienda tal como la ve un comprador en otro mercado.
Configuración de proxies
| Tarea | Rotación | Segmentación |
|---|---|---|
| Instantánea diaria del catálogo | Por petición | País del mercado |
| Comprobaciones frecuentes de productos clave durante una rebaja | Por petición | País del mercado |
| Comprobar el carrito o el total del checkout | Sesión sticky | País del mercado |
Las tiendas Shopify limitan la velocidad con la que una dirección puede pedir páginas, y un servidor de monitorización que visita las mismas tiendas cada día destaca enseguida. Los proxies residenciales con una IP nueva por petición reparten las comprobaciones entre conexiones domésticas reales del país que eliges, así que la tienda responde como lo haría a un comprador local.
Algunos hábitos mantienen estable la recogida:
- Haz una pausa de uno o dos segundos entre páginas de la misma tienda y reparte las tiendas a lo largo del día.
- Comprueba a menudo los productos clave y el catálogo completo una vez al día; la mayoría de precios no cambian cada hora. Nuestro estudio sobre la rapidez con que cambian los precios online te ayuda a elegir una frecuencia sensata.
- Trata una respuesta HTML o una página de desafío como un fallo, no como datos, y vuelve a intentarlo más tarde.
Cómo encaja en un sistema más amplio
Las tiendas Shopify suelen ser solo una parte del panorama. Si también sigues a proveedores y marketplaces, nuestra guía de proxies para dropshipping cubre la investigación de productos y la monitorización de proveedores junto a las tiendas de la competencia.
En resumen
No necesitas una app para vigilar las tiendas Shopify de la competencia. Lee el JSON público de productos, registra el precio, el precio “antes” y el stock de cada variante con la hora y el país de la comprobación, y guarda solo los cambios. Recoge cada mercado desde una IP en ese país y usa proxies residenciales rotativos para que un calendario diario funcione sin bloqueos.