Blog sulla digitalizzazione dell’impresa italiana

Carrello Pop-Up PrestaShop

PrestaShop 1.7: disabilitare il Pop-Up del carrello Ajax

PrestaShop 1.7 ha tolto la possibilità di disabilitare il Pop-Up del carrello e di reindirizzare i clienti direttamente alla pagina di Checkout. Nella maggioranza dei casi il Pop-Up che offre la possibilità di continuare gli acquisti o procedere con l’ordine, è la scelta migliore. Ci sono però tipologie di e-commerce e situazioni particolari in cui dopo il click su “Aggiungi al Carrello” è consigliabile reindirizzare il cliente alla pagina di Checkout. È comunque possibile eseguire delle semplici modifiche per aggirare il problema.

Carrello PrestaShop

Per indirizzare direttamente nella pagina di Checkout senza visualizzare quindi il Pop-Up del carrello come facevamo con PrestaShop 1.6, dovremo apportare una piccola modifica al modulo Carrello di PrestaShop (ps_shoppingcart). La prima cosa da fare e assicurarsi che l’opzione AJAX sia attiva.

Carrello Ajax

Modificare il file ps_shoppingcart.js

Nella cartella del modulo (/modules/ps_shoppingcart) troviamo il file ps_shoppingcart.js sarà, cerchiamo nel file il seguente codice:

if (resp.modal) {
    showModal(resp.modal);
} 

Questo è il codice JS che richiama appunto il Pop-Up, sarà quindi necessario modificarlo come segue:

if (resp.modal) {
    window.location.replace('/carrello?action=show');
}

Il file modificato sarà da posizionare poi in /themes/NOSTROTEMA/modules/ps_shoppingcart (così da non venire annullata dagli aggiornamento futuri), se la cartella non è presente andremo a crearla e inseriremo il nostro ps_shoppingcart.js modificato, se la cartella, se è presente e presenta già un file ps_shoppingcart.js andrà modificato questo file. Sarà necessario cancellare la Cache di PrestaShop e del browser. Con questa semplice modifica abbiamo creato un semplice override del modulo che reindirizzerà il nostro cliente direttamente alla procedura di Checkout. 

[AdSense-A]

Questa soluzione non è pulita e ha dei limiti, se il sito è in multi-lingua, l’url del carrello cambia, per ovviare a questo problema è necessario effettuare altre modifiche, la prima modifica riguarda il file /modules/ps_shoppingcart/ps_shoppingcart.php dovremo editarlo e modificare il codice seguente:

public function hookHeader()
{
   if (Configuration::isCatalogMode()) {
       return;
   }
   if (Configuration::get('PS_BLOCK_CART_AJAX')) {
      $this->context->controller->registerJavascript('modules-shoppingcart', 'modules/' . $this->name . '/ps_shoppingcart.js', ['position' => 'bottom', 'priority' => 150]);
   }

}

nel seguente modo:

public function hookHeader()
{
   if (Configuration::isCatalogMode()) {
       return;
   }
   if (Configuration::get('PS_BLOCK_CART_AJAX')) {
       $this->context->controller->registerJavascript('modules-shoppingcart', 'modules/' . $this->name . '/ps_shoppingcart.js', ['position' => 'bottom', 'priority' => 150]);
   }
   $this->smarty->assign(array(
       'cart_url' => $this->getCartSummaryURL(),
    ));

   return $this->display(__FILE__, 'cart_header.tpl');
}

Sarà poi necessario creare il seguente file: /modules/ps_shoppingcart/views/templates/hook/cart_header.tpl contenete il seguente codice:

<script type="text/javascript">
{if isset($cart_url)}
var cart_url = '{$cart_url}';
{/if}
</script>

In questo modo URL sarà sempre quello giusto, purtroppo così saremo costretti a ripetere ad ogni aggiornamento del modulo, l’operazione.

ConDIVIDI

Cos’è l’olio di CBD?

L’olio CBD (chiamato anche cannabidiolo) deriva dalla pianta di canapa. Questa sostanza non inebriante ha dimostrato di avere una vasta gamma di benefici per la

Leggi tutto »