rutchyweb Posted November 8 Share Posted November 8 Bonjour à tous, Nous avons mis une fonction de génération de fichier csv lors de l'enregistrement de commande sur prestahop. J'ai ajouté une fonction qui génère le fichier dans \controllers\front\OrderConfirmationController.php, le fichier est bien généré lorsque le client envoi sa commande sur prestashop mais il y a une lenteur lors de l'enregistrement. Je souhaiterais savoir si le souci c'est ma fonction, je ne l'ai pas mis au bon endroit ? Je suis sur prestashop 1.7.8.7 actuellement. Voici la fonction : <? public function createCsvFile($array_info) { $Object = new DateTime(); $Date = $Object->format("d-m-Y"); $email = $array_info['email']; // Connexion à la base de données $conn = new mysqli("localhost", "root", "", "ps_db"); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $stmt = $conn->prepare("SELECT type_livraison FROM ps_customer WHERE email = ?"); $stmt->bind_param("s", $email); $stmt->execute(); $result = $stmt->get_result(); if ($result->num_rows > 0) { $row = $result->fetch_assoc(); $type_livraison = $row["type_livraison"]; $this->context->smarty->assign([ 'type_livraison' => $type_livraison, ]); } else { echo "no results"; return; } $stmt->close(); $conn->close(); $path = str_replace(["\\", "//"], "/", getcwd()) . "/export/commande"; if (!is_dir($path)) { mkdir($path, 0777, true); // Crée le répertoire si nécessaire } $nomFich = "$path/Export_" . $array_info['reference'] . "_$Date.csv"; // Supprimer le fichier existant, si nécessaire if (is_file($nomFich)) { unlink($nomFich); } $tab = [ ['E', $array_info['reference'], $Date, $code, $array_info['firstname'] . ' ' . $array_info['lastname'], $array_info['email'], $array_info['id']] ]; foreach ($array_info['products'] as $product) { $tab[] = [ 'L', $product['name'], $product['reference'], $product['cart_quantity'], $product['price'] ]; } $file = fopen($nomFich, "w"); if ($file) { fprintf($file, chr(0xEF) . chr(0xBB) . chr(0xBF)); foreach ($tab as $ligne) { fputcsv($file, $ligne, ";"); } fclose($file); return 'fichier créé'; } else { return 'erreur'; } } Si quelqu'un a une idée s'il vous plaît? Merci d'avance Link to comment Share on other sites More sharing options...
Mediacom87 Posted November 8 Share Posted November 8 Bonjour, 1- on ne touche jamais, sous aucun prétexte aux fichiers du cœur de PrestaShop. 2- on développe un module. Link to comment Share on other sites More sharing options...
Prestashop Addict Posted November 8 Share Posted November 8 En plus il y a des hooks pour les commandes https://devdocs.prestashop-project.org/1.7/modules/concepts/hooks/list-of-hooks/ Link to comment Share on other sites More sharing options...
rutchyweb Posted November 13 Author Share Posted November 13 Merci pour vos retours, Je vais voir de mon côté alors. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now