GithubHelp home page GithubHelp logo

maltitco / bulkpriceupdater Goto Github PK

View Code? Open in Web Editor NEW

This project forked from novantacreativeteam/bulkpriceupdater

0.0 0.0 0.0 669 KB

A Prestashop module to bulk update product's prices, based on a csv generated by module.

License: GNU General Public License v3.0

JavaScript 6.73% PHP 84.33% Twig 8.94%

bulkpriceupdater's Introduction

Bulk Price Updater

Modulo Prestashop per l'aggiornamento massivo dei prezzi dei prodotti. Aggiunge le funzionalità per:

  • Creazione di un file di esportazione prodotti selezionabili per Categoria e Fornitore
  • Importazione del file csv creato per l'aggiornamento massivo dei prezzi

Implementazione tecnica

L'intero modulo è stato sviluppato utilizzando quanto più possibile i concetti della "Modern Architecture" di Prestashop. Questo modulo vuole essere un esempio pratico dei nuovi concetti introdotti a partire dalla versione 1.7, come i Symfony Controller, Service Container, CQRS, Grid Components, ecc..

Esportazione

Il processo di esportazione permette all'utente di generare un file csv contenente la lista dei prodotti recuperati in base a determinate categorie e fornitori scelti dall'utente.

Il processo di esportazione viene gestito tramite il controller Symfony ExportController che si occupa di mostrare la form di esportazione e di generare il CSV. L' ExportController ha solamente l'azione indexAction che quando viene invocata in GET mostra la form, mentre quando invocata in POST genera il file CSV con la lista prodotti. In questo processo è stato utilizzato in pattern CQRS, in particolare viene utilizzata la query GetProductsForBulkPriceUpdate che, gestita dal GetProductsForBulkPriceUpdateHandler, restutisce la lista prodotti che verrà utilizzata per la creazione del CSV. L'handler verrà invocato tramite il Query Bus secondo i principi del CQRS:

$productQuery = new GetProductsForBulkPriceUpdate($filters);
$products = $this->get('prestashop.core.query_bus')->handle($productQuery);

Importazione

Il processo di importazione permette all'utente di reimportare il file csv (generato precedentemente) con i prezzi modificati; il modulo si occuperà di aggiornare i prezzi massivamente.

Il processo di importazione utilizza parte dei componenti di Prestashop che vengono utilizzati per l'importazione dei file CSV dei Prodotti, Categorie, ecc.. Lato FrontEnd sono stati utilizzati i componenti Uploader e Importer che si occupano rispettivamente di caricare effettuare l'upload del file CSV e l'importazione massiva dei prezzi. La logica di importazione è gestita tramite il controller Symfony ImportController che utilizza alcuni servizi di importazione del core registrati all'interno del Container (prestashop.core.import.importer, prestashop.core.import.file_uploader) ed altri servizi specifici definiti dal modulo stesso contenenti la logica di aggiornamento dei prezzi.

Il codice Javascript viene gestito, compilato e ottimizzato tramite npm e webpack. I sorgenti js si trovano all'interno dell cartella _dev

bulkpriceupdater's People

Contributors

lorenzominciotti avatar marsaldev avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.