IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

[VirtueMart] eCommerce avec Joomla


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 200
    Points : 104
    Points
    104
    Par défaut [VirtueMart] eCommerce avec Joomla
    Bonjour,

    - Je travaille avec joomla/virtuemart 1.5.
    - Mon objectif est d'ajouter des paramétrés en plus de la quantité dans l'ajout au panier.

    question 1: Je voudrais savoir comment et dans quel fichiers est postée et récupérée la variable "quantity" dans le formulaire du fichier addtocart.tpl.php

    question 2: Y a t il d'autres fichiers qui participent dans l'ajout de produits dans le petit panier?

    Entête du formulaire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action="<?php echo $mm_action_url ?>index.php" method="post" name="addtocart" id="<?php echo uniqid('addtocart_') ?>" class="addtocart_form" <?php if( $this->get_cfg( 'useAjaxCartActions', 1 ) ) { echo 'onsubmit="handleAddToCart( this.id );return false;"'; } ?>>

    le champs quantity:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="quantity" id="quantity" size="29%" />

    Voici le code de handleAddToCart qui est dans le fichier theme.js

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    function handleAddToCart( formId, parameters ) {
    	formCartAdd = document.getElementById( formId );			
    		var callback = function(responseText) {
    			updateMiniCarts();
    			// close an existing mooPrompt box first, before attempting to create a new one (thanks wellsie!)
    			if (document.boxB) {
    				document.boxB.close();
    				clearTimeout(timeoutID);
    			}
     
    			document.boxB = new MooPrompt(notice_lbl, responseText, {
    					buttons: 2,
    					width:400,
    					height:150,
    					overlay: false,
    					button1: ok_lbl,
    					button2: cart_title,
    					onButton2: 	handleGoToCart
    				});
     
    			setTimeout( 'document.boxB.close()', 12000 );
    		}
     
    		var opt = {
    			// Use POST
    			method: 'post',
    			// Send this lovely data
    			data: $(formId),
    			// Handle successful response
    			onComplete: callback,
     
    			evalScripts: true
    		}
     
    		new Ajax(formCartAdd.action, opt).request();
     
     
    }
    et le code de updateMiniCarts toujours dans le fichier theme.js
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    /**
    * This function searches for all elements with the class name "vmCartModule" and
    * updates them with the contents of the page "shop.basket_short" after a cart modification event
    */
    function updateMiniCarts() {
    	var callbackCart = function(responseText) {
    		carts = $$( '.vmCartModule' );
    		if( carts ) {
    			try {
    				for (var i=0; i<carts.length; i++){
    					carts[i].innerHTML = responseText;
     
    					try {
    						color = carts[i].getStyle( 'color' );
    						bgcolor = carts[i].getStyle( 'background-color' );
    						if( bgcolor == 'transparent' ) {
    							// If the current element has no background color, it is transparent.
    							// We can't make a highlight without knowing about the real background color,
    							// so let's loop up to the next parent that has a BG Color
    							parent = carts[i].getParent();
    							while( parent && bgcolor == 'transparent' ) {
    								bgcolor = parent.getStyle( 'background-color' );
    								parent = parent.getParent();
    							}
    						}
    						var fxc = new Fx.Style(carts[i], 'color', {duration: 1000});
    						var fxbgc = new Fx.Style(carts[i], 'background-color', {duration: 1000});
     
    						fxc.start( '#222', color );				
    						fxbgc.start( '#fff68f', bgcolor );
    						if( parent ) {
    							setTimeout( "carts[" + i + "].setStyle( 'background-color', 'transparent' )", 1000 );
    						}
    					} catch(e) {}
    				}
    			} catch(e) {}
    		}
    	}
    	var option = { method: 'post', onComplete: callbackCart, data: { only_page:1,page: "shop.basket_short", option: "com_virtuemart" } }
    	new Ajax( live_site + '/index2.php', option).request();
    }
    Un autre fichier intervient dans ce module "shop.basket_short.php" pour préparer les variables à afficher

    Et pour afficher le petit panier à gauche c'est le fichier minicart.tpl.php


    Merci.

    Cordialement,
    "le professionnel et le chercheur sont comme le fleuve et l'océan"

  2. #2
    Membre confirmé Avatar de Sayrus
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    899
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 899
    Points : 570
    Points
    570
    Par défaut
    Salut,

    Je développe souvent en joomla 1.5+virtuemart pour les sites d'ecommerce.

    Pour effectuer tes modifs, tu trouveras ton bonheur dans le répertoire suivant:

    administrator\components\com_virtuemart\classes

    tu trouveras dans ce répertoire même les fichiers ps_{nom_de_la_classe}

    Par exemple pour tout ce qui est paiement c'est ps_shipping.php

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 200
    Points : 104
    Points
    104
    Par défaut
    Bonjour,

    Voici mon pb plus précisément:

    Lorcequ'on clique sur ajouter panier dans la page détail du produit dans virtumart, la quantié est mise à jour dans le petit panier.

    et et la table jos_session est mise à jour avec de nouveaux attributs. qui sont:

    Array ( [idx] => 1 [0] => Array ( [quantity] => 258 [product_id] => 459 [parent_id] => 459 [category_id] => 209 [description] => ) )

    et qu'on retrouve dans le sql

    __default|a:7:{s:15:"session.counter";i:6;s:19:"session.timer.start";i:1244452536;s:18:"session.timer.last";i:1244452667;s:17:"session.timer.now";i:1244452667;s:22:"session.client.browser";s:89:"Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10";s:8:"registry";O:9:"JRegistry":3:{s:17:"_defaultNameSpace";s:7:"session";s:9:"_registry";a:1:{s:7:"session";a:1:{s:4:"data";O:8:"stdClass":0:{}}}s:7:"_errors";a:0:{}}s:4:"user";O:5:"JUser":19:{s:2:"id";i:0;s:4:"name";N;s:8:"username";N;s:5:"email";N;s:8:"password";N;s:14:"password_clear";s:0:"";s:8:"usertype";s:15:"Public Frontend";s:5:"block";N;s:9:"sendEmail";i:0;s:3:"gid";i:0;s:12:"registerDate";N;s:13:"lastvisitDate";N;s:10:"activation";N;s:6:"params";N;s:3:"aid";i:0;s:5:"guest";i:1;s:7:"_params";O:10:"JParameter":7:{s:4:"_raw";s:0:"";s:4:"_xml";N;s:9:"_elements";a:0:{}s:12:"_elementPath";a:1:{i:0;s:87:"C:\Program Files\EasyPHP 2.0b1\www\monsite\libraries\joomla\html\parameter\element";}s:17:"_defaultNameSpace";s:8:"_default";s:9:"_registry";a:1:{s:8:"_default";a:1:{s:4:"data";O:8:"stdClass":0:{}}}s:7:"_errors";a:0:{}}s:9:"_errorMsg";N;s:7:"_errors";a:0:{}}}userstate|a:1:{s:10:"product_id";i:0;}auth|a:11:{s:11:"show_prices";i:1;s:7:"user_id";i:0;s:8:"username";s:4:"demo";s:5:"perms";s:0:"";s:10:"first_name";s:5:"guest";s:9:"last_name";s:0:"";s:16:"shopper_group_id";s:1:"5";s:22:"shopper_group_discount";s:4:"0.00";s:24:"show_price_including_tax";s:1:"1";s:21:"default_shopper_group";i:1;s:22:"is_registered_customer";b:0;}cart|a:2:{s:3:"idx";i:1;i:0;a:5:{s:8:"quantity";i:258;s:10:"product_id";s:3:"459";s:9:"parent_id";i:459;s:11:"category_id";i:209;s:11:"description";s:0:"";}}recent|a:2:{s:3:"idx";i:1;i:0;a:2:{s:10:"product_id";i:459;s:11:"category_id";i:209;}}ps_vendor_id|i:1;minimum_pov|s:4:"0.00";vendor_currency|s:3:"USD";vmMiniCart|b:0;vmUseGreyBox|s:1:"0";vmCartDirection|s:1:"0";VMCHECK|s:2:"OK";last_page|s:17:"shop.basket_short";last_browse_parameters|a:7:{s:11:"category_id";i:209;s:15:"manufacturer_id";i:0;s:7:"keyword";b:0;s:8:"keyword1";s:0:"";s:8:"keyword2";s:0:"";s:8:"featured";s:1:"N";s:10:"discounted";s:1:"N";}product_sess|a:12:{i:455;a:3:{s:9:"vendor_id";s:1:"1";s:13:"discount_info";a:3:{s:6:"amount";i:0;s:10:"is_percent";i:0;s:11:"create_time";i:1244452631;}s:8:"tax_rate";s:6:"0.0000";}i:450;a:3:{s:9:"vendor_id";s:1:"1";s:13:"discount_info";a:3:{s:6:"amount";i:0;s:10:"is_percent";i:0;s:11:"create_time";i:1244452631;}s:8:"tax_rate";s:6:"0.0000";}i:454;a:3:{s:9:"vendor_id";s:1:"1";s:13:"discount_info";a:3:{s:6:"amount";i:0;s:10:"is_percent";i:0;s:11:"create_time";i:1244452631;}s:8:"tax_rate";s:6:"0.0000";}i:456;a:3:{s:9:"vendor_id";s:1:"1";s:13:"discount_info";a:3:{s:6:"amount";i:0;s:10:"is_percent";i:0;s:11:"create_time";i:1244452631;}s:8:"tax_rate";s:6:"0.0000";}i:451;a:3:{s:9:"vendor_id";s:1:"1";s:13:"discount_info";a:3:{s:6:"amount";i:0;s:10:"is_percent";i:0;s:11:"create_time";i:1244452631;}s:8:"tax_rate";s:6:"0.0000";}i:453;a:3:{s:9:"vendor_id";s:1:"1";s:13:"discount_info";a:3:{s:6:"amount";i:0;s:10:"is_percent";i:0;s:11:"create_time";i:1244452631;}s:8:"tax_rate";s:6:"0.0000";}i:460;a:3:{s:9:"vendor_id";s:1:"1";s:13:"discount_info";a:3:{s:6:"amount";i:0;s:10:"is_percent";i:0;s:11:"create_time";i:1244452631;}s:8:"tax_rate";s:6:"0.0000";}i:458;a:3:{s:9:"vendor_id";s:1:"1";s:13:"discount_info";a:3:{s:6:"amount";i:0;s:10:"is_percent";i:0;s:11:"create_time";i:1244452631;}s:8:"tax_rate";s:6:"0.0000";}i:449;a:3:{s:9:"vendor_id";s:1:"1";s:13:"discount_info";a:3:{s:6:"amount";i:0;s:10:"is_percent";i:0;s:11:"create_time";i:1244452632;}s:8:"tax_rate";s:6:"0.0000";}i:452;a:4:{s:9:"vendor_id";s:1:"1";s:13:"discount_info";a:3:{s:6:"amount";i:0;s:10:"is_percent";i:0;s:11:"create_time";i:1244452632;}s:8:"tax_rate";s:6:"0.0000";s:7:"flypage";s:15:"flypage_usb.tpl";}i:459;a:4:{s:9:"vendor_id";s:1:"1";s:13:"discount_info";a:3:{s:6:"amount";i:0;s:10:"is_percent";i:0;s:11:"create_time";i:1244452667;}s:8:"tax_rate";s:6:"0.0000";s:7:"flypage";s:15:"flypage_usb.tpl";}i:457;a:4:{s:9:"vendor_id";s:1:"1";s:13:"discount_info";a:3:{s:6:"amount";i:0;s:10:"is_percent";i:0;s:11:"create_time";i:1244452632;}s:8:"tax_rate";s:6:"0.0000";s:7:"flypage";s:15:"flypage_usb.tpl";}}
    Ma question comment se fais le passage des paramètres:

    [quantity] [product_id] [parent_id] [category_id] [description]

    car je veux ajouter un paramètre en plus de la quantité! par exemple l'emballage ou les dimensions du produits pour donner plus de choix à l'user.


    Merci
    "le professionnel et le chercheur sont comme le fleuve et l'océan"

Discussions similaires

  1. [AC-2010] Access 2010 avec Joomla / Virtuemart
    Par Invité dans le forum Modélisation
    Réponses: 0
    Dernier message: 20/04/2011, 12h33
  2. site e-commerce avec joomla/virtuemart
    Par brudao dans le forum E-Commerce
    Réponses: 0
    Dernier message: 25/09/2009, 20h51
  3. Devis pour la refonte d'un site avec Joomla
    Par ntouhami dans le forum Devis
    Réponses: 12
    Dernier message: 26/02/2008, 21h55
  4. [Joomla!] Message d'erreur avec Joomla !
    Par lulll dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 12/04/2007, 15h24
  5. [Joomla!] [Débuter] Commet gèrer un site dynamique avec Joomla ?
    Par sonia5 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 01/04/2007, 13h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo