Myriam

Utilisateur open source
  • Content count

    45
  • Joined

  • Last visited


Posts posted by Myriam


  1. Simon

    Toujours dans la modification de ce panier, dans la class caddie, j'ai ajouté les lignes suivantes dans la fonction update_line() :

    // Total type produit 50 cl de la ligne
            if ($product_object->type_btle = 1) {$this->type_50cl[$numero_ligne] = $this->quantite[$numero_ligne];}
            // MYM Total type produit 75 cl de la ligne
            if ($product_object->type_btle = 2) {$this->type_75cl[$numero_ligne] = $this->quantite[$numero_ligne];}
            // MYM Total type produit magnum de la ligne
            if ($product_object->type_btle = 3) {$this->type_magnum[$numero_ligne] = $this->quantite[$numero_ligne];}    
            // MYM Total type produit bib 5l de la ligne
            if ($product_object->type_btle = 4) {$this->type_bib5[$numero_ligne] = $this->quantite[$numero_ligne];}    
            // MYM Total type produit bib 10l de la ligne
            if ($product_object->type_btle = 5) {$this->type_bib10[$numero_ligne] = $this->quantite[$numero_ligne];}    
            // MYM Total type produit plv de la ligne
            if ($product_object->type_btle = 6) {$this->type_plv[$numero_ligne] = $this->quantite[$numero_ligne];}

    J'ai le message d'erreur suivant : Warning: Cannot use a scalar value as an array pour les 6 lignes.

    J'ai pris l'exemple du poids de la bouteille pour modifier la class caddie.

    Merci de votre aide.


  2. Bonjour,

    Je souhaiterais afficher le bouton valider la commande dans le panier lorsque toutes les conditions imposées sont réunies. J'ai créée une table pour ses nouvelles conditions et ajouter les champs nécessaires dans la fiche produit. J'ai modifié les class caddie et produits en conséquence et les fichiers langues. Tout cela fonctionne.

    J'ai modifié le fichier "caddie_content_html.tpl" ainsi (vers ligne 104) :

    {if $is_minimum_error}
    									<p class="center">
    										{if !empty($STR_MINIMUM_PURCHASE_ONLY_50)}
    											{$STR_MINIMUM_PURCHASE_ONLY_50}
    										{/if}	
    										
    										{if !empty($STR_MINIMUM_PURCHASE_ONLY_75)}
    											{$STR_MINIMUM_PURCHASE_ONLY_75}	
    										{/if}
    										
    										{if !empty($STR_MINIMUM_PURCHASE_OF) && !empty($minimum_prix) && !empty($STR_REQUIRED_VALIDATE_ORDER)}	
    											{$STR_MINIMUM_PURCHASE_OF}{$minimum_prix}{$STR_REQUIRED_VALIDATE_ORDER}
    										{/if}
    											
    									</p>
    								{else}
    									<p class="center">
    									{if !empty($recommanded_product_on_cart_page)}
    										{$recommanded_product_on_cart_page}
    									{elseif (!empty($STR_ORDER))}
    										<button type="submit" class="tooltip_link btn btn-lg btn-primary"{if !empty($shipping_text)} data-toggle="tooltip" title="{$shipping_text|str_form_value}"{/if} onclick="return frmsubmit('commande')">{$STR_ORDER} <span class="glyphicon glyphicon-chevron-right"></span></button>
    									{/if}
    									</p>
    								{/if}

    et dans le fichier display_caddie.php, j'ai modifié la fonction get_caddie_content_html ainsi :

    // PANIER SUPÉRIEUR AU MONTANT MINIMUM
    			else {
    				
    				// MYM Vérifier les quantités minimums pour chaque type de produit
    				$sqlTypeProd = 'SELECT id, technical_code, quantitemin 
    								FROM peel_produits_type';
    				$resTypeProd = query($sqlTypeProd);				
    				while ($type_produit = fetch_assoc($resTypeProd)) {
    				
    					if ($type_produit['technical_code'] == 'type_50cl') { $btle50 = $type_produit['quantitemin']; 
    						echo '<br />qte minimum 50 '.$btle50; }
    					if ($type_produit['technical_code'] == 'type_75cl') { $btle75 = $type_produit['quantitemin']; 
    						echo '<br />qte minimum 75 '.$btle75; }
    
    								
    					// UNIQUEMENT DES 50 CL
    					if (!empty($_SESSION['session_caddie']->total_type_50cl) 
    						&& empty($_SESSION['session_caddie']->total_type_75cl)
    						&& empty($_SESSION['session_caddie']->total_type_magnum)
    						&& empty($_SESSION['session_caddie']->total_type_bib5)
    						&& empty($_SESSION['session_caddie']->total_type_bib10)
    						&& empty($_SESSION['session_caddie']->total_type_plv)) {
    						if ($_SESSION['session_caddie']->total_type_50cl >= $btle50 && ($_SESSION['session_caddie']->total_type_50cl % 12 == 0)) {
    							$tpl->assign('is_minimum_error', false);
    							// FINALISER VOTRE COMMANDE
    							$tpl->assign('STR_ORDER', $GLOBALS['STR_ORDER']);
    						}
    						else {
    							$tpl->assign('is_minimum_error', true);
    							$tpl->assign('STR_MINIMUM_PURCHASE_ONLY_50', $GLOBALS['STR_MINIMUM_PURCHASE_ONLY_50']);
    							//$tpl->assign('STR_REQUIRED_VALIDATE_ORDER', $GLOBALS['STR_REQUIRED_VALIDATE_ORDER']);
    						}
    					}
    					
    					// UNIQUEMENT DES 75 CL
    					if (empty($_SESSION['session_caddie']->total_type_50cl) 
    						&& !empty($_SESSION['session_caddie']->total_type_75cl)
    						&& empty($_SESSION['session_caddie']->total_type_magnum)
    						&& empty($_SESSION['session_caddie']->total_type_bib5)
    						&& empty($_SESSION['session_caddie']->total_type_bib10)
    						&& empty($_SESSION['session_caddie']->total_type_plv)) {
    						if ($_SESSION['session_caddie']->total_type_75cl >= $btle75 && ($_SESSION['session_caddie']->total_type_75cl % 6 == 0)) {
    							$tpl->assign('is_minimum_error', false);
    							// FINALISER VOTRE COMMANDE
    							$tpl->assign('STR_ORDER', $GLOBALS['STR_ORDER']);
    						}
    						else {
    							$tpl->assign('is_minimum_error', true);
    							$tpl->assign('STR_MINIMUM_PURCHASE_ONLY_75', $GLOBALS['STR_MINIMUM_PURCHASE_ONLY_75']);
    							//$tpl->assign('STR_REQUIRED_VALIDATE_ORDER', $GLOBALS['STR_REQUIRED_VALIDATE_ORDER']);
    						}
    					}
    				}

     

    La modification apportée à cette fonction déclenche le message d'erreur suivant :

    PHP Notice: Trying to get property of non-object sur is_minimum_error

    Pouvez vous m'aider.

     

     


  3. En fait, je me suis rendue compte que la fonction update_order_payment_status gérait trois types de variables : true, false ou numéric. J'ai donc ajouté un elseif dans call_autoresponse à la variable response_code avec la valeur 05 et à la place de false j'ai mis l'identifiant de mon nouveau statut de paiement. Cela fonctionne.

     

    Du coup, cela ne devrait pas avoir de conséquence sur le reste ?

    notamment Est-ce qu'il est nécessaire de modifier la ligne 733 de la fonction update_code_promo() du fichier Caddie.php comme suit : . " AND sp.technical_code NOT IN ('cancelled','refused',refunded')"; ?


  4. Bonjour 

     

    J'ai acheté et installé votre module SIPS ATOS.

    D'origine, qu'une commande soit annulée par le client ou refusée par la banque, c'est le statut paiement annulé (cancelled) qui est automatiquement configurer.

    Je souhaiterai avoir un statut refusé et un statut annulé.

     

    Dans la base de donnée, peel_statut_paiement, j'ai créé un nouveau statut 

    id 7 / technical_code refused / position 4 / site_id 1 / nom_fr Refusé / nom_en Refused

     

    J'ai modifié les fichiers database_statut_paiement_fr et database_statut_paiement_en ainsi

     $peel_statut_paiement["nom"] = array(

      "discussed" => "En cours de discussion",
      "pending" => "En attente de paiement",
      "being_checked" => "Paiement en cours de vérification",
      "completed" => "Réglé",
      "refused" => "Refusé",
      "cancelled" => "Annulé",
      "refunded" => "Remboursé"
    );
     
    Est ce que c'est la fonction update_order_payment_status dans le fichier order.php que je dois modifier et comment ?
     
    Est-ce qu'il est nécessaire de modifier la ligne 733 de la fonction update_code_promo() du fichier Caddie.php comme suit : . " AND sp.technical_code NOT IN ('cancelled','refused',refunded')"; ?
     
    y-a-t-il d'autres fichiers à modifier ?
     

  5. Pouvez-vous m'aider ?

     

    Je me rends compte que dans la table configuration, il y a deux ligne dont le code technique est sips :

    1) code technique = sips, origin = sites.php, type = string, string = mon identifiant marchand sogenactif, lang = null, etat = 1, site_id = 1

    2) code technique = sips, origin = core, type = array, string = sogenactif => mon identifiant marchand sogenactif, lang = null, etat = 1, site_id = 1

     

    Quelle est la ligne que je dois conserver ?


  6. Bonjour,

     

    le message d'erreur

    Warning: fopen(/var/www/vhosts/vin-rouge-blanc-rose-truffes-oenotourisme-terraventoux.fr/httpdocs/v2/modules/sips/pathfile): failed to open stream: Permission denied in /var/www/vhosts/vin-rouge-blanc-rose-truffes-oenotourisme-terraventoux.fr/httpdocs/v2/modules/sips/fonctions.phpon line 256

     

    Indique que vous ne pouvez pas créer le fichier pathfile a cause d'une configuration de votre hébergement. Il vous pouvez créer pathfile manuellement en reprennant le code qui est dans pathfile.php. Il faut aussi désactiver la variable de configurarion generate_pathfile.

     

    Bonjour Simon

    Merci de votre réponse.

    Il va falloir m'en dire un peu plus tant je maitrisai parfaitement le code de la version 5 et 6 autant je dois complètement me familiariser avec la 7 !

    Quand vous dites "vous pouvez créer pathfile manuellement en reprenant le code qui est dans pathfile.php", vous voulez que je le créé où ?

    Dans une configuration automatique, comment se génère le fichier pathfile ? Quel est le fichier php qui permet de le générer ?

     

    Quand vous dites désactiver la variable de configuration generate_pathfile, vous voulez que je mettre false à la place de true dans le champ string de la table peel_configuration ?


  7. Bonsoir,

     

    Je suis sous peel shopping 7.2.1 avec module premium. Je viens d'acquérir le module sips atos. J'ai suivi la procédure d'installation et j'ai les messages d'erreurs suivant :

     

    Warning: fopen(/var/www/vhosts/vin-rouge-blanc-rose-truffes-oenotourisme-terraventoux.fr/httpdocs/v2/modules/sips/pathfile): failed to open stream: Permission denied in /var/www/vhosts/vin-rouge-blanc-rose-truffes-oenotourisme-terraventoux.fr/httpdocs/v2/modules/sips/fonctions.phpon line 256

    Warning: fwrite() expects parameter 1 to be resource, boolean given in /var/www/vhosts/vin-rouge-blanc-rose-truffes-oenotourisme-terraventoux.fr/httpdocs/v2/modules/sips/fonctions.php on line 257

    Warning: fclose() expects parameter 1 to be resource, boolean given in /var/www/vhosts/vin-rouge-blanc-rose-truffes-oenotourisme-terraventoux.fr/httpdocs/v2/modules/sips/fonctions.php on line 258

     

    Executable request non trouvé /var/www/vhosts/vin-rouge-blanc-rose-truffes-oenotourisme-terraventoux.fr/httpdocs/v2/modules/sips/bin/request

     
    Mon fichier fonctions.php est bien en 755 ainsi que RESPONSE ET REQUEST.
    J'ai juste déplacer le fichier param pour respecter la contrainte des 83 caractères.
     
    Pouvez-vous me dire où est le problème.

  8. Répose rapide à priori :

    function valide_type_bouteille($controle_type_75cl, $controle_type_magnum, &$erreurs) {

    $erreurs = array();

    $msg = array();

    if ($controle_type_75cl <> 6) {

    $erreurs['controle_type_75cl'] = true;

    $msg['controle_type_75cl'] = "» votre panier doit contenir 6, 12, 18, 24, 36, 48, 60, 72, 84 ou 96 bouteilles de 75 cl.";

    }

    elseif ($controle_type_magnum <> 1) {

    $erreurs['controle_type_magnum'] = true;

    $msg['controle_type_magnum'] = "» votre panier doit contenir 1, 3, 6, 12, 18 ou 24 magnums.";

    }

    return $msg;

    }

    Bonjour Éric,

    En fait, c'est plus complexe que cela car vous avez le droit de commander 6 bouteilles et 1 magnum par ex. ou encore 12 bouteilles et 3 magnums.

    En revanche, vous ne pouvez pas commander 3 bouteilles et 1 magnums. La quantité de magnum est bonne mais pas la quantité de bouteilles.

    En mettant des marqueurs de test dans le code voici le résultat du foreach lorsque mon panier contient 6 bouteilles et 0 magnum :

    $controle_type_75cl = 6
    
    $controle_type_magnum = 0
    
    valeur $bouteille = 0 - $erreur = 1
    
    valeur $bouteille = 12 - $erreur = 1
    
    valeur $bouteille = 18 - $erreur = 1
    
    valeur $bouteille = 24 - $erreur = 1
    
    valeur $bouteille = 36 - $erreur = 1
    
    valeur $bouteille = 48 - $erreur = 1
    
    valeur $bouteille = 60 - $erreur = 1
    
    valeur $bouteille = 72 - $erreur = 1
    
    valeur $bouteille = 84 - $erreur = 1
    
    valeur $bouteille = 96 - $erreur = 1
    
    valeur $magnum = 1 - $erreur = 1
    
    valeur $magnum = 3 - $erreur = 1
    
    valeur $magnum = 6 - $erreur = 1
    
    valeur $magnum = 12 - $erreur = 1
    
    valeur $magnum = 24 - $erreur = 1
    
    
    caddie_no

    Vous remarquez que entre valeur $bouteille = 0 - $erreur = 1 et valeur $bouteille = 12 - $erreur = 1

    Il n'y a pas valeur : $bouteille = 6 - $erreur = 1

    Je suis totalement perdu. L'écriture de mon foreach en soi est bon mais la logique est mauvaise.

    Merci de votre aide


  9. Bonjour à tous,

    Je ne sais pas si c'est parce que j'ai la tête dans le guidon mais je ne comprends pas ce qui se passe.

    Dans le panier, vous pouvez ajouter des bouteilles ou des magnums car vous ne pouvez commander par ex que 6, 12 ou 18 bouteilles et 1, 3 ou 9 magnums.

    Ma quantité total de bouteilles est stockées dans la variable $total_type_75cl

    Ma quantité total de magnums est stockées dans la variable $total_type_magnum

    Lorsque j'affiche le caddie, je demande si ces deux variables sont pleines et je contrôle si elles correspondent aux critères d'envoi soit 6, 12 et 18 bouteilles et 1, 3 ou 9 magnums. et c'est là où les problèmes commencent...

    voici le code dans le panier :

    /* PANIER PLEIN */
    
    if (!empty($_SESSION['caddie']->total_type_75cl) || !empty($_SESSION['caddie']->total_type_magnum)) { 
    
    
    	$controle_type_75cl = $_SESSION['caddie']->total_type_75cl;
    
    	$controle_type_magnum = $_SESSION['caddie']->total_type_magnum;
    
    	/*1. Traitement des erreurs */
    
    	$message_erreur = valide_type_bouteille($controle_type_75cl, $controle_type_magnum, $erreurs);
    
    }
    
    
    if (empty($message_erreur)) {
    
    
    	echo '<p>caddie_ok</p>'; //test
    
    	echo '<br />';//test
    
    	echo var_dump($message_erreur).' <br />';//test
    
    
    	include ("gabarit/caddie_ok.php");
    
    }
    
    if (!empty($message_erreur)) {
    
    
    	echo '<p>caddie_no</p>'; //test
    
    	echo '<br />';//test
    
    	echo var_dump($message_erreur);//test
    
    
    	include ("gabarit/caddie_no.php");
    
    
    }
    Voici la fonction qui fonctionne mais n'est pas complète :
    function valide_type_bouteille($controle_type_75cl, $controle_type_magnum, &$erreurs) {
    
    $erreurs = array();
    
    $msg = array();
    
    
    if ($controle_type_75cl <> 6) {
    
    $erreurs['controle_type_75cl'] = true;
    
    $msg['controle_type_75cl'] = "» votre panier doit contenir 6, 12, 18, 24, 36, 48, 60, 72, 84 ou 96 bouteilles de 75 cl.";
    
    } 
    
    
    if ($controle_type_magnum <> 1) { 
    
    $erreurs['controle_type_magnum'] = true;
    
    $msg['controle_type_magnum'] = "» votre panier doit contenir 1, 3, 6, 12, 18 ou 24 magnums.";
    
    } 
    
    return $msg;
    
    }
    Comme vous pouvez le voir cela ne contrôle que sur 1 seul critère. J'ai donc voulu créer une boucle et c'est là où j'ai besoin d'aide car elle ne fonctionne pas !
    function valide_type_bouteille($controle_type_75cl, $controle_type_magnum, &$erreurs) {
    
    $erreurs = array();
    
    $msg = array();
    
    $bouteille = array('6','12','18','24','36','48','60','72','84','96');
    
    $magnum = array('1','3','6','12','24');
    
    
    foreach ($bouteille as $valeur) {
    
    		if ($controle_type_75cl != $valeur) { 
    
    			$erreurs['controle_type_75cl'] = true;
    
    			$msg['controle_type_75cl'] = "» votre panier doit contenir 6, 12, 18, 24, 36, 48, 60, 72, 84 ou 96 bouteilles de 75 cl.";	
    
    		}
    
    }	
    
    
    foreach ($magnum as $valeur) {
    
    		if ($controle_type_magnum != $valeur) { 
    
    			$erreurs['controle_type_magnum'] = true;
    
    			$msg['controle_type_magnum'] = "» votre panier doit contenir 1, 3, 6, 12, 18 ou 24 magnums.";	
    
    		}
    
    }
    
    return $msg;
    
    }

    Avec les foreach, le panier est toujours faux.

    A l'avance merci pour votre aide

Twitter Advisto ecommerce

Facebook PEEL Shopping