• Super User

    [Virtuemart 1.1.9] Gestione ordini: export ordini attuali e reset degli stessi

    Salve a tutti,
    lavoro sono Virtuemart 1.1.9, avrei necessità di eseguire le seguenti operazioni:

    1. Export degli attuali ordini presenti nel backend;
    2. Azzerare gli attuali ordini così da ricominciare da 1.

    Per la prima avevo ipotizzato un export in CSV della tabella 'ordini', funzionerebbe?
    Per la secondo basta eseguire un DROP della tabella 'ordini'?

    Quali sono, secondo voi, le due strade migliori da percorrere?

    Grazie.


  • Moderatore

    Ciao felino,
    non ho quella versione di VM, ma concordo con la procedura: lavora su un backup del db, esporta ciò che devi conservare e poi pulisci le tabelle facendo attenzione ad eliminare i record e non la stessa tabella (quindi non un drop table). Unica nota: non ho presente se ci sono relazioni tra le tabelle.


  • Super User

    Esatto, il problema è che ci sono delle relazioni con più tabelle e quindi se esporto gli ordini non ho con me informazioni importanti, quali: utente e i prodotti da lui acquistati.


  • Moderatore

    Ciao felino,
    fai una query da phpmyadmin.


  • Super User

    Infatti,
    mi sa che è l'unica soluzione possibile.
    Devo verificare se trovo qualche query già pronta così da non dovermi studiare il DB. 😄


  • Moderatore

    Ciao Felino,
    ho dato uno sguardo a VM 2.6.6.
    Per archiviare tutte le informazioni occorre necessariamente il database e quindi la prima cosa da fare è archviare il db.
    Per estrarre le info che ti servono in un elenco puoi fare come abbiamo detto, cioè una query, esportare in csv e modificare il foglio di calcolo a mano per creare una sorta di gerarchia, questo sempre che tu non voglia creare un report con una query più complessa.

    Servono molte tabelle per avere un quadro completo degli ordini, ma se ti accontenti delle informazioni principali potresti partire da una query come questa:

    
    select * FROM
    prefisso_virtuemart_orders, prefisso_virtuemart_order_items, prefisso_virtuemart_order_userinfos
    WHERE prefisso_virtuemart_orders.virtuemart_order_id = prefisso_virtuemart_order_items.virtuemart_order_id AND prefisso_virtuemart_orders.virtuemart_order_id = prefisso_virtuemart_order_userinfos.virtuemart_order_id
    
    

    Nota che con la query sopra alcune informazioni sono ridotte all'osso (per i metodi di consegna e pagamento c'è solo l'id, se vuoi includere altre info devi includere tabelle come prefisso_virtuemart_shipmentmethods_it_it e prefisso_virtuemart_paymentmethods_it_it).
    Il file che ottieni include in ogni riga i dati di ordine, articolo incluso nell'ordine e cliente: si tratta in parte di DATI RIPETUTI. Se vuoi qualcosa di più completo devi affinare la query.

    Apri phpmyadmin, seleziona il db e vai dal menu superiore in SQL, quindi incolla la query e fai clic su Esegui. A questo punto vai su *Esporta *e seleziona *CSV *(o se vuoi CSV per Ms Excel), clic su Esegui. Ottenuto il CSV lo modifichi con il foglio di calcolo.

    P.S. Al posto di *prefisso *devi aggiungere il prefisso delle tue tabelle. I nomi delle tabelle nella tua versione di VM potrebbero essere diversi.


  • Super User

    FDA, che dire, grazie! 🙂

    Vedo di testarlo ed aggiornati sul risultato finale.