Jump to content

Spostare prodotti in nuova categoria


Recommended Posts

Salve a tutti, avrei bisogno di un consiglio.


Ho aggiunto una buona quantità di prodotti nel mio catalogo online di PrestaShop in una categoria generica. Adesso mi è stato chiesto di dividerli in diverse sottocategorie ma vorrei evitare di farlo uno per uno. Qualche consiglio?


Grazie mille!


Link to comment
Share on other sites

  • 3 weeks later...

l'importazione csv è una soluzione, ma bisogna configurare bene il file csv. io ho fatto una importazione corretta dopo decine di tentativi.

Non so se serve svuotare i dati precedentemente (dopo due o tre backup ovviamente).

La soluzione professionale sarebbe quella di utilizzare i moduli con gestione massiva dei dati. Di sicuro ce ne sono per lo scopo.

La soluzione 'casereccia' che mi viene in mente più facilmente effettuabile è via PhpMyAdmin e con l'aiuto di openoffice o excell.

La tabella da aggiornare è ps_category_product che ha 3 colonne id_category, id_product e position, e i dati sono numerici, quindi la creazione di un file csv (da importare via phpMyAdmin ) non è problematica.

Ti scarichi i tuoi articoli da ps_product_lang, così hai il codice prodotto con la descrizione leggibile (se hai più lingue tieni solo quella in italiano) e le tue categorie da ps_category_lang (idem come sopra)

A questo punto non dovrebbe essere complicato ricreare il nuovo collegamento con le categorie.

...ovviamente col modulo apposta è più semplice.

Ciao e auguri

Link to comment
Share on other sites

l'importazione csv è una soluzione, ma bisogna configurare bene il file csv. io ho fatto una importazione corretta dopo decine di tentativi.

Non so se serve svuotare i dati precedentemente (dopo due o tre backup ovviamente).

La soluzione professionale sarebbe quella di utilizzare i moduli con gestione massiva dei dati. Di sicuro ce ne sono per lo scopo.

La soluzione 'casereccia' che mi viene in mente più facilmente effettuabile è via PhpMyAdmin e con l'aiuto di openoffice o excell.

La tabella da aggiornare è ps_category_product che ha 3 colonne id_category, id_product e position, e i dati sono numerici, quindi la creazione di un file csv (da importare via phpMyAdmin ) non è problematica.

Ti scarichi i tuoi articoli da ps_product_lang, così hai il codice prodotto con la descrizione leggibile (se hai più lingue tieni solo quella in italiano) e le tue categorie da ps_category_lang (idem come sopra)

A questo punto non dovrebbe essere complicato ricreare il nuovo collegamento con le categorie.

...ovviamente col modulo apposta è più semplice.

Ciao e auguri

Ciao mi sai dare un nominativo di un modulo che fa più a caso mio? il problema e che ho più di 20 mila articoli in una categoria che dovrei distribuire in più categorie , in phpmyadmin mi scarica tutti e 20mila insieme mi risulta poi difficile filtrarli per collegarli alla categoria apposita.

Grazie mille

Link to comment
Share on other sites

Per il modulo prova a fare una ricerca sugli addons di Prestashop, io non ne conosco nessuno. in genere c'è sempre una demo per vedere se fa al caso tuo.

 

Ma se è come dici, cioè 20 mila articoli in una categoria sola, da distribuire poi in + categorie, temo che hai da fare comunque. 

Io resto dell'idea che con un foglio elettronico riesci a fare lo stesso lavoro anche + rapidamente.

Non so di che articoli si tratta, ma devi considerare il fatto che l'unico aiuto che hai per aggregare i tuoi prodotti viene dall'ordinamento alfabetico del nome e forse della descrizione del prodotto (ma se ci fosse qualcos'altro, ben venga). 

Pertanto questo è l'unico aiuto che hai per aggiornare una serie di prodotti più o meno grande alla volta, tutto il resto uno per uno!!!

 

La procedura sarebbe più o meno questa:

Una volta scaricata la tabella ps_product_lang, e caricata sul foglio elettronico, va ripulita da tutto ciò che non serve (altre lingue e tutte le colonne non significative, presumibilmente da conservare 'name', 'description' e/o 'description_short' e naturalmente 'id_product', che sposterei, come colonna, tutto a destra. A dx di questa, creerei le colonne 'id_category' e 'position', quest'ultima assegna l'ordine di visualizzazione standard dei prodotti, e consiste in una serie di numeri crescenti partendo da 0 per ogni categoria e quindi questa sequenza la creiamo a lavoro finito.

le categorie nuove saranno una decina, e comunque un numero limitato.

Le creiamo con prestashop e ci segnamo i rispettivi codici (si, possiamo tranquillamente segnarcele o stamparle su un foglietto per sapere che a quella categoria corrisponde quel numero).

A questo punto ordiniamo la tabella per 'name' e per 'description' e speriamo che ci siano molti prodotti a fila ai quali assegnare lo stesso codice categoria.

Se proprio vogliamo farci male, possiamo duplicare tutti quegli articoli ai quali volessimo assegnare + di una categoria, visto che PS lo consente.

Finito questo lavoro, possiamo eliminare le colonne superflue, lasciando solo le tre che ci occorrono, ma dobbiamo ancora assegnare i valori a 'position'.

Dal momento che sono tutte categorie nuove, possiamo continuare a lavorare su questa tabella, (in caso contrario bisogna accodare anche la tabella ps_category_product originale, per continuare le sequenze già presenti).

Ordiniamo per id_category e riempiamo la colonna 'position' con una sequenza di numeri partendo da 0 in corrispondenza di ogni categoria (oppure, se abbiamo accodato, dobbiamo continuare la sequenza originale, che abbiamo precedentemente ordinato).

 

Il lavoro è finito. va salvato in csv il lavoro ottenuto ed importato nella famosa tabella ps_category_product, accodandolo ai dati già presenti, (oppure, se già avevi accodato, va svuotata la vecchia tabella per importare poi il tuo csv).

 

Mi sembra fattibile.

Edited by assisassi (see edit history)
Link to comment
Share on other sites

Per il modulo prova a fare una ricerca sugli addons di Prestashop, io non ne conosco nessuno. in genere c'è sempre una demo per vedere se fa al caso tuo.

 

Ma se è come dici, cioè 20 mila articoli in una categoria sola, da distribuire poi in + categorie, temo che hai da fare comunque. 

Io resto dell'idea che con un foglio elettronico riesci a fare lo stesso lavoro anche + rapidamente.

Non so di che articoli si tratta, ma devi considerare il fatto che l'unico aiuto che hai per aggregare i tuoi prodotti viene dall'ordinamento alfabetico del nome e forse della descrizione del prodotto (ma se ci fosse qualcos'altro, ben venga). 

Pertanto questo è l'unico aiuto che hai per aggiornare una serie di prodotti più o meno grande alla volta, tutto il resto uno per uno!!!

 

La procedura sarebbe più o meno questa:

Una volta scaricata la tabella ps_product_lang, e caricata sul foglio elettronico, va ripulita da tutto ciò che non serve (altre lingue e tutte le colonne non significative, presumibilmente da conservare 'name', 'description' e/o 'description_short' e naturalmente 'id_product', che sposterei, come colonna, tutto a destra. A dx di questa, creerei le colonne 'id_category' e 'position', quest'ultima assegna l'ordine di visualizzazione standard dei prodotti, e consiste in una serie di numeri crescenti partendo da 0 per ogni categoria e quindi questa sequenza la creiamo a lavoro finito.

le categorie nuove saranno una decina, e comunque un numero limitato.

Le creiamo con prestashop e ci segnamo i rispettivi codici (si, possiamo tranquillamente segnarcele o stamparle su un foglietto per sapere che a quella categoria corrisponde quel numero).

A questo punto ordiniamo la tabella per 'name' e per 'description' e speriamo che ci siano molti prodotti a fila ai quali assegnare lo stesso codice categoria.

Se proprio vogliamo farci male, possiamo duplicare tutti quegli articoli ai quali volessimo assegnare + di una categoria, visto che PS lo consente.

Finito questo lavoro, possiamo eliminare le colonne superflue, lasciando solo le tre che ci occorrono, ma dobbiamo ancora assegnare i valori a 'position'.

Dal momento che sono tutte categorie nuove, possiamo continuare a lavorare su questa tabella, (in caso contrario bisogna accodare anche la tabella ps_category_product originale, per continuare le sequenze già presenti).

Ordiniamo per id_category e riempiamo la colonna 'position' con una sequenza di numeri partendo da 0 in corrispondenza di ogni categoria (oppure, se abbiamo accodato, dobbiamo continuare la sequenza originale, che abbiamo precedentemente ordinato).

 

Il lavoro è finito. va salvato in csv il lavoro ottenuto ed importato nella famosa tabella ps_category_product, accodandolo ai dati già presenti, (oppure, se già avevi accodato, va svuotata la vecchia tabella per importare poi il tuo csv).

 

Mi sembra fattibile.

Ottimo grazie mille. eventualmente il csv che importo deve avere per forza tutte le righe che sono riportare nel db , oppure posso mandare posso mandare anche il csv con i soli id che mi interessano?

 

Grazie mille

Link to comment
Share on other sites

Per il modulo prova a fare una ricerca sugli addons di Prestashop, io non ne conosco nessuno. in genere c'è sempre una demo per vedere se fa al caso tuo.

 

Ma se è come dici, cioè 20 mila articoli in una categoria sola, da distribuire poi in + categorie, temo che hai da fare comunque. 

Io resto dell'idea che con un foglio elettronico riesci a fare lo stesso lavoro anche + rapidamente.

Non so di che articoli si tratta, ma devi considerare il fatto che l'unico aiuto che hai per aggregare i tuoi prodotti viene dall'ordinamento alfabetico del nome e forse della descrizione del prodotto (ma se ci fosse qualcos'altro, ben venga). 

Pertanto questo è l'unico aiuto che hai per aggiornare una serie di prodotti più o meno grande alla volta, tutto il resto uno per uno!!!

 

La procedura sarebbe più o meno questa:

Una volta scaricata la tabella ps_product_lang, e caricata sul foglio elettronico, va ripulita da tutto ciò che non serve (altre lingue e tutte le colonne non significative, presumibilmente da conservare 'name', 'description' e/o 'description_short' e naturalmente 'id_product', che sposterei, come colonna, tutto a destra. A dx di questa, creerei le colonne 'id_category' e 'position', quest'ultima assegna l'ordine di visualizzazione standard dei prodotti, e consiste in una serie di numeri crescenti partendo da 0 per ogni categoria e quindi questa sequenza la creiamo a lavoro finito.

le categorie nuove saranno una decina, e comunque un numero limitato.

Le creiamo con prestashop e ci segnamo i rispettivi codici (si, possiamo tranquillamente segnarcele o stamparle su un foglietto per sapere che a quella categoria corrisponde quel numero).

A questo punto ordiniamo la tabella per 'name' e per 'description' e speriamo che ci siano molti prodotti a fila ai quali assegnare lo stesso codice categoria.

Se proprio vogliamo farci male, possiamo duplicare tutti quegli articoli ai quali volessimo assegnare + di una categoria, visto che PS lo consente.

Finito questo lavoro, possiamo eliminare le colonne superflue, lasciando solo le tre che ci occorrono, ma dobbiamo ancora assegnare i valori a 'position'.

Dal momento che sono tutte categorie nuove, possiamo continuare a lavorare su questa tabella, (in caso contrario bisogna accodare anche la tabella ps_category_product originale, per continuare le sequenze già presenti).

Ordiniamo per id_category e riempiamo la colonna 'position' con una sequenza di numeri partendo da 0 in corrispondenza di ogni categoria (oppure, se abbiamo accodato, dobbiamo continuare la sequenza originale, che abbiamo precedentemente ordinato).

 

Il lavoro è finito. va salvato in csv il lavoro ottenuto ed importato nella famosa tabella ps_category_product, accodandolo ai dati già presenti, (oppure, se già avevi accodato, va svuotata la vecchia tabella per importare poi il tuo csv).

 

Mi sembra fattibile.

 

 

 

allora ci sono riuscito l'unico problema ora mi trovo l'oggetto in doppia categoria sia nella categoria creata sia nella categoria precedente , dov'è l'errore? forse dovevo spuntare qualche casella? 

 

Grazie mille

Link to comment
Share on other sites

nella mia lunga spiegazione avevo sorvolato il fatto che tutto il lavoro che fai aggiunge prodotti alle varie categorie.

La tabella id_category_product ha senso proprio per permettere che un prodotto possa essere assegnato a più categorie, sia che si tratti di sottocategorie che di altre categorie distinte. (in databasese si tratta di un collegamento molti-a-molti).

Ogni riga permette di associare quel prodotto a quella categoria attraverso i rispettivi id.

Per eliminare i vecchi collegamenti devi individuare le rispettive righe ed eliminarle.

Nel caso (fortunato) che la vecchia categoria madre non debba avere nessun prodotto (per es. solo sottocategorie), puoi facilmente effettuare questa operazione con un semplice comando sql:

Con PhpMyAdmin ti porti nella solita tabella, selezioni la scheda 'SQL' e nell'apposito riquadro digiti: 

SELECT * 
FROM  `ps_category_product` 
WHERE  `id_category` =2

dove 2 è il codice della categoria che ti interessa.

Questo comando è completamente innoquo, ti permette di mostrare tutte le righe della tua tabella che contengono quel valore.

 

Per eliminarle tutte puoi ripetere il comando sql sostituendo 'SELECT *' con 'DELETE', oppure selezionando tutto ed eliminare i selezionati.

Link to comment
Share on other sites

nella mia lunga spiegazione avevo sorvolato il fatto che tutto il lavoro che fai aggiunge prodotti alle varie categorie.

La tabella id_category_product ha senso proprio per permettere che un prodotto possa essere assegnato a più categorie, sia che si tratti di sottocategorie che di altre categorie distinte. (in databasese si tratta di un collegamento molti-a-molti).

Ogni riga permette di associare quel prodotto a quella categoria attraverso i rispettivi id.

Per eliminare i vecchi collegamenti devi individuare le rispettive righe ed eliminarle.

Nel caso (fortunato) che la vecchia categoria madre non debba avere nessun prodotto (per es. solo sottocategorie), puoi facilmente effettuare questa operazione con un semplice comando sql:

Con PhpMyAdmin ti porti nella solita tabella, selezioni la scheda 'SQL' e nell'apposito riquadro digiti: 

SELECT * 
FROM  `ps_category_product` 
WHERE  `id_category` =2

dove 2 è il codice della categoria che ti interessa.

Questo comando è completamente innoquo, ti permette di mostrare tutte le righe della tua tabella che contengono quel valore.

 

Per eliminarle tutte puoi ripetere il comando sql sostituendo 'SELECT *' con 'DELETE', oppure selezionando tutto ed eliminare i selezionati.

il problema e che sto lavorando a 300 prodotti la volta usando il comando cancello la categoria contenente ancora altri prodotti giusto?? 

 

come faccio ad applicare il comando ai soli prodotti che ho duplicato di categoria? 

 

Grazie ancora

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...