On 12/1/2018 at 12:20 PM, codencode dice:Ho dato un controllo ai file della versione 1.7.2.4 e mancano proprio le istruzioni per verificare se uno o più articoli nel carrello sono disponibili o meno, di conseguenza il sistema consente di effettuare l'ordine.
Bisogna attendere le prossime versioni e verificare se inseriscono questo controllo.
Per ovviare momentaneamente a questo problema ho buttato giù qualche riga di codice prendendo spunto dalla versione 1.6.
I file da aggiornare sono i controller del carrello e dell'ordine.
File OrderController.php
Metodo postProcess, appena prima dell'istruzione
parent::postProcess();Va inserito il seguente codice
/***** modifica per controllo disponibilità articoli nel carrello *****/ $product = $this->context->cart->checkQuantities(true); if ((int)$id_product = $this->context->cart->checkProductsAccess()) { Tools::redirect('index.php?controller=cart&action=show'); } // If some products have disappear if (is_array($product)) { Tools::redirect('index.php?controller=cart&action=show'); } /**********************************************************************/File CartController.php
Metodo init, appena dopo l'istruzione
parent::init();
Va inserito il seguente codice
/***** modifica per controllo disponibilità articoli nel carrello *****/ $product = $this->context->cart->checkQuantities(true); if ((int)$id_product = $this->context->cart->checkProductsAccess()) { $this->errors[] = $this->trans( 'An item in your cart is no longer available (%1s). You cannot proceed with your order.', array(Product::getProductName((int)1)), 'Shop.Notifications.Error' ); } // If some products have disappear if (is_array($product)) { $this->errors[] = $this->trans( 'An item (%1s) in your cart is no longer available in this quantity. You cannot proceed with your order until the quantity is adjusted.', array( $product['name']), 'Shop.Notifications.Error' ); } /**********************************************************************/In caso di aggiornamento bisognerà aggiornare nuovamente questi file.
In alternativa si può eseguire l'override dei 2 file che allego, da notare che probabilmente prima o poi il supporto degli override verrà eliminato.
Ovviamente poi vanno fatte le 2 traduzioni dei messaggi di errore.
Come al solito prima di apportare le modifiche consiglio di fare una copia di backup dei file e del database, inoltre consiglio di apportare le modifiche prima su una versione di test o in locale.
Ho lo stesso bug, provo ad implementare questa soluzione... e: FUNZIONA!!!!!! Grazie Mille
A presto