# Importación de Productos

Siempre que  se vaya a realizar una importación de datos es recomendable hacer previamente una [Copia de Seguridad](https://abillander.gitbook.io/abillander-tutorial-spanish/primeros-pasos/1.2-configuracion-de-abillander/copias-de-seguridad) de la Base de Datos.

{% hint style="danger" %}
La Importación de Datos escribe directamente sobre la Base de Datos, saltando controles y validaciones que se llevan a cabo cuando los datos son resultado del uso normal de aBillander. Asegúrese de que los datos que introducirá son completos y consistentes.
{% endhint %}

## **1.1 Importación de Productos**

La importación de productos se realiza a partir de los datos del fichero de importación. La funcionalidad de Importar Productos está en el menú:

**Sistema > Importar > Productos**.

{% hint style="danger" %}
Antes de realizar una importación de datos, realice siempre una copia de seguridad; está en el menú **Usuario > Copias de Seguridad**
{% endhint %}

Se puede simular la importación para comprobar previamente que los datos de productos a importar no contienen errores. De esta forma no se modificará la base de datos.

### Crear / Actualizar Productos

Diríjase a la pestaña:

**Sistema > Importar > Productos :: Productos**

Si la importación tiene como objeto ***crear productos***, hay dos características a tener en cuenta:

1. En la hoja de importación deben estar al menos todos los campos obligatorios.
2. No debe incluir la columna **id** en la hoja de importación. Este campo lo asignará aBillander, ya que es un identificador único del producto en la base de datos.&#x20;

Si se intenta crear un producto que ya existe en aBillander, se actualizará con los datos que haya en la hoja de importación. Se considera que un producto ya existe en la base de datos de aBillander si coinciden el campo **reference**.

Si el objetivo de la importación es ***actualizar productos,*** hay dos características a tener en cuenta:

1. Hay que incluir obligatoriamente en la hoja de importación el campo **id** o bien el campo **reference.** Si se dan los dos, tiene preferencia el **id** y por tanto es el que se empleará para identificar el producto.
2. Solo es necesario dar las columnas que se van a actualizar.

{% hint style="info" %}
Solo es necesario dar las filas de los productos que se quieran ***crear*** o ***actualizar***.
{% endhint %}

La importación funciona de la siguiente manera

\- Los productos que no existen en aBillander, se crean con la información contenida en el fichero importado.

\- Los productos que ya existen en aBillander, se modifican con los nuevos campos importados.

### Actualizar el Precio de los Productos

La funcionalidad de Actualizar el Precio de los Productos está en el menú:

**Sistema > Importar > Productos :: Precios**

Mediante esta funcionalidad podrá actualizar diversos campos relativos al Precio del productos. Algunos de estos estos campos, como el Precio de la Última Compra, son calculados por aBillander, y no pueden ser actualizados desde la pestaña **Productos**. Utilice el botón ***Exportar Cabeceras*** para ver los campos disponibles.

{% hint style="info" %}
Si desea conservar el valor actual para algún campo, puede dejar la celda vacía en la Hoja de importación.
{% endhint %}

## **1.2 Exportación de Productos**

La funcionalidad de Exportar está en:

**Menú Sistema > Productos**, botón gris ![](https://firebasestorage.googleapis.com/v0/b/gitbook-28427.appspot.com/o/assets%2F-LGiyWyuqJs3VwJihTLA%2F-LMc6UokqrmKMOAMU8bL%2F-LMc7l3XA83AJMHBSrXf%2Fbotoncillos_exportar.png?alt=media\&token=c45016b4-7363-48d2-81fd-0c497925f1fb) con un icono de una hoja Excel más el texto “Exportar”.

El resultado es el archivo Excel con los datos de los productos.

{% hint style="info" %}
Otra ruta para funcionalidad de Importar Productos está en:

**Menú Sistema > Productos**, botón amarillo ![](https://firebasestorage.googleapis.com/v0/b/gitbook-28427.appspot.com/o/assets%2F-LGiyWyuqJs3VwJihTLA%2F-LMc8qXqQ3WGKP_dxhsI%2F-LMc8xYJBaTE48L133DP%2Fbotoncillos_importar.png?alt=media\&token=e5bbd788-72b5-46af-b2d2-69e1527f54d4) con el texto “Importar”.

Seleccionando "Fichero".
{% endhint %}

## El Fichero de Importación de Productos

El fichero con los datos de Productos debe tener una sola hoja de cálculo. La primera fila contiene las cabeceras con los nombres de los campos de la ficha de producto. En las filas siguientes deberán estar los datos de los productos correspondientes a cada cabecera.&#x20;

### Campos y formato de las columnas

Puede descargar en el siguiente enlace el  documento con la estructura, descripción y formato  (tipo y valores) de cada uno de los campos de la Tabla de Productos:&#x20;

{% file src="<https://2200980857-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LT41Z4DE46O6Yg41uep%2F-M5Cw0fbeoKVGXuMwUNB%2F-M5DKMHnrAvEhsM2T0cp%2FaBillander_Tabla-Productos.pdf?alt=media&token=f65d97dc-346b-413b-8bd4-2da44efe4724>" %}

En la Tabla-Productos se describen todos los datos de un producto que se pueden modificar. No está  el campo **id** ya que es un identificador único del producto en la base de datos, ni los campos calculados por el sistema como son *last\_purchase\_price*, *cost\_average* y otros.

Los campos marcados con \* son campos obligatorios cuando se crean productos.

{% hint style="success" %}
Si los productos ya existen, para actualizar campos debe incluir la referencia para identificar el producto (normalment el campo **id** o bien el campo **reference**) y la/s columnas con el campo a actualizar.&#x20;

Las cabeceras se pueden descargar en el menú:&#x20;

**Sistema > Importar > Productos,** botón **"Exportar Cabeceras".**&#x20;
{% endhint %}

A continuación información adicional de alguno de los campos de la Tabla-Productos :&#x20;

* Campo **product\_type**. Los productos pueden ser de uno de los siguientes tipos:

  -*simple* (simple): producto único, que se envía al Cliente. Un producto simple no tiene combinaciones.

  -*virtual* (servicio): no requiere envío ni gestión de stock (servicios, productos digitales, etc.).

  \- *combinable* (combinable): producto con combinaciones, por ejemplo una camiseta que tiene diferentes tallas y/o colores.

  \- *grouped* (agrupado): una agrupación de productos simples que se vende como una unidad única (cesta de Navidad).

{% hint style="warning" %}
Es fundamental respetar las fuentes minúsculas o mayúsculas en el nombre del campo (columna "Campo"), el valor del campo y el nombre como tal del valor del campo (columna "Valores"): no es válido la traducción, así el nombre del tipo de producto es *grouped* y no es válido “agrupado”.
{% endhint %}

* Campo **stock\_control**: El control de stock se aplica solo a los productos de tipo simple o de tipo combinable. El stock de producto agrupado se deduce a partir de los componentes.

* Campo **procurement\_type**. El aprovisionamiento para un producto puede ser:

  \- *purchase* (compra): se aprovisiona mediante una orden de compra.

  \- *manufacture* (fabricación): se aprovisiona mediante una orden de fabricación.

  \- *none* (ninguno): estos productos no requieren transporte ni gestión de stock (servicios, productos digitales, etc.).

  \- *assembly* (semi-elaborado): son productos de fabricación intermedios. Pueden ser de dos tipos:

  * no fantasma: se aprovisiona mediante una orden de fabricación. Existe como producto físico y normalmente debe controlarse el stock
  * fantasma (phantom\_assembly): un semi-elaborado fantasma es una agrupación lógica de materiales. Normalmente no existe como producto físico. Cuando se fabrica el producto “padre”, las necesidades de materiales se pasan directamente a los componentes del semi-elaborado fantasma.

{% hint style="warning" %}
El tipo “fantasma” se aplica solo a productos semi-elaborados.
{% endhint %}

> Ejemplo 1: Imaginemos el montaje de una bicicleta que se hace directa y secuencialmente a partir de cada uno de sus componentes. La lista de materiales para el producto bicicleta estaría formada por todos los componentes, algo así como:
>
> “una bicicleta se compone de un manillar, un freno delantero, una llanta delantera, etc.”
>
> Sin embargo desde un punto de vista lógico podría interesar describir la lista de materiales como:
>
> “una bicicleta se compone de un manillar, un freno delantero, una llanta delantera, etc.”
>
> “una bicicleta se compone de un manillar, un freno delantero, una llanta delantera, etc.”
>
> “una bicicleta se compone de un cuadro, una horquilla de dirección y dos ruedas”
>
> “un cuadro se compone de …”
>
> “una horquilla se compone de …”
>
> “una rueda se compone de …”
>
> En este caso los productos cuadro, horquilla y rueda serían productos semi-elaborados fantasma, y desde el punto de vista de la fabricación, se obtendrían las mismas necesidades de materiales que si se especificara la lista de materiales de la primera forma.

> Ejemplo 2: en un obrador, sus productos tienen procurement\_type:
>
> -purchase para los ingredientes
>
> -manufacture para los productos que elabora

Los Gastos se consideran del tipo none (gastos de envío, gastos bancarios, etc.).

En esta tabla están marcados (X) los tipos de aprovisionamiento posibles para cada tipo de producto:

| ​          | Compra | Fabricación | Ninguno | Semi-elaborado |
| ---------- | ------ | ----------- | ------- | -------------- |
| Simple     | X      | X           | X       | X              |
| Servicio   | ​      | ​           | X       | ​              |
| Combinable | X      | X           | X       | X              |
| Agrupado   | ​      | X           | ​       | ​              |

* Campo **reference** es el Código del producto en FactuSOL.

* Campo **manufacturing\_batch\_size** (Tamaño de Lote de Fabricación) es un número decimal obligatorio para productos elaborados. Para productos como por ejemplo ingredientes no tiene sentido y por tanto se puede eliminar la columna. Lo mismo pasa con el campo **work\_center\_id** para productos como por ejemplo ingredientes (no poner la columna).

{% hint style="info" %}
Los campos en que su contenido puede ser SI o NO, como el campo **stock\_control**, tienen valor 1 (si es SI), 0 (si es NO) . No pueden rellenarse con true/ false o verdadero/falso).
{% endhint %}

* El campo **blocked** se refiere a las Ventas no permitidas. El campo **active** tiene valor 1 para los productos activos.

* El campo **tax\_id** tiene los valores según se han definido previamente en la tabla de impuestos en el menú [Sistema Impuestos](https://abillander.gitbook.io/abillander-tutorial-spanish/1.2-configuracion-de-abillander/configuraciones#configuracion-de-impuestos), es decir: 1 IVA Normal, 2 IVA Reducido, 3 IVA Super Reducido y 4 IVA Exento (0%). Los valores por tanto son numéricos 1, 2, 3 o 4.

* El campo **measure\_unit\_id** tiene los valores según se han definido previamente en la tabla de unidades de medida en impuestos en el menú [Sistema > Unidades de Medida](https://abillander.gitbook.io/abillander-tutorial-spanish/fabricacion#unidades-de-medida), por ejemplo: 1 para productos elaborados (normalmente para productos terminados será “Unidad(es)”).

* El campo **category\_id c**ontine los valores de Sub-Categorías según se han definido previamente en la tabla de Categorías en el menú [Sistema > Categorías de Productos](https://abillander.gitbook.io/abillander-tutorial-spanish/almacen) y a continuación en el botón azul [“Ver Sub-Categorías”](https://hanok.gitbook.io/abi/temp-1#permitir-sub-categorias). Cuando se crea un nuevo Producto es necesario asignarle un **category\_id**. Para ello hay un desplegable con el árbol de Categorías previamente creadas en la tabla de Categorías.

* En el campo **route\_notes** (descripción del proceso de fabricación ) está el ID del centro de trabajo **work\_center\_id** en el que se fabrica habitualmente el producto, según se han definido previamente en la tabla de centros de trabajo en el menú [Sistema > Centros de Trabajo](https://hanok.gitbook.io/abi/fabricacion#centros-de-trabajo) (1, 2, etc. según el centro de trabajo). El Alias del centro de trabajo es un nombre corto y práctico para manejarlo con facilidad especialmente en sitios en que no caben nombres largos. El campo **route\_notes** está vacío para productos como por ejemplo ingredientes.

{% hint style="danger" %}
&#x20;El fichero se compone de una única hoja de cálculo. La primera fila son las cabeceras de cada uno de los campos descritos en la tabla anterior:
{% endhint %}

![](https://2200980857-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LT41Z4DE46O6Yg41uep%2F-LT4mTWyu01Q5nfI3j5S%2F-LT4o1OqpTlSXd5U_P0H%2FaBillander_excel_productos.png?alt=media\&token=470190ca-304b-46c6-bcdf-c79b04e72258)

### FactuSOL <a href="#factusol" id="factusol"></a>

Si tiene datos de productos previamente en FactuSOL, la correspondencia con los campos de Tabla-Productos es:

* campo **reference** es el Código del producto en FactuSOL.
* campos **price** y **price\_tax\_inc** son los que corresponden a la tarifa por defecto en FactuSOL.

La correspondencia entre Secciones y Familias de FactuSOL y las Categorías en aBillander es la siguiente: en aBillander se crean las Categorías, que deberían corresponderse con las Secciones de FactuSOL, y las Sub-Categorías que deben corresponderse con las Familias de FactuSOL. El campo **category\_id** contiene el ID de la SubCategorías a la que esté asociado el producto (elaborado o ingrediente), es decir se refiere a la Familia de FactuSOL (que es de donde “cuelgan” directamente los artículos en FactuSOL).
