Back to top

Autore Topic: E-commerce con integrazione dinamica  (Letto 7318 volte)

Offline elnigno82

  • Nuovo arrivato
  • *
  • Post: 35
    • Mostra profilo
E-commerce con integrazione dinamica
« il: 12 Apr 2013, 08:22:05 »
Salve a tutti,
mi sono appena iscritto e per me questo è il primo post sul forum  :D Come prima domanda credo sarà abbastanza tosta  :D

In pratica mi è stato chiesta la possibilità di integrare un gestionale per la fatturazione usato in ufficio, con un catalogo ecommerce online, in modo che aggiornando il gestionale dall' ufficio, automaticamente si aggiorni anche il catalogo prodotti da sito.

Premesso che il gestionale non "gestisce" foto ( ed è inoltre un software proprietario ), son venuto a sapere che il cliente si è fatto fare da altri programmatori prima di me, un software che partendo dall'elenco prodotti del gestionale, si crea un suo elenco prodotti e permette di associarne la corrispettiva immagine ( caricata dal cliente a mano via via nel tempo ). In pratica ho notato che il nome dell'immagine corrisponde ESATTAMENTE al codice prodotto.
La mia domanda è questa: esiste un'estensione che permetta di acquisire i dati csv di un catalogo e carichi su sul sito le immagini corrispondenti e aggiorni automaticamente una estensione ecommerce joomla tra quelle conoscosciute? ( io ho sempre usato virtuemart per adesso, ma sto sperimentando anche altre per cercare di risolvere questo problema ).

SPero di essermi spiegato bene  ;D Grazie a tutti !!!

Offline elnigno82

  • Nuovo arrivato
  • *
  • Post: 35
    • Mostra profilo
Re:E-commerce con integrazione dinamica
« Risposta #1 il: 15 Apr 2013, 11:13:57 »
Nessuna idea? anche solo un file php che in automatico carichi un il csv dei prodotti ottimizzandolo per virtuemart o altra estensione ecommerce? poi eventualmente le immagini se le caricano a parte in ftp. grazieee

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:E-commerce con integrazione dinamica
« Risposta #2 il: 15 Apr 2013, 13:15:12 »
Citazione
Premesso che il gestionale non "gestisce" foto ( ed è inoltre un software
proprietario ),
e quindi commerciale, come forse non saprai nel forum non è possibile supportare software commerciale, perché non ti rivolgi direttamente all'autore? In alternativa puoi cercare di adattare qualche componente di importazione CSV di virtuemart che trovi nella JED

Offline elnigno82

  • Nuovo arrivato
  • *
  • Post: 35
    • Mostra profilo
Re:E-commerce con integrazione dinamica
« Risposta #3 il: 15 Apr 2013, 14:07:45 »
ma infatti se leggi bene non chiedevo di estendere le funzionalità del software proprietario, ma
Citazione
esiste un'estensione che permetta di acquisire i dati csv di un catalogo e carichi su sul sito le immagini corrispondenti e aggiorni automaticamente una estensione ecommerce joomla tra quelle conoscosciute?
, quindi si parla di immagini e csv che credo possano essere manipolati senza problema, giusto?  ;)

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:E-commerce con integrazione dinamica
« Risposta #4 il: 15 Apr 2013, 14:25:45 »
Sì hai ragione, ma prevenire è meglio che curare così ho voluto solo precisare.  :)  Comunque ti ho dato anche una risposta alla tua richiesta
Citazione
.... puoi cercare di adattare qualche componente di importazione CSV di
virtuemart che trovi nella JED
Poi se vuoi chiarimenti su qualcosa di particolare su quello che hai scelto chiedi pure.

Offline elnigno82

  • Nuovo arrivato
  • *
  • Post: 35
    • Mostra profilo
Re:E-commerce con integrazione dinamica
« Risposta #5 il: 15 Apr 2013, 14:33:15 »
fai bene fai bene  :) no beh in pratica qualcosa nella JED a pagamento avevo visto, ma non ne posso parlare qui; quindi la soluzione a cui pensavo io sarebbe quella di creare anche un php  ex novo che "ottimizzasse" il csv dei prodotti esterno, per l'importazione in Virtuemart, per esempio. Cosa che dovrebbe fare automaticamente, perchè andrebbe in mano al cliente e lo sapete meglio di me il qual è il livello in cui sono l a maggior parte  :)

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:E-commerce con integrazione dinamica
« Risposta #6 il: 15 Apr 2013, 14:52:47 »
Citazione
quindi la soluzione a cui pensavo io sarebbe quella di creare anche un php 
ex novo che "ottimizzasse" il csv dei prodotti esterno, per l'importazione in
Virtuemart, per esempio.
Le soluzioni purtroppo non basta solo pensarle ma bisogna anche essere in grado di realizzarle, se hai incominciato a buttare giù qualcosa ed hai problemi in particolare posta pure dove incontri difficoltà.

Offline elnigno82

  • Nuovo arrivato
  • *
  • Post: 35
    • Mostra profilo
Re:E-commerce con integrazione dinamica
« Risposta #7 il: 15 Apr 2013, 16:42:24 »
si ok  :) vediamo se son comprensibile  :) allora : io vorrei ottenere quel risultato, ma non ho idea di che soluzione adottare. Speravo, descrivendo il problema, di avere perlomeno lo spunto per cercare qualcosa di simile ( e quindi cercare di modificiarlo ), o nella migliore delle ipotesi di trovare qualcosa di già utilizzabile. Vorrei da voi perlomeno la "guida" nella direzione giusta  :)

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:E-commerce con integrazione dinamica
« Risposta #8 il: 15 Apr 2013, 19:00:43 »
La guida è un componente import export CSV, sicuramente non troverai qualcosa di pronto data la specificità della cosa, quindi la direzione è quella adesso tocca a te.

Offline elnigno82

  • Nuovo arrivato
  • *
  • Post: 35
    • Mostra profilo
Re:E-commerce con integrazione dinamica
« Risposta #9 il: 23 Apr 2013, 08:36:29 »
allora sto seguendo una nuova strada, e cioè creare una pagina php da zero per guidare l'importazione del csv. Ho trovato uno script che sto cercando di modificare, ma al momento ci sono dei problemi sulla query:

Citazione
// Recupero il file
$file = $_FILES['filecsv'];

$nome_file = $file['tmp_name']; # Nome temporaneo file
$size_file = $file['size']; # Dimensione file

// Controllo che il file sia stato inserito e che quindi esista
if ( ($handle = fopen($nome_file, "r") ) !== FALSE) {
    // Uso un contatore per vedere se sono nella prima riga dei campi
    $cont = 0;
   
    // Uso la funzione fgetcsv per recuperare le informzioni nel modo corretto dal CSV
    // Il secondo parametro è la dimesione del file, che abbiamo recuperato sopra   
    // Come si vede il 3 parametro è il separatore dei campi (;)
    // Il separatore per ogni riga in automatico è l'a capo
    while ( ( $data = fgetcsv($handle, $size_file, ";") ) !== FALSE ) {
        if ( $cont == 0 ) {
            $cont++;
           
            // Assegno ad una variabile $campi_tabella, la prima riga del nome dei campi del CSV
            $campi_tabella = $data;
        }
        else {
            // Recupero i nomi dei campi
           
            $header01 = $campi_tabella[0];
            $header02 = $campi_tabella[1];
            $header03 = $campi_tabella[2];
            $header04 = $campi_tabella[3];
            $header05 = $campi_tabella[4];           
           
            // Recupero i valori dei campi
           
            $valore01 = $data[0];
            $valore02 = $data[1];
            $valore03 = $data[2];
            $valore04 = $data[3];
            $valore05 = $data[4];

            // Creo una query di inserimento e la eseguo
           
            $sql = "
                INSERT INTO `#__virtuemart_products_it_it` SET
                    `virtuemart_product_id` = '$valore01',
                    `product_name` = '$valore02',
                    `product_s_desc` = '$valore03',
                ";
            $sql = "
                INSERT INTO `#__virtuemart_products` SET
                    `virtuemart_product_id` = '$valore01',
                    `product_sku` = '$valore04',
                ";
            $sql = "
                INSERT INTO `#__virtuemart_product_price` SET
                    `virtuemart_product_id` = '$valore01',
                    `product_price` = '$valore05',
                ";   
            $rssql = mysql_query( $sql );
           
            // Controllo che l'importazione sia avvenuta con successo
            echo ( $rssql ) ? "Importazione avvenuta con successo" : "Errore nella query o connessione al DB mancante";           
        }
    }
}
else
    echo "Nessun file inserito";
?>   

Offline elnigno82

  • Nuovo arrivato
  • *
  • Post: 35
    • Mostra profilo
Re:E-commerce con integrazione dinamica
« Risposta #10 il: 23 Apr 2013, 08:37:13 »
l'errore che stampa a video è il seguente
Citazione
Errore nella query o connessione al DB mancanteErrore nella query o connessione al DB mancanteErrore nella query o connessione al DB mancanteErrore nella query o connessione al DB mancante

Offline F.shark

  • Esploratore
  • **
  • Post: 87
  • Sesso: Maschio
    • Mostra profilo
Re:E-commerce con integrazione dinamica
« Risposta #11 il: 23 Apr 2013, 10:41:45 »
Ti sei assicurato che il file per connetterti al db sia giusto?

Offline elnigno82

  • Nuovo arrivato
  • *
  • Post: 35
    • Mostra profilo
Re:E-commerce con integrazione dinamica
« Risposta #12 il: 23 Apr 2013, 10:46:43 »
si si, avevo omesso il codice di connessione al database che è questo

Citazione
<?php
//Apro la connessione al DB
$connessione = mysql_connect("localhost","xxxxxxx","xxxxxxxx")or die("Connessione non riuscita: " . mysql_error());
   print ("Connesso con successo");

mysql_select_db("xxxxxxxxxxx", $connessione) or die("Errore nella selezione del database");

mysql_close($connessione);
Citazione

e restituisce un messaggio di avvenuta connessione  ;)

Offline F.shark

  • Esploratore
  • **
  • Post: 87
  • Sesso: Maschio
    • Mostra profilo
Re:E-commerce con integrazione dinamica
« Risposta #13 il: 23 Apr 2013, 12:41:48 »
hai provato a mettere un nome diverso alle query??
Ovvero:
$sql1="...";
$sql2="...";
$sql3="...";

$rssql1 = mysql_query( $sql1 );
$rssql2 = mysql_query( $sql2 );
$rssql3 = mysql_query( $sql3 );

Offline elnigno82

  • Nuovo arrivato
  • *
  • Post: 35
    • Mostra profilo
Re:E-commerce con integrazione dinamica
« Risposta #14 il: 23 Apr 2013, 13:58:30 »
ho appena provato: niente  :-[ in compenso sono spariti gli errori ed è rimasta solo la scritta "Connesso con successo"

Offline F.shark

  • Esploratore
  • **
  • Post: 87
  • Sesso: Maschio
    • Mostra profilo
Re:E-commerce con integrazione dinamica
« Risposta #15 il: 23 Apr 2013, 16:19:33 »
naturalmente hai modificato anche il nome delle variabile di stampa giusto?
// Controllo che l'importazione sia avvenuta con successo
    echo ( $rssql1 );
    echo ( $rssql2);
    echo ( $rssql3);

Offline elnigno82

  • Nuovo arrivato
  • *
  • Post: 35
    • Mostra profilo
Re:E-commerce con integrazione dinamica
« Risposta #16 il: 23 Apr 2013, 16:58:56 »
si si, posto il codice aggiornato anche con altre modifiche per cercare di integrarlo con il database joomla

Citazione
<?php
// no direct access
//defined('_JEXEC') or die('Restricted access');

// qualora non fosse globalizzato, recupero il mainframe
global $mainframe;

//Apro la connessione al DB
$connessione = mysql_connect("localhost","user","pwd")or die("Connessione non riuscita: " . mysql_error());
   print ("Connesso con successo");

mysql_select_db("nomedatabase", $connessione) or die("Errore nella selezione del database");
mysql_close($connessione);



// Recupero il file
$file = $_FILES['filecsv'];

$nome_file = $file['tmp_name']; # Nome temporaneo file
$size_file = $file['size']; # Dimensione file

// Controllo che il file sia stato inserito e che quindi esista
if ( ($handle = fopen($nome_file, "r") ) !== FALSE) {
    // Uso un contatore per vedere se sono nella prima riga dei campi
    $cont = 0;
   
    // Uso la funzione fgetcsv per recuperare le informzioni nel modo corretto dal CSV
    // Il secondo parametro è la dimesione del file, che abbiamo recuperato sopra   
    // Come si vede il 3 parametro è il separatore dei campi (;)
    // Il separatore per ogni riga in automatico è l'a capo
    while ( ( $data = fgetcsv($handle, $size_file, ";") ) !== FALSE ) {
        if ( $cont == 0 ) {
            $cont++;
           
            // Assegno ad una variabile $campi_tabella, la prima riga del nome dei campi del CSV
            $campi_tabella = $data;
        }
        else {
            // Recupero i nomi dei campi
            /*
            $campo_nome = $campi_tabella[0];
            $campo_cognome = $campi_tabella[1];
            $campo_indirizzo = $campi_tabella[2];
            $campo_mail = $campi_tabella[3];
            $campo_telefono = $campi_tabella[4];       
            */
            $header01 = $campi_tabella[0];
            $header02 = $campi_tabella[1];
            $header03 = $campi_tabella[2];
            $header04 = $campi_tabella[3];
            $header05 = $campi_tabella[4];           
           
            // Recupero i valori dei campi
            /*$nome = $data[0];
            $cognome = $data[1];
            $indirizzo = $data[2];
            $mail = $data[3];
            $telefono = $data[4];*/
            $valore01 = $data[0];
            $valore02 = $data[1];
            $valore03 = $data[2];
            $valore04 = $data[3];
            $valore05 = $data[4];

            // Creo una query di inserimento e la eseguo
            /* $sql = "
                INSERT INTO utenti SET
                    $campo_nome = '$nome',
                    $campo_cognome = '$cognome',
                    $campo_indirizzo = '$indirizzo',
                    $campo_mail = '$mail',
                    $campo_telefono = '$telefono'
            "; */
           
           
           
           
           
           
            $rssql= Jfactory::getDBO();
           
            $cancello01='TRUNCATE TABLE `#__virtuemart_products_it_it`';
            $sql1 = "
                INSERT INTO `#__virtuemart_products_it_it` SET
                    `virtuemart_product_id` = '$valore01',
                    `product_name` = '$valore02',
                    `product_s_desc` = '$valore03',
                ";
               
           $rssql->setQuery($sql1);
           $fields = $sql1->loadObjectList();
           $rssql = mysql_query( $sql1 );
           
            // Controllo che l'importazione sia avvenuta con successo
            echo ( $rssql ) ? "Importazione avvenuta con successo" : "Errore nella query o connessione al DB mancante";   
           
           
           
           
           
           
           
           
           
           
            $rssql2= Jfactory::getDBO();
            $cancello02='TRUNCATE TABLE `#__virtuemart_products`';
           
            $sql2 = "
                INSERT INTO `#__virtuemart_products` SET
                    `virtuemart_product_id` = '$valore01',
                    `product_sku` = '$valore04',
                ";
               
           $rssql2->setQuery($sql2);
           $fields = $sql2->loadObjectList();
           $rssql2 = mysql_query( $sql2 );
           
            // Controllo che l'importazione sia avvenuta con successo
            echo ( $rssql2 ) ? "Importazione avvenuta con successo" : "Errore nella query o connessione al DB mancante";       
               
           
           
           
           
           
           
           
            $rssql3= Jfactory::getDBO();
            $cancello03='TRUNCATE TABLE `#__virtuemart_product_price`';
           
            $sql3 = "
                INSERT INTO `#__virtuemart_product_price` SET
                    `virtuemart_product_id` = '$valore01',
                    `product_price` = '$valore05',
                ";
            $rssql3->setQuery($sql3);
            $fields = $sql3->loadObjectList();   
            $rssql3 = mysql_query( $sql3 );
           
            // Controllo che l'importazione sia avvenuta con successo
            echo ( $rssql3 ) ? "Importazione avvenuta con successo" : "Errore nella query o connessione al DB mancante";
           
           
                       
        }
    }
}
else
    echo "Nessun file inserito";
?>   
Citazione


ma pare non eseguire nessuna operazione  :(

Offline elnigno82

  • Nuovo arrivato
  • *
  • Post: 35
    • Mostra profilo
Re:E-commerce con integrazione dinamica
« Risposta #17 il: 26 Apr 2013, 01:13:26 »
sono riuscito a connettermi al database usando una connessione standard e non quella utilizzata da joomla.
tuttavia quando vado a scorrere il file csv importato, non riesco a fare una multi query tipo questa
 
Citazione
$percorsodelfile= basename( $_FILES['upload_file']['name']);
       
        $handle = fopen("temp/".$percorsodelfile, "r");
       
                //permette di saltare la prima riga
        $data = fgetcsv($handle, 1000, ";"); 
       
               //partendo da $data[1] e non da $data[0] salto la prima colonna ;)
        while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
                $import ="INSERT INTO `pep0k_virtuemart_manufacturers` (virtuemart_manufacturer_id) VALUES ('".addslashes($data[1])."')";
                $import .="INSERT INTO `pep0k_virtuemart_manufacturers_it_it` (virtuemart_manufacturer_id,mf_name) VALUES ('".addslashes($data[1])."','".addslashes($data[2])."')";
               
        //mysql_query($import) or die(mysql_error());
        mysqli_multi_query($con,$import);
        }
Citazione

in pratica vorrei che la lettura del file partisse dalla seconda riga ( come infatti pare sia ) e scorra fino in fondo finchè non finiscono le righe del csv. Se tolgo la seconda query funziona, altrimenti no  :-[

Offline F.shark

  • Esploratore
  • **
  • Post: 87
  • Sesso: Maschio
    • Mostra profilo
Re:E-commerce con integrazione dinamica
« Risposta #18 il: 27 Apr 2013, 07:43:12 »
Non dovresti mettere nel while una variabile "contatore"??


Offline elnigno82

  • Nuovo arrivato
  • *
  • Post: 35
    • Mostra profilo
Re:E-commerce con integrazione dinamica
« Risposta #19 il: 27 Apr 2013, 14:52:34 »
se non ho capito male questa riga
Citazione
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
Citazione
esegue il ciclo finchè nel csv non ci sono più righe...o sbaglio :o ?

Offline F.shark

  • Esploratore
  • **
  • Post: 87
  • Sesso: Maschio
    • Mostra profilo
Re:E-commerce con integrazione dinamica
« Risposta #20 il: 27 Apr 2013, 16:44:23 »
scusami mi sono sbagliato con il ciclo for  ;D ;D

Offline elnigno82

  • Nuovo arrivato
  • *
  • Post: 35
    • Mostra profilo
Re:E-commerce con integrazione dinamica
« Risposta #21 il: 28 Apr 2013, 09:36:17 »
in realtà speravo tu avessi ragione, così avevo modo di trovare una spiegazione al perchè eseguo lo script solo per la prima riga di csv  ;D

Offline elnigno82

  • Nuovo arrivato
  • *
  • Post: 35
    • Mostra profilo
Re:E-commerce con integrazione dinamica
« Risposta #22 il: 29 Apr 2013, 10:34:20 »
aggiornamento del problema : ho tolto la multi query e utilizzato la query singola, cambiando nome alle variabili. Ecco, funziona, eccetto per la query 2  :o . Infatti sia per $import che per $import3 l inserimento avviene correttamente, mentre per $import2 si ferma alla prima riga  :o :o :o inoltre è possibile mettere un contatore di righe dentro il while che esplde il csv? perchè non ho il virtuemart_product_id e vorrei che avesse il numero progressivo della riga in cui sono contenuti i dati. Per esemplificar il tutto posto il codice  :P

Citazione
if(($handle = fopen("temp/".$percorsodelfile, "r"))!==FALSE){   
       
       $data = fgetcsv($handle, $lenght, $delimiter); /* salta una riga */
       
       
       while (($data = fgetcsv($handle, $lenght, $delimiter)) !== FALSE) {
            $import1 = "INSERT INTO `pep0k_virtuemart_products` (virtuemart_product_id, product_sku) VALUES ('$virtuemart_product_id','$data[3]')";
            $import2 = "INSERT INTO `pep0k_virtuemart_products_it_it` (virtuemart_product_id, product_name, product_s_desc, product_desc) VALUES ('$virtuemart_product_id','$data[1]', '$data[2]', '$data[2]')";
            $import3 = "INSERT INTO `pep0k_virtuemart_product_prices` (virtuemart_product_id, product_price) VALUES ('$virtuemart_product_id','$data[4]')";
            /*query */
            mysqli_query($con, $import1);
            mysqli_query($con, $import2);
            mysqli_query($con, $import3);
            //echo $virtuemart_product_id=$indiceQuery;
       
         } /* chiusura  while (($data = fgetcsv($handle, $lenght, $delimiter)) !== FALSE) */
       
       
    } /* chiusura if(($handle = fopen("temp/".$percorsodelfile, "r"))!==FALSE) */
    fclose($handle);

Offline F.shark

  • Esploratore
  • **
  • Post: 87
  • Sesso: Maschio
    • Mostra profilo
Re:E-commerce con integrazione dinamica
« Risposta #23 il: 29 Apr 2013, 12:56:02 »
Forse dovresti vedere qui: 
$import2 = "INSERT INTO `pep0k_virtuemart_products_it_it` (virtuemart_product_id, product_name, product_s_desc, product_desc) VALUES ('$virtuemart_product_id','$data[1]', '$data[2]', '$data[2]')";
"product_desc" ha lo stesso valore di "product_s_desc". prova a vedere questa cosa.

Offline elnigno82

  • Nuovo arrivato
  • *
  • Post: 35
    • Mostra profilo
Re:E-commerce con integrazione dinamica
« Risposta #24 il: 29 Apr 2013, 14:13:25 »
niente, ho provato pure ad eliminarlo, ma niente  :( secondo me quando si inserisce qualcosa in virtuemart_products, è collegato con virtuemart_products_it_it e per qualche ragione non fa aggiornare...esiste la possibilità di inserire  un valore in due tabelle diverse con una singola query?

Offline F.shark

  • Esploratore
  • **
  • Post: 87
  • Sesso: Maschio
    • Mostra profilo
Re:E-commerce con integrazione dinamica
« Risposta #25 il: 29 Apr 2013, 15:57:03 »
Fai una cosa, posta o allega la pagina php che esegue lo script, in modo tale che possa provarlo anche io e poi ti saprò dire.

Comunque per la tua domanda, non credo sia possibile inserire un valore in due tab(almeno secondo le mie conoscenze.

Offline elnigno82

  • Nuovo arrivato
  • *
  • Post: 35
    • Mostra profilo
Re:E-commerce con integrazione dinamica
« Risposta #26 il: 02 Mag 2013, 08:31:51 »
risolto il problema inserimento ! era una banale chiave unica che  non voleva rimanere vuota !!!!  :-\

Offline F.shark

  • Esploratore
  • **
  • Post: 87
  • Sesso: Maschio
    • Mostra profilo
Re:E-commerce con integrazione dinamica
« Risposta #27 il: 02 Mag 2013, 18:03:50 »
Se vuoi posta tutto il codice, così aiuti la community.
 ;)

Offline elnigno82

  • Nuovo arrivato
  • *
  • Post: 35
    • Mostra profilo
[ RISOLTO ]Re:E-commerce con integrazione dinamica
« Risposta #28 il: 02 Mag 2013, 22:50:06 »
praticamente è il solito codice di sopra, soltanto che per far funzionare la query 2 ho dovuto settare da PhpMyAdmin con AUTO_INCREMENT la chiave primaria della tabella, e salvare per forza qualcosa dentro il campo della chiave unica  ;D ;D ;D

 



Web Design Bolzano Kreatif