Saltar al contenido principal

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

ColumnaTipoNotas
NametextNombre público, mostrado en listados del storefront
Slugtext (monoespaciado)Segmento de URL — déjalo vacío para mantener el valor por defecto de la plataforma
Meta TitletextOverride del <title> SEO para la página de la categoría
Meta Descriptiontextarea (2 filas)<meta name="description"> SEO — 150-160 chars óptimo
Descriptiontextarea (2 filas)Descripción larga mostrada a compradores
Image URLtext (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:

  1. Pulsa una celda → capturamos el valor actual como snapshot
  2. Edita libremente — los cambios aparecen en la UI inmediatamente (optimistic)
  3. Pulsa fuera del campo → comparamos con el snapshot; si algo cambió, mandamos una petición PATCH solo para ese campo
  4. Si tiene éxito, la fila parpadea ✓ Saved durante 2 segundos
  5. 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.url en 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í.
  • Visibilidadis_visible es 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 Smart y el campo Description es 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 handle en el recurso Collection de 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_tag y description_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 metafieldsSet de 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:

  1. Edita en una plataforma vía Bulk Edit.
  2. Exporta CSV (bajo el menú de tres puntos del grid).
  3. 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:

  1. Abre la página de detalle de la collection en Clione.
  2. Pulsa la pestaña Translations.
  3. Elige el locale destino.
  4. Edita los campos meta traducidos.
  5. 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:

CampoValidación
Name1-255 chars, sin HTML.
Slug[a-z0-9-], 1-100 chars, debe ser único en el catálogo.
Meta Title1-255 chars (truncado por Google en ~60).
Meta Description1-500 chars (truncado por Google en ~160).
Description0-10000 chars.
Image URLURL 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 EditArranca el syncQué pasa
IdleEl sync corre normal.
En Bulk Edit, sin escrituras pendientesArranca el syncBanner: "Sync in progress, edits will queue". Puedes seguir editando; las escrituras se encolan.
En Bulk Edit, escritura pendienteArranca el syncLa escritura pendiente termina primero, luego el sync procede.
En Bulk EditEl sync da errorLas escrituras pendientes drenan normal; el error del sync no las afecta.
IdleEl sync da errorSe 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:

  • BigCommerceGET /v3/catalog/categories/:id para 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).