Posting in the Magento forums has been disabled pending the implementation of a new and improved forum solution which should better serve the community.

For new questions please post at magento.stackexchange.com, the community-run support site for the Magento community. We will be providing updates on the new forum solution soon. For questions or concerns please email community@magento.com.

Magento Forum

Creare trigger per aggiornare tabelle Magento
 
The_4th_knight
Sr. Member
 
Total Posts:  88
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
Sr. Member
 
Total Posts:  88
Joined:  2012-04-23
 
The_4th_knight - 21 November 2012 06: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
Sr. Member
 
Total Posts:  88
Joined:  2012-04-23
 
The_4th_knight - 22 November 2012 05:04 AM

The_4th_knight - 21 November 2012 06: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
 
StudioZeroPixel
Sr. Member
 
Avatar
Total Posts:  154
Joined:  2010-02-01
Italy
 

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

 
Magento Community Magento Community
Magento Community
Magento Community
 
The_4th_knight
Sr. Member
 
Total Posts:  88
Joined:  2012-04-23
 
Giuseppe @ S0Px - 23 November 2012 04: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
 
StudioZeroPixel
Sr. Member
 
Avatar
Total Posts:  154
Joined:  2010-02-01
Italy
 

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

 
Magento Community Magento Community
Magento Community
Magento Community
 
The_4th_knight
Sr. Member
 
Total Posts:  88
Joined:  2012-04-23
 
Giuseppe @ S0Px - 23 November 2012 05: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
 
StudioZeroPixel
Sr. Member
 
Avatar
Total Posts:  154
Joined:  2010-02-01
Italy
 

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

 
Magento Community Magento Community
Magento Community
Magento Community
 
The_4th_knight
Sr. Member
 
Total Posts:  88
Joined:  2012-04-23
 
Giuseppe @ S0Px - 23 November 2012 06: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
 
StudioZeroPixel
Sr. Member
 
Avatar
Total Posts:  154
Joined:  2010-02-01
Italy
 

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

 
Magento Community Magento Community
Magento Community
Magento Community
 
The_4th_knight
Sr. Member
 
Total Posts:  88
Joined:  2012-04-23
 
Giuseppe @ S0Px - 27 November 2012 02: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
 
StudioZeroPixel
Sr. Member
 
Avatar
Total Posts:  154
Joined:  2010-02-01
Italy
 

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

 
Magento Community Magento Community
Magento Community
Magento Community
 
The_4th_knight
Sr. Member
 
Total Posts:  88
Joined:  2012-04-23
 
Giuseppe @ S0Px - 27 November 2012 07: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
 
StudioZeroPixel
Sr. Member
 
Avatar
Total Posts:  154
Joined:  2010-02-01
Italy
 

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

 
Magento Community Magento Community
Magento Community
Magento Community
 
The_4th_knight
Sr. Member
 
Total Posts:  88
Joined:  2012-04-23
 
The_4th_knight - 28 November 2012 02:08 AM

Giuseppe @ S0Px - 27 November 2012 07: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