**[[start|Inicio]] · [[help:mapa_antpro|Mapa]] · [[help:app_productos|Productos y servicios]] · [[help:importar_items_excel|Importar ítems desde Excel/CSV]]** //Esta guía explica la pantalla **Importar Ítems desde CSV**, con la que puede cargar o actualizar **cientos de productos de una sola vez** desde una planilla preparada en Excel y guardada como CSV: ítems, listas de precios, precios de compra por proveedor, unidades de medida, kits de venta, listas de materiales y códigos alternativos. También permite **exportar** esos mismos datos para corregirlos en Excel y volver a cargarlos.// ====== Importar ítems desde Excel/CSV ====== ===== En 2 minutos ===== Dar de alta productos uno por uno en **Productos y servicios → Productos / ítems** está bien para diez; para quinientos, no. Esta pantalla lee un archivo **CSV** (texto separado por comas, que Excel genera con //Guardar como → CSV//) y, fila por fila: * **crea** el ítem si el código no existe, o lo **actualiza** si ya existe (descripción, categoría, unidad, tipo, cuentas), * crea la **categoría** y la **unidad de medida** si no existen, * opcionalmente carga el **precio de venta** de la lista que elija, * y, con otros tipos de fila, carga **precios de compra por proveedor**, **kits**, **listas de materiales** y **códigos alternativos** (códigos de barras o del proveedor). Las cuentas contables de los ítems nuevos (ventas, inventario, costo, ajuste, ensamblaje) se toman de los **valores por defecto** que la pantalla muestra arriba; NITRO los valida antes de importar. **No genera asientos**: solo crea maestros. El inventario inicial de esos ítems se carga después con un **ajuste de inventario** ([[help:inventario_completo#ajustes_de_inventario|Ajustes de inventario]]) o con el [[help:contabilidad_completo#balance_de_apertura_saldos_iniciales|Balance de apertura]]. > **¿Excel o CSV?** La pantalla acepta solo **CSV**. Prepare la planilla en Excel y guárdela como //CSV (delimitado por comas)//. Si sus descripciones llevan comas, guarde con separador **;** y escriba //;// en el campo //Field separator//. > **¿Es lo mismo que Importaciones?** No. [[help:importaciones_polizas|Importaciones (pólizas e ítems importados)]] carga ítems **de una póliza de importación** con datos aduaneros (DIM, subpartida, serie, lote, vencimiento) y los lleva a una carpeta de costeo. Esta pantalla carga el **catálogo** general, sin datos aduaneros, y además precios, kits y unidades. ===== Dónde está y permisos ===== Es un **complemento** del módulo **Productos y servicios** (nombre del complemento: //Importar Ítems desde CSV//). Para usarlo: - El complemento debe estar **activo en su empresa**. Si al abrirlo ve //"Las configuraciones de seguridad de su cuenta no le permiten acceder a esta función"// aunque sea administrador, el complemento no está activado para la empresa o su rol no tiene el área **Importar Ítems desde CSV** (⚙ → Roles y accesos). Pida al soporte que lo active y vuelva a entrar. - La pantalla no figura en las barras de NITRO X; se abre por enlace directo: [[https://nitro.com.de/demo/modules/import_items/import_items.php|abrir en el demo]] (en su instalación, reemplace «demo» por el nombre de su empresa). > La pantalla conserva sus **textos en inglés** (//Import of CSV formatted Items//, //Default GL Accounts//, //Import CSV File//...). Esta guía los cita tal como aparecen. ===== Conceptos (tipos de fila) ===== El archivo tiene **siempre 10 columnas**, en este orden, y la **primera columna dice qué tipo de dato trae la fila**. La primera línea del archivo es el encabezado (se ignora). Las columnas que un tipo no usa se dejan vacías (pero deben existir, para mantener las 10 posiciones). ^ Pos. ^ Columna ^ ITEM ^ PRICE ^ BUY ^ UOM ^ KIT / FOREIGN ^ BOM ^ | 1 | **type** | ITEM | PRICE | BUY | UOM | KIT o FOREIGN | BOM | | 2 | **item_code** | código del ítem | código del ítem | código del ítem | abreviatura de la unidad | código del kit / código alternativo | código del producto padre | | 3 | **stock_id** | el mismo código | – | – | nombre de la unidad | código del ítem componente | código del componente | | 4 | **description** | descripción | – | descripción para el proveedor | – | descripción | nombre del centro de trabajo | | 5 | **category** | categoría (se crea si no existe) | – | **nombre del proveedor** (debe existir) | – | categoría | – | | 6 | **units** | unidad de medida | – | unidad del proveedor | – | – | – | | 7 | **qty** | dimensión (opcional, se crea) | – | factor de conversión | decimales | cantidad del componente en el kit | cantidad del componente | | 8 | **mb_flag** | B / M / S | – | – | – | – | – | | 9 | **currency** | moneda del precio (vacío = Bs) | moneda | moneda | – | – | – | | 10 | **price** | precio de venta (opcional) | precio de venta | precio de compra | – | – | – | * **mb_flag**: **B** = comprado / mercadería (lleva inventario), **M** = fabricado (producción), **S** = servicio (sin inventario). * **NOTE** en la columna //type// = comentario; la fila se ignora. * **FOREIGN** asocia un **código alternativo** (código de barras, código del proveedor) a un ítem existente: en //item_code// va el código alternativo y en //stock_id// el ítem de NITRO. * **KIT** crea un **kit de venta**: //item_code// es el código del kit, //stock_id// cada componente y //qty// su cantidad. Una fila por componente. * **BOM** crea la **lista de materiales** para producción: //item_code// el producto, //stock_id// el insumo, //description// el centro de trabajo (se crea si no existe), //qty// la cantidad. * **BUY** carga el **precio de compra** por proveedor; el proveedor (columna //category//) debe existir con ese nombre exacto. Si el ítem no tiene costo estándar, se le asigna este precio como costo. ==== Plantilla mínima para cargar productos ==== type,item_code,stock_id,description,category,units,qty,mb_flag,currency,price ITEM,CEM-IP30,CEM-IP30,Cemento Portland IP-30 (bolsa 50kg),Materiales,U,,B,,58 ITEM,CLAVO-3,CLAVO-3,Clavo 3 pulgadas (kg),Ferretería,kg,,B,,16 ITEM,SRV-INST,SRV-INST,Servicio de instalación,Servicios,U,,S,,250 PRICE,CEM-IP30,,,,,,,BOB,55 FOREIGN,7791234567890,CLAVO-3,Clavo 3 pulgadas (kg),Ferretería,,1,,, KIT,KIT-ALBANIL,CEM-IP30,Kit albañil,Kits,,2,,, KIT,KIT-ALBANIL,CLAVO-3,Kit albañil,Kits,,5,,, UOM,kg,Kilogramo,,,,2,,, Guárdela como CSV con separador coma (o **;** si usa comas en las descripciones) y codificación UTF-8 para que se respeten las tildes. ===== Preparación ===== - **Haga un respaldo** de la empresa (⚙ → Respaldo y restauración). La importación **actualiza** ítems existentes y no tiene "deshacer". - Revise que existan las **cuentas contables por defecto** (ventas, inventario, costo de ventas, ajuste de inventario, costos de ensamblaje) en ⚙ → Config. Sistema y Libro Mayor; la pantalla las propone. - Cree el **almacén**, el **tipo de impuesto** de ítem (IVA) y el **tipo de venta** (lista de precios) que usará, si no existen. - Para filas **BUY**, cree antes los **proveedores** con el nombre exacto; para **FOREIGN**, **KIT** y **BOM**, los ítems referenciados deben existir (o venir antes en el mismo archivo como filas ITEM). ===== La pantalla y sus campos (pestaña Import) ===== ^ Campo (como aparece) ^ Significado ^ | **Sales Account** | Cuenta de ventas que recibirán los ítems **nuevos** (los existentes también se actualizan con ella). | | **Inventory Account** | Cuenta de inventario (activo). Debe ser de inventario, no de caja/banco. | | **C.O.G.S. Account** | Cuenta de costo de ventas. | | **Inventory Adjustments Account** | Cuenta de ajustes/diferencias de inventario. No puede ser la misma que la de inventario. | | **Item Assembly Costs Account** | Cuenta de costos de ensamblaje (producción en proceso). | | **Field separator** | Separador del CSV: **,** (por defecto) o **;**. | | **To Location** | Almacén en el que se habilitan los ítems con inventario. | | **Item Tax Type** | Tipo de impuesto de los ítems (normalmente IVA). | | **Sales Type** | Lista de precios a la que van los precios de las filas ITEM, KIT y PRICE. | | **CSV Import File** | El archivo. | | Botón **Import CSV File** | Ejecuta la importación. | NITRO valida las cuentas antes de importar: si alguna no existe en el plan, es de caja/banco o la de ajuste coincide con la de inventario, muestra el error y no importa nada. ===== Procedimiento paso a paso ===== - Prepare la planilla en Excel con las 10 columnas y guárdela como **CSV**. - Abra la pantalla (pestaña **Import**, que es la inicial). Revise las cinco cuentas propuestas; cámbielas solo si los ítems de este archivo deben ir a otras cuentas (por ejemplo, una categoría de productos con cuenta de ventas distinta). - Elija el **separador**, el **almacén**, el **tipo de impuesto** y la **lista de precios**. - Seleccione el archivo en **CSV Import File** y presione **Import CSV File**. - Lea el resumen: //"N item posts created, M item posts updated."// y, si corresponde, //"N Item Dimensions added."//, //"N sales kit components added or updated."//, //"N BOM components added or updated."//, //"N Units of Measure added or updated."//, //"N Purchasing Data items added or updated."//, //"N Prices items added or updated for X"//. Las filas que actualizaron un ítem existente se listan como //"Line N: Update CODIGO"//. - Verifique en **Productos y servicios → Productos / ítems** algunos ítems al azar: categoría, unidad, tipo, cuentas y precio. - Cargue las **existencias iniciales** con un ajuste de inventario o el balance de apertura. ===== Exportar (pestaña Export) ===== El enlace **Export** (arriba, junto a //Import//) genera un CSV con los datos actuales, útil para corregir masivamente y reimportar, o para migrar a otra empresa: ^ Export Type ^ Contenido ^ | **Item** | Todos los ítems activos (filas ITEM, sin precio). | | **Price List** | Precios de la lista elegida en //Sales Type (for Price Lists)// (filas PRICE). | | **Purchase Price** | Precios de compra por proveedor (filas BUY). | | **Units of Measure** | Unidades (filas UOM). | | **Kit** | Componentes de kits de venta (filas KIT). | | **Bill of Materials** | Listas de materiales (filas BOM). | | **Foreign Item Codes** | Códigos alternativos (filas FOREIGN). | Elija el tipo, la lista de precios si corresponde y presione **Export CSV File**. Si no hay datos, verá //"No Results to download."//. > **Flujo recomendado para cambiar precios:** exporte //Price List//, edite la columna //price// en Excel, guarde como CSV y reimporte. Los precios existentes se actualizan. ===== Qué asiento contable genera ===== **Ninguno.** Esta pantalla crea y actualiza maestros (ítems, categorías, unidades, precios, kits, listas de materiales). Las cuentas que asigna a cada ítem se usarán **después**, en cada venta, compra, ajuste o producción. El primer movimiento contable de un ítem importado será el ajuste de inventario inicial: **Debe** Inventario / **Haber** cuenta de ajuste de inventario (o la cuenta de apertura que use). ===== Situaciones y problemas comunes ===== * //"Las configuraciones de seguridad de su cuenta no le permiten acceder a esta función"// — complemento no activo en la empresa o rol sin el área. Vea [[#donde_esta_y_permisos|Dónde está y permisos]]. * //"No CSV file selected"// — presionó importar sin elegir archivo. * **Error de cuentas** (la cuenta no existe, es de caja/banco o ajuste = inventario) — corrija las cuentas propuestas antes de importar. * **Se creó un solo ítem con un nombre larguísimo** — el separador del archivo no coincide con //Field separator//: si guardó con //;//, escriba //;//. * **Tildes y eñes salen como símbolos** — guarde el CSV en UTF-8 (en Excel: //CSV UTF-8 (delimitado por comas)//). * //"Supplier X not found"// — la fila BUY nombra un proveedor que no existe con ese nombre exacto; créelo o corrija el nombre. * //"Stock Code X does not exist"// — una fila BUY apunta a un ítem inexistente; importe primero el ítem. * //"Line N: BOM Component X must be a STOCK_ID not ITEM_CODE"// — en BOM el componente debe ser un código de ítem real, no un código alternativo. * **Se duplicaron categorías** ("Ferreteria" y "Ferretería") — el nombre de categoría se compara exacto; unifique la ortografía en la planilla. * **Los ítems quedaron con cuentas equivocadas** — reimporte el mismo archivo con las cuentas correctas: los ítems existentes se **actualizan** (descripción, categoría, unidad, tipo y cuentas). * **Importé dos veces y no veo duplicados** — correcto: el código del ítem es único; la segunda importación actualizó. * **Importé y el stock sigue en cero** — es lo esperado: la importación no carga existencias; use un ajuste de inventario. ===== Preguntas frecuentes ===== * **¿Puedo cargar el stock inicial en el mismo archivo?** No. Primero los ítems con esta pantalla; luego las cantidades y costos con un ajuste de inventario o el balance de apertura. * **¿Qué pasa con los ítems que ya existen?** Se actualizan con los datos de la fila (descripción, categoría, unidad, tipo, cuentas y precio). No se borran ítems: lo que no está en el archivo queda como estaba. * **¿Sirve para dar de alta activos fijos?** No; los activos fijos se cargan en el padrón ([[help:activos_fijos_completo|Activos fijos]]). * **¿Puedo importar productos de una póliza de importación con esta pantalla?** Puede, pero perderá los datos aduaneros; para eso existe [[help:importaciones_polizas|Importaciones]]. * **¿Cómo cargo códigos de barras?** Con filas **FOREIGN** (código de barras → ítem). Para el Terminal POS también puede usar su pantalla de códigos de barras ([[help:pos_punto_de_venta#codigos_de_barras_opcional|POS → Códigos de barras]]). * **¿Por qué la pantalla está en inglés?** Es un complemento heredado que conserva sus textos originales; su funcionamiento es el descrito aquí. ===== Ver también ===== * [[help:productos_completo|Productos y servicios: guía completa]] — alta manual, categorías, unidades, precios. * [[help:productos_completo#alta_de_item_tipo_y_cuentas|Alta de ítem (tipo y cuentas)]] — qué significa cada cuenta del ítem. * [[help:inventario_completo#ajustes_de_inventario|Ajustes de inventario]] — para cargar existencias iniciales. * [[help:kits_produccion_etapas|Kits, producción y etapas]] — kits de venta y listas de materiales. * [[help:importaciones_polizas|Importaciones: pólizas e ítems importados]]. * [[help:importar_asientos|Importar asientos desde Excel]] — la otra importación masiva de NITRO.