Integrar albaranes

Otros

Integra tus albaranes

La integración de clientes requiere de una conexión particular de cada cliente a nuestro servidor SFTP.

Esta conexión se la creará uno de nuestros propios técnicos y se enviará a la cuenta de correo electrónico que se introdujo en el momento del registro de la empresa en Polpoo. Como ERP, deberéis pedir a la empresa que os otorgue las siguientes credenciales:

Usuario: Nombre de usuario.

Contraseña: Contraseña del usuario.

Servidor: Dirección a la que conectarse.

Puerto: Puerto por el cual se conectará el cliente a nuestro servidor.

También recibiréis la información del directorio de la empresa donde deberéis realizar las integraciones correspondientes.

En cuanto a la configuración, la empresa deberá introducir un correo electrónico de soporte para las integraciones para que, en caso de haber algún tipo de error en alguno de los procesos, el ERP pueda observar cuál ha sido la incidencia. Esto es configurable desde la Configuración de la empresa, en el apartado Integraciones

1. Tipo de documento: albarans.json

El fichero para la integración de albaranes debe llamarse albarans.json y debe estar codificado en UTF-8. Se dejará en el directorio raíz del SFTP de vuestra compañía (./company_X/).

En caso de cargar un fichero en el SFTP con el mismo nombre que un fichero ya existente, este se sobrescribirá.

En un mismo fichero tienen que venir toda la información de todos los albaranes recibos.

Si un cliente tiene más de un albarán, se tiene que añadir como nuevo registro en el array "deliveryNotes". Si por ejemplo, se entregan 5 recibos en un mismo destino, se tiene que añadir un único registro de ese cliente cliente con 5 recibos.

Es importante que la información de los campos no contenga comillas dobles (p.e: "Frutería "El sol""), ya que los ficheros .json trabajan con comillas dobles para delimitar los campos y la información. En caso de tener algún dato de este estilo, la integración no se realizará correctamente. Cualquier otro símbolo especial es aceptado.

Se definen los campos que pertenecen a este fichero de la siguiente manera:

* La información obligatoria está marcada en rojo. En caso de que no se tenga la información de un campo opcional, no se tiene que añadir la etiqueta en el fichero .json.

2. Especificaciones de los campos

id string obligatorio
Identificador único del cliente.

 

deliveryNotes.deliveryNoteCode string – obligatorio
Número o código del albarán.

 

deliveryNotes.sendDeliveryNoteCompanyId integer
Id de la compañía donde irá la información de los albaranes. *Sólo para multialmacén.

 

deliveryNotes.deliveryNoteObservation string
Observaciones del albarán.

 

deliveryNotes.deliveryNoteOrderCode string
Número del pedido referente al albarán.

 

deliveryNotes.showDeliveryNotePrice boolean
Si aparecerá el albarán con precios o sin precios.

 

deliveryNotes.promptPayDiscountPercent float
Porcentaje de descuento a aplicar en el precio total del albarán.

 

deliveryNotes.managementCost float
Coste de gestión del albarán.

 

deliveryNotes.scannedCode string – sólo con el módulo Paquetería
Código de escaneo del albarán.

 

deliveryNotes.isBill boolean 
Si es true, esta información pasará a ser de factura. Si es false o no se envío este campo, será un albarán.

 

deliveryNotes.date date
Fecha que aparecerá en el albarán.


deliveryNotes.barCode string
Imagen en base64 del código de barras que aparecerá en el albarán.

 

deliveryNotes.companyAssociated.code string – obligatorio si factura a compañía asociada
Código de la compañía asociada.

 

deliveryNotes.companyAssociated.name string – obligatorio si factura a compañía asociada
Nombre de la compañía asociada.

 

deliveryNotes.companyAssociated.nif string – obligatorio si factura a compañía asociada
NIF de la compañía asociada.

 

deliveryNotes.companyAssociated.streetAddress string – obligatorio si factura a compañía asociada
Dirección de la compañía asociada.

 

deliveryNotes.companyAssociated.city string – obligatorio si factura a compañía asociada
Ciudad de la compañía asociada.

 

deliveryNotes.companyAssociated.province string – obligatorio si factura a compañía asociada
Provincia de la compañía asociada.

 

deliveryNotes.companyAssociated.zipCode string – obligatorio si factura a compañía asociada
Código postal de la compañía asociada.

 

deliveryNotes.companyAssociated.phone string – obligatorio si factura a compañía asociada
Número de teléfono de la compañía asociada.

 

deliveryNotes.companyAssociated.billingAddress string – obligatorio si factura a compañía asociada
Correo de facturación de la compañía asociada.

 

deliveryNotes.products.code string obligatorio
Identificador del producto.

 

deliveryNotes.products.name string obligatorio
Nombre del producto.

 

deliveryNotes.products.quantity float obligatorio
Cantidad del producto.

 

deliveryNotes.products.price float obligatorio
Precio del producto por medida.

 

deliveryNotes.products.measureQuantity float
Cantidad del producto referente a la medida.

 

deliveryNotes.products.taxPercent integer obligatorio
Impuesto sobre el Valor Añadido (IVA) del producto.

 

deliveryNotes.products.equivalencePercent float
Porcentaje del recargo de equivalencia del producto.

 

deliveryNotes.products.measure string obligatorio
Formato del producto.

 

deliveryNotes.products.grossMass float
Peso bruto del producto.

 

deliveryNotes.products.tare float
Tara del producto.

 

deliveryNotes.products.netMass float
Peso neto del producto.

 

deliveryNotes.products.lotCode string
Identificador del lote al que pertenece el producto.

 

deliveryNotes.products.observation string
Observaciones del producto.

 

deliveryNotes.products.scannedCode string – sólo con el módulo Paquetería
Código de escaneo del bulto.

 

deliveryNotes.products.discountPercent integer
Descuento en porcentaje del producto.

 

deliveryNotes.products.supplierReference string
Proveedor del producto.

3. Ejemplos y descargables

{
    "deliveryPoints": [{
        "id": "119029",
        ”deliveryNotes”: [
        {
            "deliveryNoteCode": "45466770",
            "deliveryNoteObservation": "Observaciones",
            "sendDeliveryNoteCompanyId": 231,
            "deliveryNoteOrderCode": "2013",
            "showDeliveryNotePrice": true,
            "promptPayDiscountPercent": 33,
            "managementCost": 3.27,
            "scannedCode": "626763132",
            "isBill": false,
            "date": "2022-11-28",
            "barCode": "data:image/png;base64,iVBORw0KGgoAAAA....",

            "companyAssociated":{
                "code": "0023",
                "name": "Empresa Asociada SL",
                "nif": "B78902232",
                "streetAddress": "Pg. Sant Joan 21, 08009, Barcelona",
                "city": "Barcelona",
                "province": "Barcelona",
                "zipCode": "08009",
                "phone": "+346162666112",
                "billingEmail": "asociada@empr.com"
            },

            "products": [{
                "code": "PX-34",
                "name": "Manzana Pink Pearl",
                "quantity": 23,
                "price": 0.67,
                "measureQuantity": 2,
                "taxPercent": 21,
                "equivalencePercent": 5.2,
                "measure": "KGS",
                "grossMass": 0.67,
                "tare": 0.16,
                "netMass": 0.51,
                "lotCode": "11297090",
                "observation": "Observaciones",

                "scannedCode": "32143242",

                "discountPercent": 20,
                "supplierReference": "Proveedor de manzanas"
            }]
        }
        ]
    }
    ]
}

4. ¿Cómo recibo la información en Polpoo?

Partimos de la base que, para que el fichero de albaranes pueda ser absorbido y cargado correctamente por Polpoo, debe haber la/s ruta/s de los clientes que forman parte de ese albarán asignada/s.

En caso de tener dudas acerca de la integración de rutas podéis ver la guía en el siguiente enlace:

Una vez cargado satisfactoriamente el fichero albarans.json en el SFTP y las rutas correctamente asignadas, debemos importar esto albaranes en la plataforma Polpoo.

Para ello, nos dirigimos al menú Rutas -> Rutas asignadas.

Dentro del apartado Rutas asignadas, se encontrarán las rutas asignadas previamente desde el planificador. Para cargar los recibos desde el ftp, clicaremos en el botón Cargar albaranes y seleccionaremos la opción Importar desde nube.

Automáticamente, podremos visualizar el albarán de cada uno de los clientes desde los detalles de la entrega.

5. ¿Cómo devuelvo los albaranes al ERP?

Una vez finalizadas las rutas del día, las podrás encontrar en el menú Histórico de rutas. n este punto podrás buscar por día las rutas terminadas con la información de los albaranes.

Para mandar los recibos al SFTP, clicamos en el botón derecho Descargar albaranes y en el siguiente submenú, Enviar a nube.

6. Tipo de documento

El fichero se llamará route_NombreDeLaRuta_YYYYMMDD.json, donde YYYY es el año, MM es el mes y DD es le día en que se manda el fichero de vuelta. Está codificado en UTF-8. Este tipo de fichero se recogerá de la carpeta routes (./routes) dentro del SFTP. Esta carpeta no estará disponible hasta que se mande un fichero de albaranes de vuelta por primera vez.

El fichero pdf se llamará deliveryNote_NombreDeLaRuta_Compañia_Id_Número_albarán_YYYYMMDD.pdf, donde YYYY es el año, MM es el mes y DD es el día en que se manda el fichero de vuelta. Este tipo de fichero se recogerá de la carpeta deliveryNotes (./deliveryNotes) dentro del SFTP de la compañía. Esta carpeta no estará disponible hasta que se mande un fichero de albaranes de vuelta por primera vez.

7. Especificaciones de los campos

id string
Identificador único del cliente.

signature string
Imagen en base64 de la firma del albarán.

*Sólo si se envía un único albarán.

deliveredBoxes integer
Número de cajas recogidas.

devolutionDeliveryNote string
Observaciones de la devolución.

observation string
Observaciones generales.

deliveryNoteObservation string
Observaciones del albarán.

dniDeliveryNote string
DNI de la persona que firma el albarán.

nameDeliveryNote string
Nombre de la persona que firma el albarán.

deliveryNoteStatus integer
Estado del albarán.
*Tiene que estar configurado en Polpoo.

deliveryNotes.deliveryNoteCode string
Número de albarán.
**Sólo si el cliente tiene más de un albarán.

deliveryNotes.deliveryNoteObservation string
Observaciones del albarán.
**Sólo si el cliente tiene más de un albarán.

deliveryNotes.dniDeliveryNote string
DNI de la persona que firma.
**Sólo si el cliente tiene más de un albarán.

deliveryNotes.nameDeliveryNote string
Nombre de la persona que firma.
**Sólo si el cliente tiene más de un albarán.

deliveryNotes.deliveryNoteOrderCode string
Número de pedido asociado al albarán.
**Sólo si el cliente tiene más de un albarán.

deliveryNotes.signature string
Imagen en base64 de la firma del albarán.
**Sólo si el cliente tiene más de un albarán.

deliveryNotes.deliveryNoteStatus string
Estado del albarán.
**Sólo si el cliente tiene más de un albarán.

deliveryNotes.send DeliveryNoteCompanyId string
Compañía dentro de Polpoo donde irá la información del albarán.
**Sólo si el cliente tiene más de un albarán.

deliveryNotes.products.id string
Identificador interno de la modificación de producto.
*Sólo si se modifica la cantidad de un producto del albarán.
**Sólo si el cliente tiene más de un albarán.

deliveryNotes.products.modify boolean
Si al producto se le ha modificado la cantidad. Siempre tendrás valor true.
*Sólo si se modifica la cantidad de un producto del albarán.
**Sólo si el cliente tiene más de un albarán.

deliveryNotes.products.measureQuantity boolean
Cantidad que se entrega del producto.
*Sólo si se modifica la cantidad de un producto del albarán.
**Sólo si el cliente tiene más de un albarán.

deliveryNotes.products.codeProduct boolean
Código del producto que se modifica.
*Sólo si se modifica la cantidad de un producto del albarán.
**Sólo si el cliente tiene más de un albarán.

8. Ejemplos

[
    {
        "id": "119029",
        "signature": "data:image/jpeg;base64,/9j/4AAQSkZJRg",
        "deliveredBoxes": 3,
        "devolutionDeliveryNote": "Judías en mal estado",
        "observation": "null",
        "deliveryNoteObservation": "5% de descuento en albarán",
        "dniDeliveryNote": "12345678P",
        "nameDeliveryNote": "Javier Iglesias", 
        "deliveryNoteStatus": 3 ,

        "deliveryNotes": [{
              "deliveryNoteCode": "A50",
              "deliveryNoteObservation": "5% de descuento en albarán",
              "dniDeliveryNote": "12345678P",
              "nameDeliveryNote": "Javier Iglesias",
              "deliveryNoteOrderCode": "321453",
              "signature": "data:image/jpeg;base64,/9j/4AAQSkZJRg",
              "deliveryNoteStatus": 3,
              "sendDeliveryNoteCompanyId": 121,
              "products": [
              {
                    "id": 121231,
                    "modify": true,
                    "measureQuantity": "50",
                    "codeProduct": "A-2131"
              }
              ]
        }
        ]
    }
]