Download the PHP package josantonius/mercadona-importer without Composer
On this page you can find all versions of the php package josantonius/mercadona-importer. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download josantonius/mercadona-importer
More information about josantonius/mercadona-importer
Files in josantonius/mercadona-importer
Package mercadona-importer
Short Description PHP command line interface (CLI) application to import products from Mercadona using their API.
License MIT
Informations about the package mercadona-importer
PHP Mercadona Importer CLI
Aplicación PHP de interfaz de línea de comandos (CLI) para importar productos de Mercadona utilizando su API.
- Requerimientos
- Instalación
- Uso
- Configuración
- Pruebas
- Tareas pendientes
- Registro de Cambios
- Contribuir
- Patrocinar
- Licencia
Requerimientos
- Sistema operativo: Linux.
- Versiones PHP: 8.1 | 8.2 | 8.3.
- Docker (opcional)
Instalación
Clona el repositorio:
Accede al repositorio clonado:
Instala las dependencias:
O con Docker ejecutando:
Uso
Revisa la configuración y ejecuta el script para iniciar la importación:
O si prefieres usarlo con Docker, bastará con ejecutar:
Para cada detalle del producto se utiliza la siguiente estructura:
De esta manera los datos no se sobrescriben al actualizar los productos, permitiendo mantener un historial de cambios para cualquier detalle:
EJEMPLO DE PRODUCTO IMPORTADO
Configuración
Puedes modificar las opciones de importación editando el archivo mercadona-importer.php situado en la raíz del proyecto:
warehouse
Mercadona muestra diferentes versiones de la tienda dependiendo de la ubicación de los usuarios. Para ello asigna un almacén según el código postal desde el que se acceda.
Esto implica que, según el almacén desde el que se importe:
- El número de productos importados variará ya que dependerá de los que tengan habilitados.
- Un mismo producto puede tener diferentes detalles (peso, precio...) según la ubicación.
Algunos identificadores de centros logísticos que se utilizan son:
2343
- Murcia2749
- Lleida3532
- Valencia3947
- Tarragona3951
- Girona3996
- Barcelona4068
- Barcelona4069
- Barcelona4097
- Barcelona4230
- Navarra4267
- Álava4354
- Almería4385
- Castellón4416
- Girona4472
- Barcelona4558
- Castellón4697
- Álavaalc1
- Alicante y Murciabcn1
- Barcelonamad1
- Madridmad2
- Madridsvq1
- Sevilla, Cádiz y Huelvavlc1
- Valencia
Otros identificadores de almacenes facilitados por Joel Taylor, creador de mercapy:
2183
,2581
,2623
,3684
,3968
,4028
,4115
,4281
4293
,4308
,4421
,4436
,4483
,4537
,4572
,4644
timezone
Se utiliza para la hora de los archivos de logs:
delayForError
Tiempo en microsegundos que se pausará la importación al recibir un error 429 por exceso de peticiones.
delayForRequests
Intervalo en microsegundos en el que se realizarán las peticiones a la API de Mercadona.
includeFullProduct
Al importar una categoría se obtienen todos los productos de ella, sin embargo los productos tienen detalles resumidos. Si se activa esta opción, se importarán los detalles completos del producto en una sola ocasión (al agregarlo por primera vez o si no se hizo en importaciones anteriores).
IMPORTANTE - Activar esta opción aumenta considerablemente el número de peticiones que se realizan y el tiempo de ejecución, ya que si todos los productos son nuevos se realizará una petición por cada uno de ellos:
- Importar con detalles resumidos: unas 150 peticiones y la importación dura unos 3-4 minutos.
- Importar con detalles completos: más de 5000 peticiones y la importación dura más de 4 horas.
reimportFullProduct
Fuerza la importación de los detalles completos del producto aunque se hubiese hecho anteriormente.
IMPORTANTE - Las mismas consideraciones que con la opción includeFullProduct
.
logDirectory
Directorio donde se guardarán los logs.
outputDirectory
Directorio donde se guardarán los archivos importados.
Los productos se almacenan en formato JSON utilizando el ID del producto como nombre y se organizan por carpetas según el almacén que se utilice al importarlos:
/data/svq1/39922.json
/data/mad1/39922.json
/data/bcn1/39922.json
También se genera el archivo /data/product_mapping.json
que contiene el catálogo completo de
productos con información básica:
Pruebas
Run code standard tests with PHPCS:
Run PHP Mess Detector tests to detect inconsistencies in code style:
Run all previous tests:
Tareas pendientes
- [ ] Refactorizar la clase
MercadonaImporter
- [ ] Desarrollar pruebas unitarias y funcionales
- [ ] Documentar métodos
Registro de Cambios
Los cambios detallados de cada versión se documentan en las notas de la misma.
Contribuir
Por favor, asegúrate de leer la guía de contribución, antes de hacer un pull request, comenzar una discusión o reportar un issue.
¡Gracias por colaborar! :heart:
Patrocinar
Si este proyecto te ayuda a reducir el tiempo de desarrollo, puedes patrocinarme para apoyar mi trabajo :blush:
Licencia
Este repositorio tiene una licencia MIT License.
Copyright © 2023-present, Josantonius
All versions of mercadona-importer with dependencies
guzzlehttp/guzzle Version ^7.5
josantonius/cli-printer Version ^1.0
josantonius/json Version ^2.0.8
monolog/monolog Version ^3.2