Cómo crear canales personalizados
Los canales personalizados te permiten definir tu propia estructura y formato de feed, con control total sobre los nombres de los campos, la organización de los datos y el formato de salida. A diferencia de los canales integrados (como Facebook o Google), que tienen campos predefinidos, los canales personalizados los configuras tú por completo.

Cuándo usar canales personalizados
Los canales personalizados son útiles cuando:
- Necesitas exportar a una plataforma que no admiten los canales integrados de Feedr
- Un marketplace o un socio exige un formato específico que no puedes conseguir con un canal integrado
- Quieres enviar datos de productos a sistemas internos, como un ERP, un PIM o una herramienta de inventario
- Necesitas control total sobre los nombres de los campos, la estructura y el formato de salida
- Quieres generar varios formatos (XML, CSV, JSON) a partir de una sola definición de canal
Crear un canal personalizado
- Ve a tu Shop en la barra lateral
- Haz clic en Canales personalizados
- Haz clic en Crear en la esquina superior derecha
- Escribe un título y selecciona uno o varios formatos de salida

TIP
Puedes seleccionar varios formatos (XML, CSV, JSON) para un mismo canal. Cada formato tiene sus propias opciones de configuración, así que puedes adaptar la salida a distintos destinatarios a partir de una sola definición de canal.
Formatos de datos compatibles
| Formato | Ideal para | Extensión |
|---|---|---|
| XML | Plataformas de anuncios, marketplaces, datos estructurados | .xml |
| CSV | Hojas de cálculo, importaciones sencillas, datos planos | .csv |
| JSON | API, integraciones modernas, datos anidados | .json |
Configurar XML
El formato XML te da control sobre la estructura del documento, los namespaces y los elementos que envuelven el contenido.

Opciones de XML
| Opción | Descripción |
|---|---|
| Elementos de envoltura | Nombre del elemento raíz. Puede anidarse en varios niveles (p. ej., rss → channel). |
| Elemento de ítem | El elemento que envuelve cada producto. Por defecto es item. |
| Atributos | Pares clave-valor que se añaden a los elementos de envoltura (p. ej., version="2.0"). |
| Namespaces | Declaraciones de namespaces XML: asocian un prefijo a una URI (p. ej., g → http://base.google.com/ns/1.0). |
| Hijos estáticos | Elementos hijo fijos con un nombre, un valor y envoltura CDATA opcional. Útiles para metadatos como <title>My Feed</title>. |
Ejemplo de salida XML
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>My Product Feed</title>
<item>
<name>Blue T-Shirt</name>
<price>29.99</price>
<description><![CDATA[A comfortable blue t-shirt]]></description>
</item>
<item>
<name>Red Hoodie</name>
<price>59.99</price>
<description><![CDATA[A warm red hoodie]]></description>
</item>
</channel>
</rss>Configurar JSON
El formato JSON te permite controlar la estructura del documento JSON y añadir campos de metadatos estáticos.

Opciones de JSON
| Opción | Descripción |
|---|---|
| Item key | La clave del array de productos. Por defecto es products. |
| Elementos de envoltura | Capas de objetos anidados alrededor del array de ítems (p. ej., data → catalog). |
| Campos estáticos | Pares clave-valor fijos en cada nivel de envoltura (p. ej., "version": "1.0"). |
Ejemplo de salida JSON
{
"version": "1.0",
"data": {
"catalog": {
"products": [
{
"name": "Blue T-Shirt",
"price": "29.99"
},
{
"name": "Red Hoodie",
"price": "59.99"
}
]
}
}
}Configurar CSV
El formato CSV ofrece un control detallado sobre los delimitadores, las comillas y la forma de representar los campos anidados o con varios valores.

Opciones de CSV
| Opción | Descripción | Predeterminado |
|---|---|---|
| Delimitador | Separador de campos (coma, punto y coma, tabulación, pipe) | , |
| Include header | Si se incluye una fila de encabezado | Sí |
| Carácter de comillas | Tipo de comillas (dobles, simples o ninguna) | " |
| Fin de línea | LF o CRLF | LF |
| Valor de campo vacío | Valor que se usa para los campos vacíos | (vacío) |
| Separador de múltiples valores | Separador para los campos con varios valores | | |
| Nested field format | Formato de los campos anidados: key_value o value_only | key_value |
| Separador clave-valor | Separador entre la clave y el valor en los campos anidados | : |
| Separador de pares | Separador entre los pares clave-valor en los campos anidados | ; |
| Separador de grupos | Separador entre grupos anidados | | |
Ejemplo de salida CSV
name,price,description
"Blue T-Shirt","29.99","A comfortable blue t-shirt"
"Red Hoodie","59.99","A warm red hoodie"Gestionar los campos de salida
Los campos de salida definen qué campos aparecen en tu feed y en qué orden. Los gestionas desde la pestaña Campos de salida de tu canal personalizado.

- Añadir: haz clic en Añadir para crear un nuevo campo. Escribe el título y configura las opciones.
- Editar: haz clic en la fila de un campo para abrir la ventana de edición.
- Eliminar: haz clic en el botón de eliminar de la fila de un campo. Se te pedirá que lo confirmes.
- Reordenar: arrastra y suelta los campos con el tirador para cambiar su orden en la salida.

Opciones de campo
| Opción | Descripción | Se aplica a |
|---|---|---|
| Título | El nombre del campo tal como aparece en la salida | Todos los formatos |
| Tipo de salida | Indicación del tipo de dato (texto, URL, imagen, fecha, booleano) | Todos los formatos |
| Namespace | Prefijo de namespace XML para este campo | Solo XML |
| CDATA | Envuelve el valor en una sección CDATA | Solo XML |
| Multiple | El campo puede contener varios valores | Todos los formatos |
Crear campos anidados
Los canales personalizados admiten una jerarquía de campos padre e hijo de hasta dos niveles. Los campos anidados te permiten agrupar datos relacionados bajo un elemento padre.
Para crear campos anidados:
- Añade un campo padre (p. ej.,
shipping) - Añade campos hijo y establece su Parent en el campo que acabas de crear (p. ej.,
country,price)
INFO
Un campo padre funciona como contenedor, así que no tiene valor propio. Solo los campos hijo contienen datos de producto.
Cómo se muestran los campos anidados
La misma estructura de padre e hijo se muestra de forma distinta según el formato:
XML: elementos anidados dentro del elemento padre:
<shipping>
<country>US</country>
<price>5.99</price>
</shipping>JSON: objeto anidado dentro de la clave padre:
{
"shipping": {
"country": "US",
"price": "5.99"
}
}CSV: aplanado con los separadores configurables:
shipping
"country:US;price:5.99"Crear un feed con un canal personalizado
Cuando tu canal personalizado tenga los campos de salida configurados, puedes crear un feed que lo use:
- Ve a Feeds → Nuevo feed
- Selecciona tu canal personalizado en la lista de canales
- Haz clic en Crear
- Copia la URL del feed para usarla en tu integración
- Configura el Mapeo de salida para mapear los datos de tus productos a los campos de salida que definiste

Acceder a los distintos formatos
Si tu canal personalizado tiene varios formatos activados, puedes acceder a cada uno cambiando la extensión del archivo en la URL del feed:
https://feeds.feedr.com/your-hash.xmlhttps://feeds.feedr.com/your-hash.csvhttps://feeds.feedr.com/your-hash.json
Solo estarán disponibles los formatos que hayas configurado en el canal. Si pides un formato que no está configurado, se devolverá un error.

WARNING
Asegúrate de haber configurado las opciones específicas (elementos de envoltura, delimitadores, etc.) de cada formato que actives. Los valores predeterminados sirven para los casos sencillos, pero la mayoría de las integraciones necesitarán algún ajuste.
Duplicar un canal personalizado
Puedes duplicar un canal personalizado existente para crear una copia con todos sus campos de salida y configuraciones de formato intactos. Es útil cuando necesitas un canal parecido con pequeñas variaciones: duplícalo y ajusta las diferencias en lugar de empezar desde cero.
Puedes duplicar un canal personalizado existente para crear una copia con todos sus campos de salida y configuraciones de formato intactos. Es útil cuando necesitas un canal parecido con pequeñas variaciones: duplícalo y ajusta las diferencias en lugar de empezar desde cero.