Jump to content

Chris2008

Members
  • Posts

    29
  • Joined

  • Last visited

Chris2008's Achievements

Newbie

Newbie (1/14)

0

Reputation

  1. Voici pour les infos de mon prestashop et voilà ce que donne mon code CART.PHP dans le repertoir Classes j'ai modifié les attributs par ceux créés dans l'administration de photoshop http://img199.imageshack.us/img199/5918/90740110.jpg Là beh c'est page blanche directement ! http://boutique.sol-payre.com/ j'ai du coup remis le fichier original Version 1.1.0.5 /** * Return cart products quantity * * @result integer Products quantity */ public function nbBouteilles() { if (!$this->id) return 0; $sql = "SELECT sum( cp.quantity ) as nb FROM ps_cart_product AS cp LEFT JOIN ps_product_attribute AS pa ON cp.id_product_attribute = pa.id_product_attribute LEFT JOIN ps_product_attribute_combination AS pac ON cp.id_product_attribute = pac.id_product_attribute WHERE (cp.id_cart = ".$this->id.") AND pac.id_attribute IN ( SELECT att.id_attribute FROM ps_attribute AS att LEFT JOIN ps_attribute_lang AS al ON att.id_attribute = al.id_attribute LEFT JOIN ps_attribute_group_lang AS agl ON att.id_attribute_group = agl.id_attribute_group WHERE al.name = 'x1 (1 bouteille)' AND agl.name = 'Quantite' )"; $row = Db::getInstance()->getRow($sql); return intval($row['nb']); } /** * Add a discount to the cart (NO controls except doubles)
  2. Salut Merci pour ta réponse mais j't'avouerai que ce n'est pas très clair pour moi j'ai modifié le code des fichiers indiqués mais erreur affiché http://img29.imageshack.us/img29/2271/63636461.jpg De plus je n'ai pas su trouvé où changer les attributs Par Combien, etc... Voilà le code source actuel (avec modifs de mes 2 fichiers) ORDER.PHP /* Check minimal account */ $orderTotal = $cart->getOrderTotal(); $orderTotalDefaultCurrency = Tools::convertPrice($cart->getOrderTotal(true, 1), Currency::getCurrency(intval(Configuration::get('PS_CURRENCY_DEFAULT')))); $minimalPurchase = floatval(Configuration::get('PS_PURCHASE_MINIMUM')); if ($orderTotalDefaultCurrency < $minimalPurchase) { $step = 0; $errors[] = Tools::displayError('A minimum purchase total of').' '.Tools::displayPrice($minimalPurchase, Currency::getCurrency(intval($cart->id_currency))). ' '.Tools::displayError('is required in order to validate your order'); } if (!$cookie->isLogged() AND in_array($step, array(1, 2, 3))) Tools::redirect('authentication.php?back=order.php?step='.$step); $nbBouteilles = $cart->nbBouteilles(); if ( ($nbBouteilles > 0) AND ($nbBouteilles %6 <>0) ) { $step = 0; $errors[] = Tools::displayError('The number of bottles you order must be multiple of 6. Number in cart : '.$nbBouteilles); } if ($cart->nbProducts()) { /* Manage discounts */ if ((Tools::isSubmit('submitDiscount') OR isset($_GET['submitDiscount'])) AND Tools::getValue('discount_name')) { $discountName = Tools::getValue('discount_name'); if (!Validate::isDiscountName($discountName)) $errors[] = Tools::displayError('voucher name not valid'); else { $discount = new Discount(intval(Discount::getIdByName($discountName))); if (is_object($discount) AND $discount->id) { if ($tmpError = $cart->checkDiscountValidity($discount, $cart->getDiscounts(), $cart->getOrderTotal(), $cart->getProducts(), true)) $errors[] = $tmpError; } else $errors[] = Tools::displayError('voucher name not valid'); if (!sizeof($errors)) { $cart->addDiscount(intval($discount->id)); Tools::redirect('order.php'); } else { $smarty->assign(array( 'errors' => $errors, 'discount_name' => Tools::safeOutput($discountName))); } } } elseif (isset($_GET['deleteDiscount']) AND Validate::isUnsignedId($_GET['deleteDiscount'])) { $cart->deleteDiscount(intval($_GET['deleteDiscount'])); Tools::redirect('order.php'); } CART.PHP //if cart.php is called by ajax if (Tools::getValue('ajax') == 'true') require_once(_PS_MODULE_DIR_.'/blockcart/blockcart-ajax.php'); else { if (sizeof($errors)) { require_once(dirname(__FILE__).'/header.php'); $smarty->assign('errors', $errors); $smarty->display(_PS_THEME_DIR_.'errors.tpl'); require_once(dirname(__FILE__).'/footer.php'); } else Tools::redirect('order.php?'.(isset($idProduct) ? 'ipa='.intval($idProduct) : '')); } public function nbBouteilles() { if (!$this->id) return 0; $sql = "SELECT sum( cp.quantity ) as nb FROM ps_cart_product AS cp LEFT JOIN ps_product_attribute AS pa ON cp.id_product_attribute = pa.id_product_attribute LEFT JOIN ps_product_attribute_combination AS pac ON cp.id_product_attribute = pac.id_product_attribute WHERE (cp.id_cart = ".$this->id.") AND pac.id_attribute IN ( SELECT att.id_attribute FROM ps_attribute AS att LEFT JOIN ps_attribute_lang AS al ON att.id_attribute = al.id_attribute LEFT JOIN ps_attribute_group_lang AS agl ON att.id_attribute_group = agl.id_attribute_group WHERE al.name = '1 bouteille' AND agl.name = 'parCombien' )"; $row = Db::getInstance()->getRow($sql); return intval($row['nb']); } ?> j'ai joint les 2 fichiers au cas ou je ne soit pas clair dans mon code merci order.php cart.php
  3. 2ie solution : plus complexe La solution précedente ne fonctionne que si tu vends uniquement des bouteilles. Les tire-bouchons, thermomètres et autre sont vendus à l'unité, les verres, ca se discute. Dans ce cas, tu mets ces autres produits dans des catégories différentes de tes bouteilles. Il faut alors rajouter une méthode à la class cart (classes/cart.php) qui parcourt tous les produits du panier et retourne la somme de ceux qui sont dans une catégorie de bouteilles. Dans order.php, remplacer le $nbProds = $cart->nbProducts(); par $nbProds = $cart->laNouvelleMethode(); Salut, Ca ne sera que des bouteilles pour le moment On ne peut donc pas vérifier si la quantité est multiple de 6 dans le panier ????
  4. Salut je lis ton problème, si tu ne proposes pas de panachage de bouteille dans un carton je peux t'expliquer comment j'ai fait si tu ne vends pas à l'unité pourquoi indiqué le prix d'une bouteille (à la limite de la législation car prix affiché prix payé) De plus lorsque tu ajoutes au panier depuis la liste des produits il m'ajoute 1 seul bouteille dans ton cas http://img32.imageshack.us/img32/4267/13635710.jpg jette un oeil et dis moi si ça peut t'intéresser http://boutique.sol-payre.com/ @+ Chris
  5. Bonjour à tous, Voilà exactement c'est bien du vin, et il y a la possibilité de panacher le contenu du carton si je vendais directement les cartons ça m'arrangerait mais je n'aurai pas la possibilité de panacher A moins de proposer des cartons deja panachés (en imposant le contenu et non pas en le composant) si ce cas s'avère possible comment faire pour vendre par carton sachant ?? voici l'url : http://boutique.sol-payre.com/ Merci pour vos réponses en espérant avancer car je vois que pas mal de personne ont ce souci
  6. Salut à tous, Est Il possible de vérifier lors de la validation de commande que les quantité soit un multiple de 6 ??? (car expédition uniquement par carton de 6) Comme par exemple un minimum d'achat possible, Prestashop renvoie une erreur à l'acheteur de type "01. Erreur vous devez acheter pour 60€ minimum" lorsque c'est paramétré dans les préférences de l'admin. Pensez vous que ceci est faisable ??, Merci d'avance pour vos réponses Chris2008
  7. Bonjour, non je n'ai encore rien résolu mon projet est du coup en stand by tu as bien compris mon problème, tu as des pistes ?? C'est aussi pour une boutique de vins ? Merci à toi @+
  8. Salut, je n'ai pas trouver de solution, j'ai changé d'hébergement voilà !
  9. Salut, Dans la partie administration tu vas dans l'onglet Préférences, puis Produits tu coches OUI à l'option "Afficher le prix hors-taxe sur la fiche produit" Le prix HT se rajoutera à ton prix TTC Sinon tu crée une nouvelle zone sans y appliquer de taxes il t'afficher mais attention ton prix HT de base va changer !
  10. Salut à tous, J'aimerais obtenir un sacré coup de main sur un minimum de quantités à commander Prestashop1.1 sur Dedibox Free URL : http://boutique.sol-payre.com/ Je m'explique : Boutique de vente en ligne de vins commande minimum de 12 bouteilles (soit 2 cartons) commande possible uniquement par carton de 6 donc 6, 12, 18, 24, 30, 36, etc..... et surtout la possibilité de panachage voulu par le domaine : - soit on commande par carton de 6 le même produit (jusque là ça va) - soit on peut commander 1 bouteille de rouge, 1 de rosé, ... tant que c 'est un multiple 6 donc si je commande : 1 carton du meme produit et 1 bouteille de rouge à coté ( ce qui me fait 7 produits), la commande passera mais ne sera ni un multiple de 6 ni le montant minimum pour commander (12 bouteilles soit 2 cartons) Comment restreindre les commandes à des multiples de 6 ??? Comment limiter à 12 bouteilles minimum pour les commandes PS : l'idéal serait de supprimer le panachage et par la meme occasion ne plus avoir une quantité de 1 dans la fiche produit.. mais si une possibilité existe, je suis preneur Merci d'avance pour votre aide Chris2008
  11. La solution se trouve ici http://www.prestashop.com/forums/viewthread/7923/rapports_de_bugs/bug_affichage_prix_ttc j'avais créer une nouvelle zone (FRANCE) et j'n'avais pas appliquer la taxe pour celle ci grace a ce post c'est résolu Merci Beaucoup
  12. Bonjour après plusieurs recherches approfondies dans le forum francophone je n'ai pas su trouver ma réponse Comment enlever l'image des catégories Merci d'avance
  13. Hi, So the best way is to create Attributs to have a list I'll see this way , can you give me your link to see please ? Thks D'autres idées ?
  14. Salut à tous Je développe actuellement une boutique en ligne pour un producteur de vins sachant qu'il y aura possibilité d'acheter soit par bouteille, soit par carton Quel techniques me conseillez vous ? de passer par les attributs (+1 Bt ou +1Ct) ? créer un bouton "Ajouter un carton" et "Ajouter une bouteille" ou autre chose j'aimerais surtout avoir votre point de vue Merci d'avance Chris
×
×
  • Create New...

Important Information

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