---
title: "Shopping para Ecommerce en ChatGPT"
date: 2025-11-14T23:42:30+01:00
modified: 2026-08-03T22:18:25+02:00
author: "Yago Vázquez Gómez"
source: https://yaggoseo.com/shopping-para-ecommerce-en-chatgpt/
canonical: https://yaggoseo.com/shopping-para-ecommerce-en-chatgpt/
description: "Cómo adaptar tu catálogo de productos al Product Feed Spec de OpenAI Commerce ¿Quieres que tu tienda online esté lista para integrarse con las experiencias de OpenAI Commerce?En esta guía creada por mi Yago Vázquez (Consultor SEO) aprenderás a transformar..."
categories:
  - "llms"
---

# Shopping para Ecommerce en ChatGPT

## Cómo adaptar tu catálogo de productos al Product Feed Spec de OpenAI Commerce

¿Quieres que tu tienda online esté lista para integrarse con las experiencias de **OpenAI Commerce**?En esta guía creada por mi Yago Vázquez (Consultor SEO) aprenderás a transformar tu catálogo en un feed compatible, siguiendo las mejores prácticas de SEO para LLMs.

👉 Para participar oficialmente y **habilitar tu tienda** en el ecosistema, primero debes inscribirte en el portal de comerciantes de** OpenAI**. Solo necesitas crear tu cuenta en [https://chatgpt.com/es-ES/merchants/](https://chatgpt.com/es-ES/merchants/), donde podrás registrar tu negocio, aceptar las condiciones de uso y empezar a** configurar tu catálogo de productos** para que se muestre dentro de las experiencias de ChatGPT y otros servicios.

## 1. Auditoría inicial de tu catálogo

Antes de exportar cualquier información, realiza una revisión exhaustiva de tu catálogo o ERP para conocer qué campos tienes disponibles y cuáles te faltan. Esto te permitirá anticiparte a errores comunes en la integración.

- ID único o SKU

- Nombre del producto

- Descripción (sin HTML)

- URL del producto (PDP)

- Precio y divisa

- Stock disponible

- Marca y categoría

- Imágenes

- Variantes (color, talla, etc.)

- Políticas de devolución (si usarás checkout)

👉 Haz especial hincapié en este paso: una auditoría bien hecha evita pérdidas de tiempo en fases posteriores.

## 2. Mapeo de campos (source → spec)

Para que tu feed funcione correctamente con el estándar de OpenAI, debes mapear tus campos internos al formato requerido. A continuación te muestro los campos obligatorios y los recomendados.

**Campos obligatorios:**

- `id` → SKU o product_id

- `title` → Nombre del producto

- `description` → Descripción sin HTML

- `link` → URL canónica

- `image_link` → Imagen principal

- `price` → Precio + divisa (ej. 79.99 USD)

- `availability` → in_stock / out_of_stock / preorder

- `inventory_quantity` → Cantidad en stock

- `enable_search`, `enable_checkout`

**Campos recomendados:**

- `brand`, `product_category`, `weight`

👉 Si activas checkout, añade también: `seller_name`, `seller_url`, `return_policy`, `return_window`.

---

## 3. Ejemplo de feed en CSV

`enable_search,enable_checkout,id,title,description,link,image_link,price,availability,inventory_quantity,brand,product_category,weight,seller_name,seller_url,return_policy,return_window
true,false,SKU12345,"Men's Trail Running Shoes Black","Waterproof trail shoe with cushioned sole","https://example.com/product/SKU12345","https://example.com/images/skሴ5.jpg","79.99 USD",in_stock,25,OpenAI,"Apparel & Accessories > Shoes","1.5 lb","Example Store","https://example.com/store","https://example.com/returns",30`

## 4. Ejemplo de feed en JSON

`{
"enable_search": "true",
"enable_checkout": "false",
"id": "SKU12345",
"title": "Men's Trail Running Shoes Black",
"description": "Waterproof trail shoe with cushioned sole",
"link": "https://example.com/product/SKU12345",
"image_link": "https://example.com/images/skሴ5.jpg",
"price": "79.99 USD",
"availability": "in_stock",
"inventory_quantity": 25,
"brand": "OpenAI",
"product_category": "Apparel & Accessories > Shoes",
"weight": "1.5 lb"
}`

## 5. Reglas de validación esenciales

- `sale_price` debe ser menor o igual que `price` y requiere `sale_price_effective_date`.

- Si `availability = preorder`, debe definirse `availability_date` en el futuro.

- Las variantes deben compartir `item_group_id`.

- Todas las URLs deben devolver un código HTTP 200.

- El feed puede actualizarse cada **15 minutos** para mantener la frescura del catálogo.

Siguiendo estas reglas aseguras que el sistema rechace lo mínimo posible y tu feed pase las validaciones de OpenAI.

## 6. Script de transformación en Python

Ejemplo para transformar un CSV en un feed válido (CSV + JSONL):

`import csv, json, html, re

with open("catalogo.csv", newline="", encoding="utf-8") as f:
reader = csv.DictReader(f)
feed = []
for row in reader:
item = {
"enable_search": "true",
"enable_checkout": "false",
"id": row["sku"],
"title": row["title"],
"description": html.unescape(re.sub("]*>", "", row["description"])),
"link": row["url"],
"image_link": row["image"],
"price": f"{row['price']} USD",
"availability": "in_stock" if int(row["stock"]) > 0 else "out_of_stock",
"inventory_quantity": int(row["stock"]),
"brand": row.get("brand", ""),
"product_category": row.get("category", ""),
"weight": row.get("weight", "0.5 kg")
}
feed.append(item)

with open("openai_feed.jsonl", "w", encoding="utf-8") as out:
for item in feed:
out.write(json.dumps(item) + "\n")
`

## 7. Exportar el feed desde PrestaShop

En **PrestaShop**, los datos del catálogo se encuentran distribuidos en varias tablas (productos, descripciones, stock, imágenes, marcas). Para generar el feed compatible con OpenAI Commerce puedes usar una consulta SQL base y luego transformarla.

### Mapeo de campos clave

- `id` → ps_product.id_product

- `title` → ps_product_lang.name

- `description` → ps_product_lang.description

- `link` → ps_product_lang.link_rewrite

- `image_link` → ps_image.id_image (combinado con URL base)

- `availability` → ps_stock_available.quantity

- `brand` → ps_manufacturer.name

### Ejemplo en SQL

`sql
SELECT p.id_product AS id,
pl.name AS title,
pl.description AS description,
CONCAT('https://tu-dominio.com/', pl.link_rewrite, '.html') AS link,
CONCAT('https://tu-dominio.com/img/p/', i.id_image, '-large_default.jpg') AS image_link,
FORMAT(p.price, 2) AS price_raw,
IF(s.quantity > 0, 'in_stock', 'out_of_stock') AS availability,
s.quantity AS inventory_quantity,
m.name AS brand
FROM ps_product p
JOIN ps_product_lang pl ON p.id_product=pl.id_product AND pl.id_lang=1
LEFT JOIN ps_stock_available s ON s.id_product=p.id_product
LEFT JOIN ps_manufacturer m ON m.id_manufacturer=p.id_manufacturer
LEFT JOIN ps_image i ON i.id_product=p.id_product AND i.cover=1
WHERE p.active=1;`

## 8. Exportar el feed desde Magento 2

En **Magento 2 (Adobe Commerce)**, lo más recomendable es usar el stack nativo de Magento en lugar de SQL crudo, ya que trabaja con un modelo EAV.

### Mapeo de campos clave

- `id` → SKU

- `title` → name

- `description` → description

- `link` → getProductUrl()

- `image_link` → media/catalog/product + image

- `availability` → stock (MSI)

- `brand` → atributo personalizado

- `product_category` → nombres de categorías

### Ejemplo en PHP

`use Magento\Framework\App\Bootstrap;
require __DIR__ . '/app/bootstrap.php';
$params = $_SERVER;
$bootstrap = Bootstrap::create(BP, $params);
$obj = $bootstrap->getObjectManager();
$state = $obj->get('Magento\Framework\App\State');
$state->setAreaCode('frontend');

$productCollection = $obj->create('Magento\Catalog\Model\ResourceModel\Product\CollectionFactory')->create();
$productCollection->addAttributeToSelect(['sku','name','description','price','brand','weight','image']);

$fp = fopen(__DIR__.'/openai_feed.csv','w');
fputcsv($fp,['enable_search','enable_checkout','id','title','description','link','image_link','price','availability','inventory_quantity','brand','product_category','weight']);

foreach($productCollection as $p){
$sku = $p->getSku();
$name = $p->getName();
$desc = strip_tags($p->getDescription());
$url = $p->getProductUrl();
$img = $baseUrl.'media/catalog/product'.$p->getImage();
$price = number_format((float)$p->getPrice(),2,'.','').' EUR';
...
}
`

## 9. Validación final del feed

Independientemente del CMS que uses, antes de entregar el feed conviene validarlo con un script en Python:

`import csv, sys
req = {'id','title','description','link','image_link','price','availability','inventory_quantity'}
with open('openai_feed.csv', newline='', encoding='utf-8') as f:
r = csv.DictReader(f)
for i,row in enumerate(r, start=2):
missing = [k for k in req if not row.get(k)]
if missing:
print(f'Fila {i}: faltan campos {missing}')
sys.exit(1)
print('Feed OK')
`

## 10. Buenas prácticas para tu feed

- Usa **IDs estables** (evita cambiar SKUs una vez lanzado).

- Limpia las descripciones de HTML y elimina tags innecesarios.

- Incluye **divisa** en el precio y **unidades** en medidas.

- Automatiza la generación/refresco del feed cada ~15 min para máxima frescura.

- Prueba primero con un **feed de muestra** reducido antes de exportar el catálogo completo.

Estas buenas prácticas mejoran la calidad, fiabilidad y velocidad de integración.

## Conclusiones finales

Adaptar tu catálogo al **Product Feed Spec de OpenAI Commerce** no es complicado si sigues un flujo claro:

**Auditar → Mapear → Normalizar → Validar → Exportar → Refrescar.**

Siguiendo estos pasos, tu tienda estará lista para integrarse en el ecosistema de IA de OpenAI y tus productos podrán aparecer correctamente en experiencias de ChatGPT y otros servicios.

## Da el siguiente paso con OpenAI Commerce

¿Estás listo para que tus productos se muestren en las experiencias de ChatGPT y otros servicios de OpenAI? El primer paso es **inscribirte como comerciante** y registrar tu tienda en el portal oficial de comerciantes.

No pierdas la oportunidad de adelantarte: configura hoy tu catálogo y empieza a vender directamente en el ecosistema de IA.

[👉 Haz clic aquí para unirte ahora](https://chatgpt.com/es-ES/merchants/)

No pierdas la oportunidad de adelantarte: configura tu catálogo hoy y empieza a vender directamente en el ecosistema de IA.
