Magento – Il problema degli enable-cookies

Magento richiede che il browser sia abilitato al javascript e che sia disponibile il servizio di cookies sul browser dell’utente. La mancanza di queste funzionalità rende impossibile navigare ed effettuare acquisti. Il sistema utilizza un meccanismo interno per valutare queste capacità.

Nel caso dei cookies c’è una situazione per cui il sistema fallisce e indica la falsa impossibilità di salvare cookies. La situazione si presenta quando si pulisce il browser effettuando un reset oppure avviamo per la prima volta il browser stesso e si apre come prima pagina la registrazione utente o il carrello.
In questa situazione Magento effettuerà redirect verso la pagina /enable-cookies senza motivo. I realtà i cookies vengono settati, solo che sono leggibili fino al prossimo caricamento.

Le soluzioni sono varie…ne ho selezionate 2:

  1. Disabilitare il redirect alla pagina /enable-cookies da Sistema –> Configurazione –> Web
  2. Interporre prima del caricamento della registrazione una pagina php che setti un cookie di inizializzazione

La prima soluzione è molto semplice, ma ha il difetto di togliere feedback agli utenti che davvero hanno i cookie disabilitati. Questi utenti proveranno a registrarsi senza ottenere errori. Solitamente si tratta del 2% dell’audience.

La seconda soluzione è più complessa ma garantisce il corretto funzionamento del meccanismo di gestione dei cookies da parte di Magento in quanto si evita il verificarsi della condizione incriminata.

Bisogna creare una pagina PHP con il seguente codice:

<?
setcookie ("InitializeCookie", "OK", time() + 3600);

$url = 'customer/account/create';
$queryString = $_SERVER['QUERY_STRING'];
$finalUrl = $url .'?'.$queryString;

header("Status: 301");
header("Location: $finalUrl");
exit;
?>
Questo codice se chiamato con un indirizzo del tipo:
https://www.miosito.com/redirect-registration.php?pippo=pippo
restituisce questo indirizzo:
https://www.miosito.com/customer/account/create?pippo=pippo
ovvero la pagina di registrazione utente con eventuali parametri di querystring e un cookie settato di inizializzazione. Non è una soluzione molto elegante, ma permette di aggirare il problema senza riscrivere il controllo interno di Magento/Zend.

Tags: ,

Un Commento to “Magento – Il problema degli enable-cookies”

  1. Cristian B. scrive:

    Ok, ma questa pagina dove va messa? :)

    Comunque, questo problema sarà ancora presente nelle ultime release di Magento?

    PS.: Manca un plugin per potersi iscrivere ad eventuale risposte / commenti. Quindi temo che non ritornerò perché me ne dimentico. Addio! :(