Joomla.it Forum

Joomla! 2.5 (versione con supporto terminato) => Joomla! 1.6/1.7/2.5 => : 71^sec.design 19 Jun 2014, 17:51:02

: Esportazione prodotti da wordpress a joomla
: 71^sec.design 19 Jun 2014, 17:51:02
Devo esportare i prodotti da un e-commerce multilingua (ita e eng) realizzato con wordpress e woocommerce in virtuemart.

Ho trovato un servizio, shopping-cart-migration che però non esporta i prodotti in lingua inglese, solo la lingua principale.

A questo punto mi chiedevo come procedere.
Csv Free?

Grazie per i suggerimenti.
: Re:Esportazione prodotti da wordpress a joomla
: 71^sec.design 25 Jun 2014, 14:47:04
Nessuna risposta?
: Re:Esportazione prodotti da wordpress a joomla
: giusebos 25 Jun 2014, 19:07:28
esporti da wordpress in xml con l'apposito tool e reimporti in phpmyadmin o usi un tools che trovi nella jed
: Re:Esportazione prodotti da wordpress a joomla
: 71^sec.design 26 Jun 2014, 09:20:10
Molto gentile.

Esportando in xml da wordpress, se non sbaglio, poi non posso importare lo stesso file xml in un mysql.
Non lo accetterebbe.
: Re:Esportazione prodotti da wordpress a joomla
: giusebos 26 Jun 2014, 10:09:21
in linea di massima, e vado a memoria:
semplifichiamo la faccenda per capire lo schema del file xml:

:
< ?xml version="1.0" encoding="UTF-8"?>
< dataroot xmlns:od="urn:schemas-microsoft-com:officedata" generated="2012-07-17T12:34:02">
   < nome_tabella>
      < campo1>testo1< /campo1>
      < campo2>testo2< /campo2>
      < campo3>testo3< /campo3>
   < /nome_tabella>
   < nome_tabella>
      < campo1>testo1< /campo1>
      < campo2>testo2< /campo2>
      < campo3>testo3< /campo3>
   < /nome_tabella>
< /dataroot>

Vediamo cosa vogliono dire i tag XML per capire meglio cosa stiamo facendo:

 

adesso, mettiamo che tu abbia una tabella nel database così composta:


Creiamo un form in una pagina html per fare l'upload del file, quindi con un enctype "multipart/form-data".
Creeremo 2 file, il primo upload.html, ed il secondo importa_xml.php

codice del file upload.html

:
< html>
   < head>
      < title>Upload ed importazione XML< /title>
   < /head>
   < body> 
      < form enctype="multipart/form-data" method="post" action="importa_xml.php">
         File XML: < input type="file" name="filexml" value="" />     
         < input type="submit" name="" value="Upload" />
      < /form>
   < /body>
< /html>

Upload ed importazione in MySQL del file XML in PHP

Ora dobbiamo creare la pagina per logica del programma, e quindi nel nostro caso per l'upload del file e del caricamento dei dati in MySQL nella tabella utenti

Nome file: importa_xml.php

:
// Apro la connessione al DB
// ------
// ------


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

// Controllo che il file sia stato inserito
if ( $file['tmp_name'] != '' ) {
    // Carica il file in una variabile $xml
    $xml = simplexml_load_file( $file['tmp_name'] );
   
    // Controllo tutti i tag "utenti"
    foreach( $xml->utenti as $value ) {
        // Recupero tutti i campi da ogni tag "utenti"
        $nome = $value->NOME;
        $cognome = $value->COGNOME;
        $indirizzo = $value->INDIRIZZO;
        $mail = $value->MAIL;
        $telefono = $value->TELEFONO;
       
        // Creo una query di inserimento e la eseguo
        $sql = "
            INSERT INTO utenti SET
                nome = '$nome',
                cognome = '$cognome',
                indirizzo = '$indirizzo',
                mail = '$mail',
                telefono = '$telefono'
        ";
        $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";

ti consiglio di fare delle prove di importazione prima, magari su un database vuoto con questa tabella che crerai direttamente in phpmyadmin:

:
CREATE TABLE IF NOT EXISTS `utenti` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nome` varchar(255) NOT NULL,
  `cognome` varchar(255) NOT NULL,
  `indirizzo` varchar(255) NOT NULL,
  `mail` varchar(255) NOT NULL,
  `telefono` varchar(100) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

capito e verificato il funzinamento con l'esempio, lo potrai implementare a secondo del contenuto del file generato da wordpress.

: Re:Esportazione prodotti da wordpress a joomla
: 71^sec.design 26 Jun 2014, 10:23:35
Grazie della guida.

Sembra tutto chiaro, ora vediamo come applico il tutto.
: Re:Esportazione prodotti da wordpress a joomla
: mmleoni 26 Jun 2014, 11:14:30
solo un paio di cosette:

1. non passate le stringhe al sql cosi come sono ma usate mysql_real_escape_string() altrimenti avrete il programma bloccato al primo apostrofo...

2. la linea
:
echo ( $rssql ) ? "Importazione avvenuta con successo" : "Errore nella query o connessione al DB mancante";
occhio alla parentesi, meglio
:
echo ( $rssql ? "Importazione avvenuta con successo" : "Errore nella query o connessione al DB mancante");

ciao