Edición masiva de categorías y colecciones
Planes: Starter ✓ · Growth ✓ · Pro ✓ · Agency ✓
Cuando tu catálogo pasa de un puñado de categorías, abrir cada una para ajustar nombre, slug o metadatos SEO se vuelve un peñazo. El modo Bulk Edit convierte el listado de categorías/colecciones en una tabla plana editable estilo Notion, así puedes barrer toda la tienda de una pasada.
La misma pantalla gestiona tanto las Categories de BigCommerce como las Collections de Shopify — las entidades subyacentes difieren pero el modelo de edición de Clione es unificado. Las secciones por plataforma de abajo explican exactamente lo que la plataforma te permite empujar de vuelta.
Dónde encontrarlo
Página Categories (o Collections en Shopify) → botón ✎ Bulk Edit arriba a la derecha en la cabecera.
Activarlo colapsa la jerarquía en una lista plana alfabética y reemplaza la tabla de solo lectura con inputs en vivo en cada celda. Pulsa ✓ Done editing para volver a la vista de árbol.
Qué es editable
| Columna | Tipo | Notas |
|---|---|---|
| Name | text | Nombre público, mostrado en listados del storefront |
| Slug | text (monoespaciado) | Segmento de URL — déjalo vacío para mantener el valor por defecto de la plataforma |
| Meta Title | text | Override del <title> SEO para la página de la categoría |
| Meta Description | textarea (2 filas) | <meta name="description"> SEO — 150-160 chars óptimo |
| Description | textarea (2 filas) | Descripción larga mostrada a compradores |
| Image URL | text (monoespaciado) | URL de la imagen hero; la subida aún no se soporta (pendiente) |
La columna Status es solo lectura y muestra Visible/Hidden, o un flash de progreso de guardado (Saving… / ✓ Saved / ✗ Error) cuando la fila tiene una petición en vuelo.
Cómo funciona el guardado
No hay un botón global de Save. Cada celda se auto-guarda cuando haces click fuera del campo:
- Pulsa una celda → capturamos el valor actual como snapshot
- Edita libremente — los cambios aparecen en la UI inmediatamente (optimistic)
- Pulsa fuera del campo → comparamos con el snapshot; si algo cambió, mandamos una petición
PATCHsolo para ese campo - Si tiene éxito, la fila parpadea ✓ Saved durante 2 segundos
- Si falla, la fila parpadea ✗ Error, hace rollback al snapshot, y un toast explica qué pasó
Esto significa que puedes hacer Tab por toda una fila editando cuatro celdas, y cada una se guarda independientemente. Las microcaídas de red solo hacen rollback de la celda concreta que falló.
Qué no está en bulk edit
- Campos de enriquecimiento (descripción IA, razonamiento, search keywords, quality scores) — viven en la pestaña Edit del detalle de la categoría, donde llevan confirmaciones OVERWRITE para evitar pérdidas accidentales.
- Subida de imagen — puedes pegar una URL de imagen existente, pero el uploader (con Cloudinary/S3) está pendiente.
- Toggle de visibilidad — ocultar/mostrar una categoría aún no es bulk-editable; usa la vista de detalle.
- Reordenación — el orden está fijado a lo que la plataforma envía.
Comportamiento por plataforma
BigCommerce — Categories
- Árbol — las categorías de BigCommerce son jerárquicas. Bulk Edit las aplana en orden alfabético, pero los slugs y meta titles siguen aplicándose al nodo que edites; la estructura de árbol se restaura al salir de Bulk Edit.
- Campo Slug — mapea a
custom_url.urlen el v3 catalog de BC. El PATCH envía{ custom_url: { url, is_customized: true } }para que BC deje de auto-regenerar la URL desde el nombre. - Meta Title — mapea a
page_title. - Meta Description — mapea a
meta_description. - Meta Keywords (solo BC) — visible en la página de detalle de la categoría, no en el grid bulk. BC acepta hasta 255 chars en total para
meta_keywords; separados por coma. - Description — mapea a
description(HTML permitido; las etiquetas HTML sobreviven pero el input es texto plano). - Image URL — mapea a
image_url. BC acepta URLs externas; si quieres alojarla en BC, sube vía el admin de BC primero y luego pega la URL resultante aquí. - Visibilidad —
is_visiblees solo lectura en el grid bulk (usa la vista de detalle).
Shopify — Collections
- Manual vs Smart collections — ambas aparecen en el grid bulk. Las smart collections están marcadas con un chip
Smarty el campoDescriptiones editable; el set de reglas en sí no lo es — abre la collection en el admin de Shopify para editar reglas smart. - Campo Slug — mapea a
handleen el recursoCollectionde la Admin GraphQL. Shopify auto-deriva el handle a partir del title al crear; una vez lo pones explícitamente, se queda fijo. - Meta Title — mapea a
metafields.global.title_tag. - Meta Description — mapea a
metafields.global.description_tag. - Description — mapea a
descriptionHtml. Bulk Edit envía texto plano; si tienes HTML rico que quieres conservar, edita en la página de detalle de la collection (que preserva el editor HTML). - Image URL — mapea a
image.src. Shopify también permite alt text pero aún no está en el grid bulk. - Visibilidad — las collections de Shopify no tienen un toggle único "visible"; o están publicadas al canal de ventas Online Store o no. El grid bulk muestra el estado de publicación-en-Online-Store como solo lectura.
Multi-divisa (Shopify Markets / BC Channels)
Bulk Edit opera sobre los valores en locale por defecto, divisa por defecto. Si tienes varios Markets (Shopify) o Channels (BC), los overrides por market / por channel aún no se muestran aquí — edítalos en el admin nativo de la plataforma.
Qué no está en bulk edit
- Campos de enriquecimiento (descripción IA, razonamiento, search keywords, quality scores) — viven en la pestaña Edit del detalle de la categoría, donde llevan confirmaciones OVERWRITE para evitar pérdidas accidentales.
- Subida de imagen — puedes pegar una URL de imagen existente, pero el uploader (con Cloudinary/S3) está pendiente.
- Toggle de visibilidad — ocultar/mostrar una categoría aún no es bulk-editable; usa la vista de detalle.
- Reordenación — el orden está fijado a lo que la plataforma envía.
- Campos por locale — los metadatos traducidos de collection en Shopify no son editables desde el grid bulk. Abre el detalle de la collection, luego la pestaña Translations.
- Metafields personalizados — solo se exponen
title_tagydescription_tag. Otros metafields (incluidos los tuyos personalizados) se quedan del lado de la plataforma.
Ordenar y filtrar
El grid es ordenable por Name, Slug, longitud de Meta Title y (cuando Bulk Edit está OFF) por Status. Pulsa la cabecera de la columna para alternar. La cabecera del grid también tiene un filtro de texto que matchea Name, Slug y Meta Title en tiempo real.
Para catálogos más grandes (>100 categorías), se activa paginación a 50 filas por página. El sort y el filtro aplican a todas las páginas, no solo a la visible.
Consejos
- Sweet spot de Meta Title: 50-60 caracteres. Cualquier cosa más larga se trunca en las SERPs de Google.
- Sweet spot de Meta Description: 150-160 caracteres. Dos frases completas.
- Si una categoría no tiene metadatos SEO rellenos y tu plataforma (especialmente BigCommerce) tampoco expone uno, compradores y LLMs verán tu title/description en crudo. Rellenar Meta Title + Meta Description es de las cosas con mejor ROI que puedes hacer desde esta pantalla.
- Usa los chips de Length que aparecen bajo los inputs de Meta Title / Meta Description mientras escribes — verde cuando estás en el sweet spot, ámbar cuando estás cerca, rojo cuando pasas.
- No barras cambiando slugs sin configurar redirects antes. Shopify crea automáticamente un 301 para los handles cambiados; BigCommerce no — tendrás que añadir el redirect vía Storefront → Web pages → 301 Redirects de BC para mantener vivos los enlaces entrantes.
Resolución de problemas
El edit guarda con un flash pero revierte al refrescar — La UI optimista hizo rollback silencioso del PATCH a la plataforma. Abre la consola del navegador; si ves un 422 casi siempre es un conflicto de slug (otra categoría ya usa ese slug). Elige un slug único.
El campo Slug rechaza caracteres — Ambas plataformas restringen los slugs a [a-z0-9-]. Bulk Edit pasa a minúsculas y reemplaza espacios por - al guardar, pero ?, &, % y caracteres acentuados fallarán con 422. Quítalos antes de guardar.
Edición de description en "smart collection" de Shopify no hace nada silenciosamente — Shopify ignora las actualizaciones de descriptionHtml en smart collections en ciertos bloques de Theme. El PATCH tiene éxito (verás ✓ Saved) pero el storefront en vivo puede no recogerlo. Confirma en el admin de Shopify.
La categoría de BigCommerce desaparece del grid tras editar el image URL — BC tiene una race en sync sobre image_url cuando la URL es inválida (404). La categoría está bien, solo refresca la página. Valida la URL de la imagen antes en una pestaña del navegador.
El botón Bulk Edit está deshabilitado — El rol del usuario es member sin permiso category:write, o la tienda está en modo solo lectura (solo lectura se establece durante un sync largo). Espera a que termine el sync o pide a un admin que conceda permisos de escritura.
Atajos de teclado
En modo Bulk Edit:
- Tab — mover a la siguiente celda de la fila.
- Shift+Tab — mover a la celda anterior.
- Enter — confirmar la celda y moverse abajo a la misma columna en la siguiente fila.
- Esc — descartar cambios pendientes en la celda y restaurar el valor del snapshot.
- Cmd/Ctrl + S — forzar guardado de todas las celdas pendientes (útil antes de navegar fuera).
El estado de guardado se preserva si por error cierras la pestaña — las ediciones optimistas pendientes se reintentan al reabrir.
Cómo interactúa Bulk Edit con el sync
Si estás en Bulk Edit mientras un sync está corriendo:
- BigCommerce: las ediciones se encolan y se despachan solo cuando el sync termina (para evitar que el PATCH de catalog haga race con el upsert del sync).
- Shopify: las ediciones van inmediatamente, pero la mutación
metafieldsSetde Shopify puede colisionar con la lectura del sync. El grid reintenta con backoff; verás "Saving…" más tiempo de lo habitual pero aterriza.
Si un sync arranca mientras editas, verás un banner: "Sync in progress — edits will queue". Pulsa Wait para seguir editando (en cola); pulsa Pause para parar de editar hasta que el sync termine.
Audit log
Cada edición de celda crea una entrada de auditoría visible en Store → Audit log:
- Usuario que hizo la edición
- Entidad (nombre + ID de category/collection)
- Campo cambiado
- Valor antiguo → valor nuevo
- Timestamp
- IP + user-agent
Esto es esencial cuando varios admins trabajan sobre el mismo catálogo — una regresión en metadatos SEO se puede rastrear y revertir desde la propia entrada de audit log (pulsa Restore en la entrada).
Consistencia entre plataformas
Cuando tienes la misma categoría tanto en BC como en Shopify (p. ej. vendes los mismos productos en ambos), Bulk Edit no sincroniza las ediciones entre plataformas automáticamente. El catálogo de cada plataforma se edita independientemente.
Si quieres consistencia, el flujo es:
- Edita en una plataforma vía Bulk Edit.
- Exporta CSV (bajo el menú de tres puntos del grid).
- Importa el CSV en la página de categoría de la otra plataforma (la importación CSV está actualmente en el roadmap; por ahora, espejo manual).
Edición por locale (Shopify Markets)
Si has activado Shopify Markets con varios idiomas, el meta_title y meta_description traducidos viven en recursos Translation, no en los metafields por defecto. El grid bulk edita solo los valores en locale por defecto. Para editar traducciones:
- Abre la página de detalle de la collection en Clione.
- Pulsa la pestaña Translations.
- Elige el locale destino.
- Edita los campos meta traducidos.
- Guarda (auto-guarda por locale, igual que el grid bulk).
BigCommerce tiene soporte por locale limitado para categorías — consulta los docs de la plataforma. Clione no expone los campos multi-locale de BC en el grid bulk hoy.
Flujos habituales de bulk-edit
- Barrido SEO antes de un launch — abre Bulk Edit, ordena por longitud de Meta Title ascendente. Cualquier cosa por debajo de 30 chars probablemente sea demasiado corta. Arregla en sitio.
- Limpieza de slugs tras un rename — ordena por columna Slug, escanea patrones inconsistentes (algunos con
-, algunos con_, algunos sin separador). Estandariza. - Auditoría de imágenes — ordena por columna Image URL con un filtro "is null". Rellena las que faltan.
- Consolidación de árbol de categorías — sal de bulk edit, mira el árbol, identifica duplicados. Abre Bulk Edit, renombra para claridad, luego fusiona vía la vista de detalle.
Reglas de validación
El grid valida los inputs al perder foco:
| Campo | Validación |
|---|---|
| Name | 1-255 chars, sin HTML. |
| Slug | [a-z0-9-], 1-100 chars, debe ser único en el catálogo. |
| Meta Title | 1-255 chars (truncado por Google en ~60). |
| Meta Description | 1-500 chars (truncado por Google en ~160). |
| Description | 0-10000 chars. |
| Image URL | URL válida (http/https), alcanzable (chequeo HEAD). |
Los fallos de validación no auto-guardan — la celda se queda editable con el valor anterior, y un icono rojo muestra qué está mal.
Referencia de interacción con sync
| Estado de Bulk Edit | Arranca el sync | Qué pasa |
|---|---|---|
| Idle | — | El sync corre normal. |
| En Bulk Edit, sin escrituras pendientes | Arranca el sync | Banner: "Sync in progress, edits will queue". Puedes seguir editando; las escrituras se encolan. |
| En Bulk Edit, escritura pendiente | Arranca el sync | La escritura pendiente termina primero, luego el sync procede. |
| En Bulk Edit | El sync da error | Las escrituras pendientes drenan normal; el error del sync no las afecta. |
| Idle | El sync da error | Se muestra el error del sync; los conteos de entidad pueden quedar viejos hasta el siguiente sync. |
Cómo se propagan las ediciones
Bulk Edit escribe los cambios a BC / Shopify directamente, y luego re-lee el valor de la plataforma para confirmar. La re-lectura usa el endpoint estándar de API de la plataforma:
- BigCommerce —
GET /v3/catalog/categories/:idpara confirmar. - Shopify — query GraphQL
Collection(id:)para confirmar.
Si el confirm difiere de lo que guardaste, la fila parpadea ✗ Error y hace rollback. Esto pilla validación del lado de la plataforma que transforma el valor silenciosamente (p. ej. whitespace al final eliminado, escape de HTML).