Dos tipos de archivo traen al portal lo que guardan tus propios sistemas (página de planes): Códigos de tienda, que unen tus tiendas en vista con los nombres que les da tu ERP, y Lineal esperado, las referencias que acordaste con una cadena, dónde y desde qué semana. Los dos se importan en «Ajustes de la cuenta» › «Catálogo» › «Importar un archivo» como cualquier otro tipo, con nuestras propias columnas o con cualquier archivo cuyas columnas confirmes (Catálogo e importaciones).
Las tiendas como las nombra tu ERP
Una fila de códigos de tienda nombra su tienda por nuestro identificador, store, la columna store_id de cualquier exportación. Sin él, chain nombra la cadena de la tienda como la escribe nuestro directorio, o uno de sus formatos (Carrefour Express es Carrefour), con lo que tu ERP sabe de la tienda:
chain_code: el número propio de la cadena para la tienda, el que traen los archivos de ventas de la cadena. La fila lo guarda, y es único entre tus tiendas de esa cadena (duplicateChainCode).gln: el GLN de la tienda, con su dígito de control.address,postcodeylocality: la calle y el número como los escribe tu ERP. Las abreviaturas comoC/,Avda.oPza.,s/n, las tildes y las mayúsculas, y un centro comercial nombrado antes de la calle, se siguen leyendo como la misma calle.
La tienda se busca solo entre tus tiendas en vista de esa cadena, nunca entre las de otra: primero por el número de la cadena que ya guardas de ella, después por el GLN que guardas y después por la dirección. Una dirección nombra una tienda solo cuando una tienda encaja con claridad, por su código postal o su localidad, su calle y su número. Todo lo demás se rechaza con su motivo, y nada se adivina:
| Motivo | Lo que necesita la fila |
|---|---|
storeAmbiguous |
Varias de tus tiendas podrían ser la buena: añade el código postal, la localidad o el número |
storeNotFound |
Ninguna de tus tiendas de esa cadena encaja con la dirección, el número de la cadena o el GLN |
unknownChain |
Ninguna de tus tiendas en vista es de esa cadena, tal como la escribe nuestro directorio |
badPostcode |
El código postal no es de ninguna provincia española |
badStore |
store no es un identificador nuestro, o la fila no da una cadena con una dirección, un código postal, el número de la cadena o un GLN |
Para corregir esas filas, Descargar tus tiendas, en la página del catálogo, da tus tiendas en vista en CSV o en Excel: nuestro identificador de cada una, su cadena, su nombre, su dirección, su código postal, su localidad y su provincia, y los códigos que ya guardas. Pon el identificador en store y vuelve a importar esas filas. Por la API, find_stores responde el chainCode de cada tienda y encuentra una tienda por él.
Lineal esperado
Un archivo de lineal esperado lleva una fila por expectativa y referencia, con las columnas expectation, reference, scope, chain, province, stores, from_week, to_week, levels, min_facings, price_min, price_max, promotion_weeks, launch, target_share, target_week (las obligatorias en negrita). Se importa como se guarda una expectativa en Lineal esperado y lineal observado:
expectation: su nombre. La que ya tiene tu cuenta, sin distinguir mayúsculas, se actualiza; cualquier otra se crea, hasta 20 (expectationLimit). La importación sustituye las referencias de cada expectativa que nombra por sus filas válidas; una expectativa cuyas filas fallan todas queda como estaba.reference: el código de tu referencia, su EAN o nuestro identificador de producto, que tiene que ser uno de tus propios productos (unknownSku,unknownProduct, yunlinkedReferencecuando tu referencia aún no tiene un producto nuestro).scope:all,chain,provinceostores(otodas,cadena,provincia,tiendas), o vacío para leerlo de las celdas que vengan.chaincomo la escribe nuestro directorio;provincepor su código del INE o su nombre;storespor tus códigos de las tiendas, los números de la cadena que guardas o nuestros identificadores, separados por;, entre tus tiendas en vista (badScope).from_weekyto_week:2026-W44,W44 2026,semana 44 de 2026o cualquier día de esa semana (badWeek). Una expectativa nueva necesita su primera semana, y-deja abierta la última.- El ámbito y las semanas son los mismos en todas las filas de una expectativa, o van vacíos (
expectationConflict); si van vacíos, la expectativa conserva los suyos. levels:stoop,grab,eyeostretch(oabajo,mano,ojos,arriba), separados por;(badLevel);min_facings: hasta 99 (badFacings);price_minyprice_max: en euros, escritos como elunit_pricede una tarifa (badPrice);promotion_weeks: semanas separadas por;.
Un archivo admite hasta 5.000 filas. Después, cada expectativa se lee frente a las últimas miradas a sus tiendas, y la importación pide que se vuelvan a leer tus incidencias de lineal, como lo hace una expectativa guardada.
Lo que hace el portal con ellos
- La página de una expectativa sigue cada una de sus referencias desde su primera semana: en cuántas tiendas de su ámbito se había visto, semana a semana, y las tiendas que siguen sin ella (Lineal esperado y lineal observado).
- Una referencia que una expectativa vigente espera en una tienda cuyas últimas miradas a su categoría no la vieron encabeza los huecos de distribución como Referenciada, no vista, y la incidencia que abre es de implantación.
Por la API
En Enterprise, las importaciones de la API aceptan los dos tipos: import_file con cualquier archivo e import_rows con filas en nuestros campos, seguidas con get_import (importar por la API); los eventos de webhook import.applied e import.ended avisan de su final como en cualquier otro tipo. import_csv mantiene los tipos de Formatos CSV del módulo de campo y no acepta un archivo de lineal esperado.