Jump to content

vinzter

Members
  • Posts

    60
  • Joined

  • Last visited

Posts posted by vinzter

  1. Bonsoir,

     

    La version 1.2 du module que j'ai proposé est compatible avec la version 1.6.1.4 de prestashop.

     

    Pour ce qui est du multiboutique, je ne sais pas, je n'ai pas eu l'occasion de tester. Mais si vous avez l'occasion de le faire, merci de nous tenir informé.

     

    Pour rappel, je ne suis pas le développeur du module original (v1.0). Mais n'ayant pas de retour de celui-ci, je l'ai fait évolué vers la version 1.2 en fonction de mes besoins et des suggestions ou demandes faites sur ce forum.

     

    Cordialement

  2. Bonjour et merci pour le module. Comment puis-je rajouter le fichier PHP l'envoi du (ou des) numéro de téléphone client? J'ai besoin de les contacter rapidement après confirmation de commande. Le SMS c'est parfait car j'ai toutes les infos pour le rappeler, sauf le numéro...

     

    J'ai rajouter après le ligne 361 le code 

     

    $customer_phone= $this->l('Téléphone : ').$the_customer->homephone."\r\n";

     

    mais comme je connais pas assez PHP et smarty ben je sèche... 

     

    Merci!

     

     

    Bonjour SauveSouris,

     

    Ci-joint une version 1.2 du module avec la fonction de possibilité d'affichage du numéro de téléphone dans le message.

     

    Il faut désinstaller l'ancienne version et réinstaller celle-ci.

     

    Ne pas oublier de sauvegarder dans un coin ses paramètres de configuration free avant, cela évite d'avoir à les rechercher.

     

    Pour info le numéro de téléphone n'est pas lié au client mais soit à l'adresse de facturation, soit à l'adresse de livraison. En l'occurrence j'ai opté pour la réception du numéro de téléphone de facturation car si le client souhaite faire un cadeau surprise il serait dommage de gâcher celle-ci.

     

    Cordialement

    Vincent

    isismsorderfree1.2.zip

    • Like 1
  3. Issue solved.

     

    For who encounter this issue --> Go to BO Menu Administration --> Meniu -> Click on Client / Class AdminParentCustomer.

    Modify Admin loyalty points and change module name from adminloyalty in AdminLoyalty

     

    Best regards,

     

    Hi eldermaster,

     

    Thank you for the solution, it works fine for me.

     

    Traduction en Français :

    Pour ceux qui ont le problème "Controleur Introuvable" à l'installation du module, il faut aller dans le menu "Administration" => "Menus" puis cliquer sur "Clients" puis pour la classe "AdminAdminLoyalty" cliquer sur le bouton "Modifier" et modifier le nom du module "adminloyalty" en "AdminLoyalty"

     

    Cela résoud normalement le problème, vous pouvez désormais accéder à l'interface d'administration de ce module.

    Solution testée sur sur prestashop 1.6.1.1

     

    Cordialement

  4. Bonsoir,

     

    Voici le lien du projet sur github, si certains veulent proposer des améliorations au module.

     

    https://github.com/vinzter/exportleguide

     

    Dans les prochains jours je rajouterai l'export vers googleshopping et touslesprix.

    Il y aurait aussi la possibilité de créer un export pour amazon mais il faudrait faire un catalogue pour chaque type d'activité étant donné que leur templates sont différents.

     

    Cordialement

    Vincent

    • Like 1
  5. Bonjour,

     

    Tout d'abord merci à Autourdupc pour le signalement, la détection et la correction de bugs.

    Comme promis voici une version 1.61 qui doit corriger plusieurs problèmes. Je n'ai pas encore eu le temps de faire tous les tests et notamment en tache cron donc si vous trouvez d'autres soucis n'hésitez pas à le signaler.

     

    Les changements de cette version sont les suivants :

    - nettoyage des fichiers et code
    - Correction du bug "Description Longue" qui renvoyait un champ vide (problème de doublons sur la requête sql)
    - Correction du bug d'affichage des frais de port (problème lié à une erreur de condition sur les frais de port gratuits)
    - Ajout aux frais de port de la taxe configurée dans tranporteurs
    - Ajout d'un fichier index.php renvoyant à la racine du site dans chaque dossier
    - Changement de "$destFilename = $fullDestDir.$catalogFilename;" en "$destFilename = $fullDestDir.'/'.$catalogFilename;"
    - Ajout de @unlink($fullfilename) pour supprimer le fichier catalogue du répertoire exports par défaut quand on créé un répertoire d'export personnalisé.
    - Correction de quelques autres erreurs de syntaxes
    - Correction d'une erreur de variable dans le fichier de catalogue shoppydoo
    - Correction d'une erreur d'appel de variable de id_image lors de la génération du catalogue avec déclinaisons
    - Ajout d'un champ permettant de modifier la variable "Type d'Image" qui change selon les versions prestashop ou des paramètres personnalisés

     

    Les petits problèmes qu'il reste à régler :

    - Changer le mode de connexion SQL mysql_ vers du mysqli_ ou du PDO
    - Corriger le fichier catalogue "Shopping" qui contient des erreurs
    - Vérifier que la désinstallation s'effectue correctement
    - L'export perd les virgules que l'on insère dans la description du produit à cause du formatage pour les fichiers csv
    - L'export ne perd pas les point virgules que l'on insère dans la description du produit pouvant causer des problèmes dans les fichiers csv
    - Créer un fichier index.php en même temps que la création du répertoire personnalisé des exports

     

    Cordialement

    Vincent

     

    exportleguide_v1.61.zip

  6. Bonjour,

     

    Voici ci-joint une version 1.1 modifiée par mes soins. Je l'ai testé sur prestashop 1.6.0.13 avec succès.

    Avant d'installer cette version je vous conseille de désinstaller votre version existante si vous aviez déjà installé une autre version.

    Par contre avant de désinstaller votre version pensez à mémoriser votre compte client et votre clé Free Mobile.

     

    Les évolutions du modules sont les suivantes :

    - Modification du format du SMS
    - Ajout de la possibilité de sélectionner les infos affichées dans le SMS
    - Ajout de la possibilité d'envoyer les SMS sur un deuxième téléphone
    - Ajout de la possibilité d'activer ou non les envois sur les téléphones configurés
    - Amélioration de la page de configuration dans le back office
    - Traduction du module (Anglais, Français)
    - Suppression des dossiers et fichiers inutiles

     

    Si vous constatez un soucis merci de le signaler.

     

    Cordialement

    Vincent

     

    isismsorderfree_v1.1.zip

    • Like 1
  7. Bonjour,

     

    @Autourdupc

    Merci pour tes recherches. J'ai jeté un coup d'oeil, en fait la fonction "f_delivery_price" est opérationnelle, le problème se situe dans le fichier fonctions.php mais même en corrigeant l'erreur il faut rajouter une fonction pour appliquer la tva au tarif des frais de port. Je suis en train de faire quelques modifs entre deux. J'aurais surement une nouvelle version dispo lundi.

     

    Cordialement

    Vincent

  8. Re...

     

    En fait, je préconise ces modifications...

     

    Absolument utiliser un autre dossier que celui proposé par défaut

    Changer le nom du fichier d'export.

    --> Cela évitera de vous faire aspirer votre fichier d'export par n'importe qui.

     

    Si vous faites cela, alors il faut

    Dans le fichier "guide-script.php".

    Après la ligne 1321.

    Ajouter @unlink($fullfilename);

    --> cela permet d'effacer le fichier d'export temporaire qui est généré, et vous ne garderez que le fichier définitif dans votre dossier défini précédemment.

     

    Ajouter un fichier index.php dans le dossier "export" (fichier index.php qui vous aurez pris dans une autre arborescence du site... Il y en a plein)

    --> cela permet d'éviter de pouvoir arriver dans le dossier des exports et voir le contenu

    Ajouter aussi le même fichier index.php dans le dossier d'export défini précédemment

    --> Même raison. On ne pourra pas voir votre liste d'export.

     

     

    Pour des raisons d'esthétique...

     

    Ligne 1305.

    remplacer "$destFilename = $fullDestDir.$catalogFilename;" par "$destFilename = $fullDestDir.'/'.$catalogFilename;"

     

     

    Enfin, il serait bien qu'un développeur effectue ces corrections dans le code pour générer une nouvelle version.

     

     

    Bonne journée !

     

     

    Bonjour,

     

    Désolé je suis un peu surchargé en ce moment, je ne pourrai pas m'occuper de ça avant 72h.

     

    Mais dès que je peux je regarde si je peux aider sur ces points.

     

    Cordialement

  9. Hi, thankyou for your module.

     

    Is there a guide to use it? After installing (PS 1.6)  i can't file any module or setting to use it.

     

    Thankyou.

     

    Hi,

     

    No i don't think there is any guide for it except the ones in the docs folder of the module.

    What's your problem ? And which guide export are you aiming at ?

     

    I don't think i'll have the time to make any guide at all. But i can give a hand if needed.

     

    Vincent

  10. Bonsoir,

     

    Voici une version 1.60 renommée en Export LeGuide basée sur la version 1.59 de jolvil.

    Testée sur prestashop 1.6.0.13 et normalement pas de problèmes de fonctionnement.

     

    Bingo ! La demande de mise à jour concernant le module payant proposé sur addons n'est plus là.

     

    Par contre avant d'installer cette version il faut désinstaller et supprimer l'ancienne version sinon la base de données ne sera pas mise à jour correctement.

     

    Cordialement

     

    exportleguide_1.60.zip

  11. Re-bonsoir,

     

    Oui j'utilise toujours le module en tache cron sur 1.6.0.9 mais je l'avais fait évolué au fur et à mesure que je repérais des bugs et au fil des évolutions de presta, donc j'ai essayé de récapituler les modifs principales mais j'en ai peut-être oublié.

    Sur ma version j'avais en plus fait des modifs perso spécifiques, mais demain je ferai un comparatif avec la version 1.58c de jolvil et je vous tiens au courant.

     

    Cordialement

  12. Bonsoir,

     

    Oui c'est vrai j'avais oublié que j'avais fait ça à l'époque, réencoder tous les fichier en utf8 avec notepad+.

     

    Pour ce qui est de la mise à jour, c'est à cause du module payant proposé sur addons et qui porte le même nom.

     

    Pour que ce problème soit résolu, il faudrait renommer le module autrement, ou peut-être changer le numéro de version vers une version supérieure pour que le module soit considéré à jour.

     

    Cordialement

  13. Bon pour un peu plus de précision, sur PHP 5.6 vous pouvez essayer de rajouter la fonction suivante dans le fichier isismsorderfree.php :

    	function file_get_contents_curl($url) {
    		$ch = curl_init();
    
    		curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
    		curl_setopt($ch, CURLOPT_HEADER, 0);
    		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    		curl_setopt($ch, CURLOPT_URL, $url);
    		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);       
    
    		$data = curl_exec($ch);
    		curl_close($ch);
    
    		return $data;
    	}
    

    Et ensuite remplacer, dans ce même fichier,  les occurences "@file_get_contents" par "file_get_contents_curl"

     

    Je n'ai pas encore testé, mais si vous le faites avant, tenez nous informé du résultat.

     

    Cordialement

  14. Bonsoir,

     

    Oui il y a surement des subtilités au niveau du code qui ont changées avec PHP 5.6.

    Y a t-il une erreur qui est retournée ?

     

    Sur votre version 5.6 avez-vous les mêmes options d'activées que sur votre version 5.5 ?

     

    Peut-être un début de piste ici, désormais sur PHP 5.6 : Uploads using the @file syntax are now only supported if the CURLOPT_SAFE_UPLOAD option is set to FALSE. CURLFile should be used instead.

     

    Cordialement

    Vincent

  15. Bonsoir,

    Pour le template de sms suivant :

     

    Nouvelle commande : #num
    Ref. commande : #ref
    Client : #prenom #nom
    Montant : #montant
    Paiement : #moyen de paiement
    Livraison : #moyen de livraison
    Destination : #pays de livraison

    Détail des produits :
    #qté X #ref #name #attributs #prix


    Voici le code de ma fonction à modifier dans le fichier /modules/isismsorderfree/isismsorderfree.php :

    function hookActionValidateOrder($params){
            $this->getData();
            $xdata = $this->getConfig();
            if($this->display){
            
                $the_customer = $params['customer'];
                $currency = $params['currency'];
                $order_num = "Nouvelle commande : ".sprintf("%06d",$params['order']->id);
                $order_ref = "Ref. commande : ".$params['order']->reference;
                $customer_details = "Client : ".$the_customer->firstname." ".$the_customer->lastname;
                $total_amount = "Montant : ".$params['order']->total_paid." ".$currency->sign;
                $payment_mode = "Paiement : ".$params['order']->payment;
                $carrier = new Carrier((int)$params['order']->id_carrier);
                $carrier_name = "Livraison : ". $carrier->name;
                $address_delivery = new Address((int)$params['order']->id_address_delivery);
                //$country_delivery = "Destination : ". Country::getIsoById((int)$address_delivery->id_country);
                $country_delivery = "Destination : ". Country::getNameById((int)$this->context->cookie->id_lang, (int)$address_delivery->id_country);
                $items = "Détail des Produits :\r\n";
                $products = $params['order']->getProducts();
    
                foreach ($products as $key => $product)
                {
                    $unit_price = $product['product_price_wt'];
                    $items .= (int)$product['product_quantity']." X ".$product['product_reference']." ".$product['product_name']." ".(isset($product['attributes_small']) ? ' '.$product['attributes_small'] : '')." ".Tools::displayPrice($unit_price, $currency, false)."\r\n";
                }
                $msg =  urlencode($order_num."\r\n".$order_ref."\r\n".$customer_details."\r\n".$total_amount."\r\n".$payment_mode."\r\n".$carrier_name."\r\n".$country_delivery."\r\n\r\n".$items);
    
                //$msg =  urlencode("Nouvelle commande: ".sprintf("%06d",$params['order']->id)."\r\nMontant: ".$params['order']->total_paid." ".$params['currency']->sign."\r\npar: ".$params['order']->payment);
                @file_get_contents("https://smsapi.free-mobile.fr/sendmsg?user=".$xdata['code']."&pass=".$xdata['cle']."&msg=".$msg);
            }
        }

    J'ai testé, normalement ça fonctionne.

     

    Autre améliorations possibles du module, pas trop compliquées, il faudrait juste prendre le temps de le faire (si il y a des courageux dans la salle qui ont un peu de temps à y consacrer) :

    • Le rendre multilingue
    • Ajouter la possibilité d'envoyer le message à plusieurs numéros
    • Ajouter la possiblité de sélectionner ce que l'on souhaite afficher comme infos dans le sms
    • Afficher si il faut un emballage cadeau (pour ceux qui ont activé cette option sur leur site)

    Cordialement

    Vincent

  16. Bonjour,

     

    Je fais tourner ce module (version 1.58b) sur un prestashop 1.6.0.9 sans problème. Je l'utilise pour générer de nombreux feeds. Voici les modifications que j'ai fait pour le faire tourner :

     

    Pour ce qui est de l'erreur fatale :

    [PrestaShop] Fatal error in module tools_guide:
    Access to undeclared static property: My_sql::$this
    

    Cela vient de la version de php utilisée ! Avec une version PHP 5.3.3 pas de soucis, mais pour ma part depuis une mise à jour vers la version PHP 5.4.36 l'erreur apparaît.

     

    J'ai donc supprimé toutes les occurrences "parent::" dans les fichiers contenus dans "modules/leguide/class/" ce qui fait disparaître l'erreur et le comportement global du module ne semble pas avoir changé. J'ai généré plusieurs feeds sans problème.

     

    Pour ce qui est des warnings mktime :

     

    J'ai aussi modifié le code pour ne plus avoir le warning "Strict Standards: mktime()"

     

    dans le fichier "modules/leguide/class/toolsguide.php" :

    $cronKey = md5(mktime());
    

    par

    $cronKey = md5(time());
    

    et dans le fichier "modules/leguide/class/guide-script.php" :

    $startTime = mktime();
    

    par

    $startTime = time();
    

    Pour ce qui est de l'utilisation de la fonction obsolète ereg_replace :

     

    Pour finir j'ai remplacé les fonctions "f_convert_text" et "f_convert_text2" dans le fichier "modules/leguide/class/fonctions.php" par le code qui suit afin de ne plus utiliser la fonction ereg_replace qui est obsolète :

    	function f_convert_text($string){
    		
    		htmlspecialchars($string);
    		$string = strip_tags(html_entity_decode(($string),ENT_QUOTES,'UTF-8'));
    		strip_tags($string); 
    
    		//27/05/2009 - Fabien LAHAULLE - suppression des balises <br/>
    		$string = preg_replace('#<br ?/?>#isU', ' ', $string);
    
    
    
    		$string = preg_replace('#<[^>]*>#', '', $string);
    
    		// retire les retours à la ligne
    
    		$string = preg_replace('/(\r\n|\n|\r)/', ' ', $string); 
    		
    		$string = str_replace('à', 'à', $string);
    		$string = str_replace('â', 'â', $string);
    		$string = str_replace('ä', 'ä', $string);
    		$string = str_replace('ç', 'ç', $string);
    		$string = str_replace('è', 'è', $string);
    		$string = str_replace('é', 'é', $string);
    		$string = str_replace('É', 'é', $string);
    		$string = str_replace('ê', 'ê', $string);
    		$string = str_replace('ë', 'ë', $string);
    		$string = str_replace('î', 'î', $string);
    		$string = str_replace('ô', 'ô', $string);
    		$string = str_replace('ù', 'ù', $string);
    		$string = str_replace('û', 'û', $string);
    		$string = str_replace('’', "'", $string);
    		$string = str_replace('°', '°', $string);
    
    		// Conversion des monnaies
    
    		$string = str_replace('€', 'EUR', $string);
    
    		// Espacement
    
    		$string = str_replace(' ', ' ', $string);	
    
    		// on vires les ;
    
    		$string = str_replace(';', ':', $string);	
    						
    		return $string;	
    	}
    	
    	//Avi - nouvelle fonction nettoyage de caractères html
    	function f_convert_text2($strSeparateur,$string,$useHtml2text){
    		$string = trim($string);
    		$string = preg_replace('#<br ?/?>#isU', ' ', $string);
    		$string = preg_replace('/(\r\n|\n|\r)/', ' ', $string); 
    		$string = strip_tags(html_entity_decode(($string),ENT_QUOTES,'UTF-8'));
    
    		$string = str_replace('€', '€', $string);
    
    		$string = preg_replace('#\t+#', ' ', $string);
    		$string = preg_replace('#\t+#', ' ', $string);
    		$string = preg_replace('#'.CHR(10).'+#',' ',$string);
    		$string = str_replace(CHR(9)," ",$string);
    		if($strSeparateur!="")
    			$string = str_replace($strSeparateur," ",$string);
    		$string = preg_replace('# +#', ' ', $string);
    		if($useHtml2text){
    			$string=&new html2text($string);
    			$string=$string->get_text();
    		}
    		return trim($string);
    	}
    

    Problème de caractères avec la version 1.58b :

     

    Avec la version 1.58b, certains fichiers sont mal encodés, ainsi que certains caractères. Il faut donc ré-encoder correctement (avec notepad++ par exemple) tous les fichiers de la version 1.58b pour ne avoir de surprises par la suite.

     

    Versions utilisées pour ces modifs et tests :

     

    Pour info j'ai fait mes tests sur la version prestashop 1.6.0.9 et la version 1.58b du module

     

    Cordialement

    Vincent

    • Like 1
  17.  

    Ok thank you for the url.

     

    I bought it to but it doesn't work for me on 1.6.0.9

    I have errors with the 404 page url and also a big mess with categories not redirected correctly.

    Some of my categorie url redirect to totally different ones and even with completely different rewrite links.

     

    Thanks anyway

  18. Re,

     

    Bon j'ai modifié la fonction dans mon fichier pour obtenir un sms de ce type, j'ai testé chez moi et ça à l'air de fonctionner sans problème :

     

    Nouvelle commande : #num

    Ref. commande : #ref

    Client : #prenom #nom

    Montant : #montant

    #mode de paiement

     

    Détail des produits :

    #qté X #ref #name #attributs #prix

     

    Voici le code de ma fonction :

    	function hookActionValidateOrder($params){
    		$this->getData();
    		$xdata = $this->getConfig();
    		if($this->display){
    		
    			$the_customer = $params['customer'];
    			$currency = $params['currency'];
    			$order_num = "Nouvelle commande : ".sprintf("%06d",$params['order']->id);
    			$order_ref = "Ref. commande : ".$params['order']->reference;
    			$customer_details = "Client : ".$the_customer->firstname." ".$the_customer->lastname;
    			$total_amount = "Montant : ".$params['order']->total_paid." ".$currency->sign;
    			$payment_mode = $params['order']->payment;
    			$items = "Détail des Produits :\r\n";
    			$products = $params['order']->getProducts();
    			foreach ($products as $key => $product)
    			{
    				$unit_price = $product['product_price_wt'];
    				$items .= (int)$product['product_quantity']." X ".$product['product_reference']." ".$product['product_name']." ".(isset($product['attributes_small']) ? ' '.$product['attributes_small'] : '')." ".Tools::displayPrice($unit_price, $currency, false)."\r\n";
    			}
    			$msg =  urlencode($order_num."\r\n".$order_ref."\r\n".$customer_details."\r\n".$total_amount."\r\n".$payment_mode."\r\n\r\n".$items);
    
    			//$msg =  urlencode("Nouvelle commande: ".sprintf("%06d",$params['order']->id)."\r\nMontant: ".$params['order']->total_paid." ".$params['currency']->sign."\r\npar: ".$params['order']->payment);
    			@file_get_contents("https://smsapi.free-mobile.fr/sendmsg?user=".$xdata['code']."&pass=".$xdata['cle']."&msg=".$msg);
    		}
    	}
    

    Cordialement

    Vincent

  19. Bonsoir Deco59

     

    Je n'ai pas encore testé mais je pense que pour le détail des produits il faut utiliser quelque chose comme ça :

    $products = $params['order']->getProducts();
    foreach ($products as $key => $product) {
    	$unit_price = $product['product_price_wt'];
    	$items .= (int)$product['product_quantity']." X ".$product['product_reference']." ".$product['product_name']." ".(isset($product['attributes_small']) ? ' '.$product['attributes_small'] : '')." ".Tools::displayPrice($unit_price, $currency, false)."\r\n";
    }
    

    Ensuite tu retournes $items dans le message.

    Encore une fois je n'ai pas testé mais dès que c'est fait je te tiens au courant.

     

    Cordialement

    Vincent

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More