Jump to content

franco1706

Members
  • Posts

    5
  • Joined

  • Last visited

Profile Information

  • Activity
    Other

franco1706's Achievements

Newbie

Newbie (1/14)

0

Reputation

  1. Grazie Luigi per l'avvertimento, siccome ne sono consapevole, l'avevo già segnalato indicando che i "carrelli abbandonati" devono essere periodicamente controllati e cancellati. Tutt'altra cosa invece per i carrelli che rimangano sul database in quanto la transazione si è conclusa con la vendita, questi carrelli non entrano nel conteggio per la disponibilità. In realtà ho già scritto anche il codice per eliminare automaticamente i carrelli abbandonati dopo X giorni (a mia scelta) però siccome non l'ho ancora testato non ho ritenuto proporlo. Ciao e grazie!!!
  2. Le modifiche sono state testate su Prestashop 1.6.0.11 Ho notato che Prestahop visualizza la quantità disponibile senza tener conto di eventuali prodotti messi nel proprio e/o nel carrello di altri utenti. Ipotizziamo di aver 10 pezzi in magazzino di un prodotto denominato “PALLA” . Se il cliente TIZIO mette nel proprio carrello nr 7 PALLA ed il cliente CAIO mette nel proprio carrello nr 6 PALLA il nostro Prestashop lo consente intervenendo solo al momento del pagamento negando l'operazione a colui che provvederà all'acquisto per secondo avvertendolo che un prodotto non è più disponibile. Ho provato a verificare se esistesse una modalità di configurazione in admin che cambiasse il modo di calcolare la disponibilità del prodotto ma non l'ho trovata. (Se ci fosse sarei grato a chi me la indicasse). Ho provato allora a scrivere due righe di codice per modificare le cose e siccome mi sembra funzionino bene le metto a disposizione di tutti. 1) creare in root una cartella denominata “arriba” ed inserire il file Arriba.php (vedi script alla fine) 2) con un editor aprire il file in classes/stock/StockAvaible.php circa in riga 363 modificare la riga Cache::store($key, (int)Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($query); in Cache::store($key, (int)Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($query) -Arriba::qta_product_cart($id_product)); 3)nel file classes/Product.php circa in riga 3074 modificare la riga return ($qty <= StockAvailable::getQuantityAvailableByProduct($this->id, $id_product_attribute)); in return ($qty <= StockAvailable::getQuantityAvailableByProduct($this->id, $id_product_attribute)+Arriba::qta_product_order($this->id)); 4) Nel file controller/FrontController.php inserire in riga 2 in pratica sotto <?php include_once("arriba/Arriba.php"); e circa a riga 268 modificare la riga else $this->context->cart = $cart; in else { $this->context->cart = $cart; define("ARRIBA_CART",$cart->id); } Dopo queste modifiche verrà visualizzato come disponibilità del prodotto la quantità in magazzino meno la quantità nei carrelli prima di essere venduti e quando l'utente inserirà il prodotto nel carrello si terrà conto delle quantità presenti nei vari carrelli. Ricordiamo che ogni volta che aggiorneremo la versione di Prestashop oppure modiche che alterano i file da noi rettificati dovremo verificare se esistono ancora le nostre modifiche ed eventualmente inserirle nuovamente. Una cosa da tenere presente sono i CARRELLI ABBANDONATI che potrebbero alterare la disponibilità effettiva. E' opportuno nella parte admin-Clienti verificare se nei Carrello della spesa ci siano carrelli abbandonati da molto tempo ed eventualmente eliminarli. Spero che il mio lavoro sia utile ad altri. Qua sotto il file Arriba.php da inserire nella cartella arriba ***Inizio file Arriba.php ***(utilizzato sul sito www.arribaarriba.it)*** <?php class Arriba { public function qta_product_cart($idprod) { $query="select id_cart from "._DB_PREFIX_."cart where id_carrier!='0'"; $rows = Db::getInstance()->executeS("$query"); $notin=''; foreach ($rows as $r) { $notin.="'$r[id_cart]',"; } $not=substr($notin,0,-1); if($not!=''){$not=" and "._DB_PREFIX_."cart_product.id_cart not in($not)";} $newquery="select sum("._DB_PREFIX_."cart_product.quantity) as qty from "._DB_PREFIX_."cart_product where "._DB_PREFIX_."cart_product.id_product='$idprod' $not"; return (int)Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($newquery); } public function qta_product_order($idprod) { $id_cart=ARRIBA_CART; $newquery="select "._DB_PREFIX_."cart_product.quantity as qty from "._DB_PREFIX_."cart_product where "._DB_PREFIX_."cart_product.id_product='$idprod' and "._DB_PREFIX_."cart_product.id_cart='$id_cart'"; return (int)Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($newquery); } } ?> *** fine file Arriba.php
  3. Ho scaricato PS 1.6.0.8 e stò facendo delle prove. Ho riscontrato un problema con il carrello. Dopo essermi fatto riconoscere come cliente ho fatto degli acquisti. Se uso sempre lo stesso browers e non mi scollego come utente registrato (cioè senza usare il tasto 'esci') anche se dopo qualche ora riapro lo stesso browser grazie al cookie mi riconosce e mi dice che cosa ho nel carrello. Però se dovessi ricollegarmi con un altro browser oppure con lo stesso di prima ma dovendomi farmi riconoscere perché avevo usato il tasto esci non mi trova più il carrello precedente. Sicuramente PS usa solo i cookie e non fa un controllo usando l'ID utente e verificando se nella tabella ps_cart ci siano già carrelli aperti. Questo cosa comporta ?!?! Che come amministratore troverò tanti carrelli abbandonati. Il template usato è quello standard di Prestashop default-bootstrap Questa anomalia si verifica sia in locale che sul sito di produzione. Ho provato anche in locale reinstallando Prestashop e lasciandolo senza variazioni e usando il settaggio standard con gli esempi inseriti ma non è cambiato nulla. Qualcuno sa darmi qualche suggerimento (sono disposto anche ad intervenire sul codice eventualmente- un pochino di php lo capisco) per risolvere questo problema??? Grazie Franco
  4. Scusate mi sapreste dire come si fa ad attivare l'obbligatorietà del Codice Fiscale al momento della registrazione?!?! Grazie
  5. Da pochissimi giorni ho scaricato Prestashop (vers.1.5.2.0) e avendo già risolto i problemi per l'inserimento dei prodotti, stò cercando di settare le varie cose e in questo momento ho dei piccoli problemi con il modulo Homeslider. Dovendo ,per mia scelta, usare per le immagine un formato diverso da quello standard (in altezza)mi ritrovo con un problemino per quanto riguarda la posizione che prendono i numeri delle foto. Siccome stò lavorando solo in locale non posso indicare il link del mio sito però posso inserire sotto un'immagine per spiegarmi meglio. In pratica vorrei che i numerini 1-2-3-4-5 siano posizionati più in basso oppure lateralmente. Qualcuno ha già risolto questo problema oppure sapete indicarmi altri moduli (sempre gratuiti).in modo che non abbia questo problema. Grazie RISOLTO..... Scusate per il disturbo, ogni tanto mi perdo in bicchiere d'acqua...o di grappa bastava cambiare il campo height da 300 a quello desiderato (401) nel file bx_styles.css
×
×
  • Create New...