El problema
Con 100 SKUs puedes mantener las fichas al dia a mano. Con 800 ya no. Las especificaciones se desactualizan, las descripciones de categoria envejecen y las palabras clave que escribiste hace un ano ya no coinciden con como busca la gente. Cada producto nuevo necesita titulo, vinetas, tabla de especificaciones y un texto de categoria que de verdad posicione, y copiar y pegar desde los PDF del fabricante a una hoja de calculo se come tardes enteras. Peor aun, no sabes que categorias necesitan contenido fresco porque adivinas la intencion de busqueda en vez de leerla. Un vendedor de r/ecommerce lo dijo claro: escalar el catalogo convirtio el mantenimiento de fichas en un segundo trabajo a tiempo completo que nadie tenia tiempo de hacer.
La solucion de Scavio
Trata la enriquecimiento como dos extracciones de datos mas un paso de redaccion. Primero, saca senales de palabras clave e intencion de categoria desde Google. Haz POST a /api/v1/google con light_request en false y lee related_searches y people_also_ask. related_searches te da las frases long-tail reales que escriben los compradores, y people_also_ask muestra las preguntas que una descripcion de categoria deberia responder. Ese es tu brief de keywords, generado con datos SERP en vivo y no a ojo. Segundo, saca especificaciones de referencia de un SKU. Haz POST de un ASIN conocido al endpoint de producto de Amazon para recibir titulo, vinetas, precio y especificaciones estructuradas de una ficha comparable; usa el endpoint de producto de Walmart con un product_id igual. Ahora tienes senales de keywords y una tabla de especificaciones para un producto. Alimenta ambos en tu borrador, deja que un humano o un LLM redacte la ficha y guarda el resultado en tu PIM. Luego programa la misma extraccion cada semana o mes para que las descripciones se refresquen cuando cambie el comportamiento de busqueda. Se honesto con el limite: la API te da especificaciones crudas y senales de keywords, no texto terminado. Sigues necesitando un redactor o modelo que lo convierta en ficha, y Scavio no reemplaza tu PIM ni tu ERP. Los alimenta.
Antes
Un equipo copia a mano las especificaciones de los PDF del fabricante y adivina las palabras clave de categoria, asi que la mitad de las 800 fichas estan desactualizadas o vacias.
Después
Un script nocturno saca related_searches en vivo y especificaciones de referencia por SKU, los borradores se generan contra intencion real y el contenido de categoria se refresca de forma programada.
Para quien es
Operadores de ecommerce e ingenieros de catalogo que escalan mas alla de unos cientos de SKUs y necesitan datos estructurados de keywords y especificaciones para mantener fichas precisas sin contratar un equipo de contenido.
Beneficios clave
- Palabras clave de categoria reales desde related_searches y people_also_ask de Google en vez de terminos a ojo
- Especificaciones de referencia estructuradas extraidas por ASIN o product_id, sin copiar PDFs
- Un unico formato JSON predecible que entra directo en tus borradores de fichas
- Reextracciones programadas mantienen frescas las descripciones cuando cambia la intencion de busqueda
- Precio por creditos de $0.005 por llamada se mantiene barato en cientos de SKUs
Ejemplo en Python
import requests
API_KEY = "your_scavio_api_key"
HEADERS = {"Authorization": f"Bearer {API_KEY}", "content-type": "application/json"}
BASE = "https://api.scavio.dev"
def category_keywords(category: str):
r = requests.post(
f"{BASE}/api/v1/google",
headers=HEADERS,
json={"query": category, "light_request": False},
timeout=20,
)
r.raise_for_status()
data = r.json()
return {
"related": [x["query"] for x in data.get("related_searches", [])],
"questions": [x["question"] for x in data.get("people_also_ask", [])],
}
def reference_specs(asin: str):
r = requests.post(
f"{BASE}/api/v1/amazon/product",
headers=HEADERS,
json={"query": asin},
timeout=20,
)
r.raise_for_status()
return r.json()
brief = category_keywords("4k portable monitor")
specs = reference_specs("B0B5L8QY8K")
print(brief["related"][:10])
print(brief["questions"][:5])
print(specs.get("title"), specs.get("price"))Ejemplo en JavaScript
const API_KEY = "your_scavio_api_key";
const HEADERS = { Authorization: `Bearer ${API_KEY}`, "content-type": "application/json" };
const BASE = "https://api.scavio.dev";
async function categoryKeywords(category) {
const res = await fetch(`${BASE}/api/v1/google`, {
method: "POST",
headers: HEADERS,
body: JSON.stringify({ query: category, light_request: false }),
});
if (!res.ok) throw new Error(`scavio ${res.status}`);
const data = await res.json();
return {
related: (data.related_searches ?? []).map((x) => x.query),
questions: (data.people_also_ask ?? []).map((x) => x.question),
};
}
async function referenceSpecs(asin) {
const res = await fetch(`${BASE}/api/v1/amazon/product`, {
method: "POST",
headers: HEADERS,
body: JSON.stringify({ query: asin }),
});
if (!res.ok) throw new Error(`scavio ${res.status}`);
return res.json();
}
const brief = await categoryKeywords("4k portable monitor");
const specs = await referenceSpecs("B0B5L8QY8K");
console.log(brief.related.slice(0, 10));
console.log(brief.questions.slice(0, 5));
console.log(specs.title, specs.price);