Try the Demo

Magento Forum

   
Creare trigger per aggiornare tabelle Magento
 
The_4th_knight
Member
 
Total Posts:  42
Joined:  2012-04-23
 

Salve,sto cercando di creare dei trigger personali per aggiornare delle tabelle in Magento,nello specifico vorrei estrarre Nome,Cognome e password dell’utente.
Il SET che faccio funziona bene con entity_id,Email e la data di creazione dell’utente,ma con gli altri tre campi no.
Avete qualche consiglio?

 
Magento Community Magento Community
Magento Community
Magento Community
 
The_4th_knight
Member
 
Total Posts:  42
Joined:  2012-04-23
 
The_4th_knight - 21 November 2012 07:31 AM

Salve,sto cercando di creare dei trigger personali per aggiornare delle tabelle in Magento,nello specifico vorrei estrarre Nome,Cognome e password dell’utente.
Il SET che faccio funziona bene con entity_id,Email e la data di creazione dell’utente,ma con gli altri tre campi no.
Avete qualche consiglio?

Nessuno sa come potrei fare?

 
Magento Community Magento Community
Magento Community
Magento Community
 
The_4th_knight
Member
 
Total Posts:  42
Joined:  2012-04-23
 
The_4th_knight - 22 November 2012 06:04 AM

The_4th_knight - 21 November 2012 07:31 AM
Salve,sto cercando di creare dei trigger personali per aggiornare delle tabelle in Magento,nello specifico vorrei estrarre Nome,Cognome e password dell’utente.
Il SET che faccio funziona bene con entity_id,Email e la data di creazione dell’utente,ma con gli altri tre campi no.
Avete qualche consiglio?

Nessuno sa come potrei fare?

Va bene,potete chiudere questo thread....chi fa da se per tre,come dico sempre....

 
Magento Community Magento Community
Magento Community
Magento Community
 
Giuseppe @ S0Px
Sr. Member
 
Avatar
Total Posts:  150
Joined:  2010-02-01
 

Ciao,
di solito io preferisco evitare di agire a livello di dbase, ma utilizzare gli event/observer di magento

La tua richiesta non è per nulla chiara (forse è per questo che nessuno ha risposto),
quale azione utente ti interessa ?

La registrazione di un utente ?
L’aggiunta i un nuovo indirizzo ?
La login ?

Se ci dai qualche info in più magari possiamo aiutarti…

Ciao Giuseppe Mencarelli

 Signature 

Giuseppe
Magento developer at StudioZeroPixel s.r.l.

 
Magento Community Magento Community
Magento Community
Magento Community
 
The_4th_knight
Member
 
Total Posts:  42
Joined:  2012-04-23
 
Giuseppe @ S0Px - 23 November 2012 05:24 AM

Ciao,
di solito io preferisco evitare di agire a livello di dbase, ma utilizzare gli event/observer di magento

La tua richiesta non è per nulla chiara (forse è per questo che nessuno ha risposto),
quale azione utente ti interessa ?

La registrazione di un utente ?
L’aggiunta i un nuovo indirizzo ?
La login ?

Se ci dai qualche info in più magari possiamo aiutarti…

Ciao Giuseppe Mencarelli

Praticamente ho creato una tabella nel db,chiamata customer_ext che dovrebbe essere riempita con i dati del cliente in modo che un cms esterno a magento li legga,l’idea di fondo è questa:
1°) il cliente si registra sul sito
2) A livello del DB,due trigger che partono AFTER INSERT sulle tabelle customer_entity e customer_entity_varchar,dovrebbero copiare entity_id,Email,Nome,Cognome,Email,Password in customer_ext.

Solo che funziona un primo trigger che copia solo entity_id,Email e gli altri no,anzi mi da errore di salvataggio dati se è attivo anche il secondo trigger su customer_entity_varchar…

 
Magento Community Magento Community
Magento Community
Magento Community
 
Giuseppe @ S0Px
Sr. Member
 
Avatar
Total Posts:  150
Joined:  2010-02-01
 

Capito !!

Quello che devi fare è molto simile ad un modulino sviluppato qualche tempo fa, solo che questo modulo al posto
di scrivere una table inviava una mail.

Il modulo ascolta l’evento di registrazione_utente e si attiva quando serve.

Secondo me (ma non sono pratico di dbase) non riesci con i trigger in quanto la struttura EAV di magento per ogni oggetto,
in questo caso un utente, ha più di una tabella e tu dovresti scrivere solo quando TUTTE le tabelle interessate sono state scritte.

se vuoi posso recuperare il modulino e passartelo poi al posto di mandare la mail puoi fare i tuoi update…

Ciao
Gisueppe

 Signature 

Giuseppe
Magento developer at StudioZeroPixel s.r.l.

 
Magento Community Magento Community
Magento Community
Magento Community
 
The_4th_knight
Member
 
Total Posts:  42
Joined:  2012-04-23
 
Giuseppe @ S0Px - 23 November 2012 06:21 AM

Capito !!

Quello che devi fare è molto simile ad un modulino sviluppato qualche tempo fa, solo che questo modulo al posto
di scrivere una table inviava una mail.

Il modulo ascolta l’evento di registrazione_utente e si attiva quando serve.

Secondo me (ma non sono pratico di dbase) non riesci con i trigger in quanto la struttura EAV di magento per ogni oggetto,
in questo caso un utente, ha più di una tabella e tu dovresti scrivere solo quando TUTTE le tabelle interessate sono state scritte.

se vuoi posso recuperare il modulino e passartelo poi al posto di mandare la mail puoi fare i tuoi update…

Ciao
Gisueppe

Sarebbe fantastico!!!uhm....e la stessa cosa dovrei fare con le tabelle degli ordini,ma penso che modificandolo ad hoc potrebbe funzionare anche per gli ordini.
Grazie Giuseppe smile

 
Magento Community Magento Community
Magento Community
Magento Community
 
Giuseppe @ S0Px
Sr. Member
 
Avatar
Total Posts:  150
Joined:  2010-02-01
 

si basterà aggiungere un event_observer
purtroppo però non riesco a mandarti il file oggi, te lo spedisco domani mattina,
mandami la tua mail in MP poi ti esplicito qui le modifiche da fare così condividiamo le informazioni

Ciao
Giuseppe

 Signature 

Giuseppe
Magento developer at StudioZeroPixel s.r.l.

 
Magento Community Magento Community
Magento Community
Magento Community
 
The_4th_knight
Member
 
Total Posts:  42
Joined:  2012-04-23
 
Giuseppe @ S0Px - 23 November 2012 07:27 AM

si basterà aggiungere un event_observer
purtroppo però non riesco a mandarti il file oggi, te lo spedisco domani mattina,
mandami la tua mail in MP poi ti esplicito qui le modifiche da fare così condividiamo le informazioni

Ciao
Giuseppe

Ciao Giuseppe,ho ricevuto la tua mail con il materiale...più o meno ho capito che devo intercettare l’evento sulla registrazione del cliente al sito,per poi copiare i dati che mi servono in quella tabella.
Mi conviene fare un controllo sull’evento customer_register_success? giusto?

 
Magento Community Magento Community
Magento Community
Magento Community
 
Giuseppe @ S0Px
Sr. Member
 
Avatar
Total Posts:  150
Joined:  2010-02-01
 

Ciao scusa l’attesa non ho avuto un momento libero....

<global>
        <
models>
            <
acymailing>
                <class>
Szp_AcyMailing_Model</class>
            </
acymailing>
        </
models>      
        <
events
          <
customer_save_after> <-------------------------------- evento (inizio)
            <
observers>
              <
szp_acymailing_check_observer>
                <
type>model</type>
                <class>
acymailing/observer</class>
                <
method>registerAcyMailing</method>
              </
szp_acymailing_check_observer>
            </
observers>
          </
customer_save_after> <-------------------------------- evento (fine)            
        </
events>
  </global>

Abbiamo “ascoltato” l’evento customer_register_success ma non ci funzionava bene e ci siamo
rivolti poi al customer_save_after.
Nel tuo caso però questo evento potrebbe provocare doppie iscrizioni quindi o vedi se ti funziona il
customer_register_success oppure fai un controllo per evitare doppi inserimenti.

Ciao
Giuseppe Mencarelli

 Signature 

Giuseppe
Magento developer at StudioZeroPixel s.r.l.

 
Magento Community Magento Community
Magento Community
Magento Community
 
The_4th_knight
Member
 
Total Posts:  42
Joined:  2012-04-23
 
Giuseppe @ S0Px - 27 November 2012 03:51 AM

Ciao scusa l’attesa non ho avuto un momento libero....

<global>
        <
models>
            <
acymailing>
                <class>
Szp_AcyMailing_Model</class>
            </
acymailing>
        </
models>      
        <
events
          <
customer_save_after> <-------------------------------- evento (inizio)
            <
observers>
              <
szp_acymailing_check_observer>
                <
type>model</type>
                <class>
acymailing/observer</class>
                <
method>registerAcyMailing</method>
              </
szp_acymailing_check_observer>
            </
observers>
          </
customer_save_after> <-------------------------------- evento (fine)            
        </
events>
  </global>

Abbiamo “ascoltato” l’evento customer_register_success ma non ci funzionava bene e ci siamo
rivolti poi al customer_save_after.
Nel tuo caso però questo evento potrebbe provocare doppie iscrizioni quindi o vedi se ti funziona il
customer_register_success oppure fai un controllo per evitare doppi inserimenti.

Ciao
Giuseppe Mencarelli

Ho provato con customer_register_success e funziona :D
Se volessi aggiungere altri eventi personalizzati in uno stesso modulo poso farlo? o crea qualche problema?...se fosse possibile aggiungerei la modifica e la cancellazione dell’utente.
E poi passerei a fare un modulo simile per gli ordini…

 
Magento Community Magento Community
Magento Community
Magento Community
 
Giuseppe @ S0Px
Sr. Member
 
Avatar
Total Posts:  150
Joined:  2010-02-01
 

Ciao
puoi aggiungere tutti gli eventi che vuoi allo stesso modulo

1) crea la funzione che gestira l’evento nel file observer.php

class Szp_AcyMailing_Model_Observer
{
    
public function registerAcyMailing(Varien_Event_Observer $observer)
    
{

        
//ToDo !!!
        
        
return;
    
}

    
public function nuovoMetodo(Varien_Event_Observer $observer)
    
{

        
//ToDo !!!
        
        
return;
    
}
}

2) nell’xml indichi la funzione creata nel tag “method”

<events
          <
customer_save_after>
            <
observers>
              <
szp_acymailing_check_observer>
                <
type>model</type>
                <class>
acymailing/observer</class>
                <
method>registerAcyMailing</method>
              </
szp_acymailing_check_observer>
            </
observers>
          </
customer_save_after>          
          <
altro_evento>
            <
observers>
              <
szp_acymailing_check_observer>
                <
type>model</type>
                <class>
acymailing/observer</class>
                <
method>nuovoMetodo</method>
              </
szp_acymailing_check_observer>
            </
observers>
          </
altro_evento>        
        </
events>

Dovrebbe funzioanare !!!

Ciao

 Signature 

Giuseppe
Magento developer at StudioZeroPixel s.r.l.

 
Magento Community Magento Community
Magento Community
Magento Community
 
The_4th_knight
Member
 
Total Posts:  42
Joined:  2012-04-23
 
Giuseppe @ S0Px - 27 November 2012 08:31 AM

Ciao
puoi aggiungere tutti gli eventi che vuoi allo stesso modulo

1) crea la funzione che gestira l’evento nel file observer.php

class Szp_AcyMailing_Model_Observer
{
    
public function registerAcyMailing(Varien_Event_Observer $observer)
    
{

        
//ToDo !!!
        
        
return;
    
}

    
public function nuovoMetodo(Varien_Event_Observer $observer)
    
{

        
//ToDo !!!
        
        
return;
    
}
}


2) nell’xml indichi la funzione creata nel tag “method”

<events
          <
customer_save_after>
            <
observers>
              <
szp_acymailing_check_observer>
                <
type>model</type>
                <class>
acymailing/observer</class>
                <
method>registerAcyMailing</method>
              </
szp_acymailing_check_observer>
            </
observers>
          </
customer_save_after>          
          <
altro_evento>
            <
observers>
              <
szp_acymailing_check_observer>
                <
type>model</type>
                <class>
acymailing/observer</class>
                <
method>nuovoMetodo</method>
              </
szp_acymailing_check_observer>
            </
observers>
          </
altro_evento>        
        </
events>

Dovrebbe funzioanare !!!

Ciao

Ciao Giuseppe,funziona tutto perfettamente :D,se volessi intercettare l’evento di modifica password da pannello di controllo in Magento e poi far eseguire del codice mio,ha un nome definito quell’evento?

 
Magento Community Magento Community
Magento Community
Magento Community
 
Giuseppe @ S0Px
Sr. Member
 
Avatar
Total Posts:  150
Joined:  2010-02-01
 

Ciao,
ottimo sono contento che sei riuscito !!

per la modifica della password non credo esista un evento specifico.

Cerca con Google “Magento event list” e trovi diversi siti che propongo un elenco degli eventi disponibili.

Ciao

 Signature 

Giuseppe
Magento developer at StudioZeroPixel s.r.l.

 
Magento Community Magento Community
Magento Community
Magento Community
 
The_4th_knight
Member
 
Total Posts:  42
Joined:  2012-04-23
 
The_4th_knight - 28 November 2012 03:08 AM

Giuseppe @ S0Px - 27 November 2012 08:31 AM
Ciao
puoi aggiungere tutti gli eventi che vuoi allo stesso modulo

1) crea la funzione che gestira l’evento nel file observer.php

class Szp_AcyMailing_Model_Observer
{
    
public function registerAcyMailing(Varien_Event_Observer $observer)
    
{

        
//ToDo !!!
        
        
return;
    
}

    
public function nuovoMetodo(Varien_Event_Observer $observer)
    
{

        
//ToDo !!!
        
        
return;
    
}
}


2) nell’xml indichi la funzione creata nel tag “method”

<events
          <
customer_save_after>
            <
observers>
              <
szp_acymailing_check_observer>
                <
type>model</type>
                <class>
acymailing/observer</class>
                <
method>registerAcyMailing</method>
              </
szp_acymailing_check_observer>
            </
observers>
          </
customer_save_after>          
          <
altro_evento>
            <
observers>
              <
szp_acymailing_check_observer>
                <
type>model</type>
                <class>
acymailing/observer</class>
                <
method>nuovoMetodo</method>
              </
szp_acymailing_check_observer>
            </
observers>
          </
altro_evento>        
        </
events>

Dovrebbe funzioanare !!!

Ciao

Ciao Giuseppe,funziona tutto perfettamente :D,se volessi intercettare l’evento di modifica password da pannello di controllo in Magento e poi far eseguire del codice mio,ha un nome definito quell’evento?

Mi correggo l’ho trovato e funziona anche quello :D,ora passo a creare per gli ordini del cliente,quali eventi sono coinvolti?

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
    Back to top