Jump to content

Manuel Corbet

Members
  • Posts

    71
  • Joined

  • Last visited

  • Days Won

    1

Manuel Corbet last won the day on January 23 2017

Manuel Corbet had the most liked content!

1 Follower

About Manuel Corbet

  • Birthday 06/29/1988

Contact Methods

Profile Information

  • Location
    Calais
  • Interests
    Web, e-commerce
  • Activity
    Web development agency

Recent Profile Visitors

2,934,758 profile views

Manuel Corbet's Achievements

Newbie

Newbie (1/14)

8

Reputation

  1. Bonjour, quel est le contenu de votre fichier .htaccess (à la racine de votre site) ? Cordialement, Ce qui me parait bizare c'est que peut importe la page chargée l'URL reste rabaisrabais.ca
  2. Bonjour, un module comme celui-ci ne conviendrait pas à votre client ? http://addons.prestashop.com/fr/20343-configurateur-avance-de-produit-sur-mesure-par-etape.html
  3. Bonjour, J'ai récemment quitté l'agence dont j'étais le co-gérant et développeur spécialisé dans Prestashop (web74). Web74 est une petite agence (actuellement 1 développeur et 1 web designer). Je travail maintenant en indépendant. Voici quelques-unes de mes références. atelier-nicolas-blanc.fr - Prestashop 1.5.x : bijouterie en ligne monoutillage.com - Prestashop 1.5.x : boutique d'outillage automobile dermoplant.com - Prestashop 1.5.x : création et vente de cosmétiques BIO en ligne Pour ces 3 références nous avions réalisé et intégré la charte graphique. Et pour les deux premières apportés de nombreuses modifications à Prestashop pour répondre aux besoins. Les modifications à apporter à Prestashop pour votre boutique me semblent tout à fait dans mes compétences. Le délai du 15 mars 2014 est selon moi tout à fait correcte pour proposer une solution. J'ai actuellement beaucoup de temps libre et cela pour un horizon d'au moins 6 mois. Concernant la charte graphique j'ai quelques compétences en design et peux proposer des maquettes des principales pages du site pour une validation par vos soins. Mais je peux aussi faire appel au designer de Web74 pour lui demander une prestation. Si ma candidature vous intéresse je pourrais vous proposer un devis pour le début de la semaine prochaine. N'hésitez pas à me contacter si vous avez besoin de précisions. Bon dimanche, Cordialement
  4. Bonsoir, cela ne semble pas être grand chose, je veux dire qu'une petite modification de la feuille de style devrait suffire. Merci de me donner plus d'informations en MP (adresse du site). Cordialement,
  5. Bonjour, ancien gérant d'une agence Web, je suis maintenant en Freelance, et me ferais un plaisir de répondre à votre demande. Contactez moi en message privé pour plus de détails et si votre offre tient toujours. Voici-ci quelques unes de mes références (vous pourrez accéder aux sites en cherchant sur Google) : Atelier Nicolas Blanc, Monoutillage, Jvsecuritall Bien cordialement,
  6. Bonjour, ancien gérant d'une agence Web, je suis maintenant en freelance, et me ferais un plaisir de répondre à votre demande. Contactez moi en message privé pour plus de détails et si votre offre tient toujours. Voici-ci quelques unes de mes références (vous pourrez accéder aux sites en cherchant sur Google) : Atelier Nicolas Blanc, Monoutillage, Jvsecuritall Bien cordialement,
  7. Up ! je juge cette fonctionnalité importante. Par exemple pour les tarifs Socolissimo Belgique au delà de 30 KG c'est un prix par kg supplémentaire qui est pris en compte. Merci.
  8. En tout cas si ce n'est pas possible je pense vraiment que ça devrait l'être en natif. Ajouter un champs : prix par kilo supplémentaire / prix par tranche de 100€ supplémentaire dans la configuration des prix par zone. Certains transporteurs communiquent leurs tarifs des cette manière, il faudrait donc que Presta s'adapte au moins au transporteurs le plus importants.
  9. Bonjour, est-il possible ou connaissez-vous un module qui permet au lieu de désactiver le transporteur ou de prendre la tranche plus grande en compte le moyen de définir hors tranche de poids un prix fixe par kilo supplémentaire. Ex : si mes tranches vont de 0 à 15 Kg, si un client me commande pour 17 kilos le frais de ports serait de prix pour 15 kg + 2 fois prix du kilo supplémentaire et cela pour la zone en question. Merci Cordialement,
  10. Sinon comme dit cockpitinferno, laurent65200 tu as juste à copier le contenu de ma fonction checkValidity et le coller dans la tienne.
  11. Bonjour tout le monde, pour info le client pour qui j'avais effectué cette modification m'a demandé de laissé la possibilité de faire les bons de réduction sur les promos si il s'agit d'un bon proposant une réduction par "montant". En gros d'interdire seulement les bons en pourcentage du prix pour les produits soldés. Voici donc la nouvelle version avec ce feature en plus : public function checkValidity(Context $context, $alreadyInCart = false, $display_error = true) { if (!CartRule::isFeatureActive()) return false; if (!$this->active) return (!$display_error) ? false : Tools::displayError('This voucher is disabled'); if (!$this->quantity) return (!$display_error) ? false : Tools::displayError('This voucher has already been used'); if (strtotime($this->date_from) > time()) return (!$display_error) ? false : Tools::displayError('This voucher is not valid yet'); if (strtotime($this->date_to) < time()) return (!$display_error) ? false : Tools::displayError('This voucher has expired'); $product_on_sale = false; $amount = false; if($this->reduction_percent === '0.00' && $this->reduction_amount !== '0.00') $amount = true; if(!$amount){ $products = $context->cart->getProducts(); foreach($products as $product){ if(!empty($product["reduction_applies"]) && $product["reduction_applies"] > 0) $product_on_sale = true; } if ($product_on_sale) return (!$display_error) ? false : Tools::displayError('This voucher isn\'t cumulative on products with reduction or marked as on sale'); } if ($context->cart->id_customer) { $quantityUsed = Db::getInstance()->getValue(' SELECT count(*) FROM '._DB_PREFIX_.'orders o LEFT JOIN '._DB_PREFIX_.'order_cart_rule od ON o.id_order = od.id_order WHERE o.id_customer = '.$context->cart->id_customer.' AND od.id_cart_rule = '.(int)$this->id.' AND '.(int)Configuration::get('PS_OS_ERROR').' != ( SELECT oh.id_order_state FROM '._DB_PREFIX_.'order_history oh WHERE oh.id_order = o.id_order ORDER BY oh.date_add DESC LIMIT 1 )'); if ($quantityUsed + 1 > $this->quantity_per_user) return (!$display_error) ? false : Tools::displayError('You cannot use this voucher anymore (usage limit reached)'); } // Get an intersection of the customer groups and the cart rule groups (if the customer is not logged in, the default group is 1) if ($this->group_restriction) { $id_cart_rule = (int)Db::getInstance()->getValue(' SELECT crg.id_cart_rule FROM '._DB_PREFIX_.'cart_rule_group crg WHERE crg.id_cart_rule = '.(int)$this->id.' AND crg.id_group '.($context->cart->id_customer ? 'IN (SELECT cg.id_group FROM '._DB_PREFIX_.'customer_group cg WHERE cg.id_customer = '.(int)$context->cart->id_customer.')' : '= 1')); if (!$id_cart_rule) return (!$display_error) ? false : Tools::displayError('You cannot use this voucher'); } // Check if the customer delivery address is usable with the cart rule if ($this->country_restriction) { if (!$context->cart->id_address_delivery) return (!$display_error) ? false : Tools::displayError('You must choose a delivery address before applying this voucher to your order'); $id_cart_rule = (int)Db::getInstance()->getValue(' SELECT crc.id_cart_rule FROM '._DB_PREFIX_.'cart_rule_country crc WHERE crc.id_cart_rule = '.(int)$this->id.' AND crc.id_country = (SELECT a.id_country FROM '._DB_PREFIX_.'address a WHERE a.id_address = '.(int)$context->cart->id_address_delivery.' LIMIT 1)'); if (!$id_cart_rule) return (!$display_error) ? false : Tools::displayError('You cannot use this voucher in your country of delivery'); } // Check if the carrier chosen by the customer is usable with the cart rule if ($this->carrier_restriction) { if (!$context->cart->id_carrier) return (!$display_error) ? false : Tools::displayError('You must choose a carrier before applying this voucher to your order'); $id_cart_rule = (int)Db::getInstance()->getValue(' SELECT crc.id_cart_rule FROM '._DB_PREFIX_.'cart_rule_carrier crc INNER JOIN '._DB_PREFIX_.'carrier c ON (c.id_reference = crc.id_carrier AND c.deleted = 0) WHERE crc.id_cart_rule = '.(int)$this->id.' AND c.id_carrier = '.(int)$context->cart->id_carrier); if (!$id_cart_rule) return (!$display_error) ? false : Tools::displayError('You cannot use this voucher with this carrier'); } // Check if the cart rules appliy to the shop browsed by the customer if ($this->shop_restriction && $context->shop->id && Shop::isFeatureActive()) { $id_cart_rule = (int)Db::getInstance()->getValue(' SELECT crs.id_cart_rule FROM '._DB_PREFIX_.'cart_rule_shop crs WHERE crs.id_cart_rule = '.(int)$this->id.' AND crs.id_shop = '.(int)$context->shop->id); if (!$id_cart_rule) return (!$display_error) ? false : Tools::displayError('You cannot use this voucher'); } // Check if the products chosen by the customer are usable with the cart rule if ($this->product_restriction) { $r = $this->checkProductRestrictions($context, false, $display_error); if ($r !== false && $display_error) return $r; elseif (!$r && !$display_error) return false; } // Check if the cart rule is only usable by a specific customer, and if the current customer is the right one if ($this->id_customer && $context->cart->id_customer != $this->id_customer) { if (!Context::getContext()->customer->isLogged()) return (!$display_error) ? false : (Tools::displayError('You cannot use this voucher').' - '.Tools::displayError('Please log in')); return (!$display_error) ? false : Tools::displayError('You cannot use this voucher'); } if ($this->minimum_amount) { // Minimum amount is converted to the default currency $minimum_amount = $this->minimum_amount; if ($this->minimum_amount_currency != Configuration::get('PS_CURRENCY_DEFAULT')) { $minimum_amount_currency = new Currency($this->minimum_amount_currency); if ($this->minimum_amount == 0 || $minimum_amount_currency->conversion_rate == 0) $minimum_amount = 0; else $minimum_amount = $this->minimum_amount / $minimum_amount_currency->conversion_rate; } $cartTotal = $context->cart->getOrderTotal($this->minimum_amount_tax, Cart::ONLY_PRODUCTS); if ($this->minimum_amount_shipping) $cartTotal += $context->cart->getOrderTotal($this->minimum_amount_tax, Cart::ONLY_SHIPPING); // If a product is given for free in this rule and already in the cart, the price is subtracted if ($this->gift_product && $alreadyInCart) { $query = new DbQuery(); $query->select('id_product'); $query->from('cart_product'); $query->where('id_product = '.(int)$this->gift_product); $query->where('id_cart = '.(int)$context->cart->id); if ((int)$this->gift_product_attribute) $query->where('id_product_attribute = '.(int)$this->gift_product_attribute); if (Db::getInstance()->getValue($query)) { $ref = false; $product_price = Product::getPriceStatic( $this->gift_product, $this->minimum_amount_tax, $this->gift_product_attribute, null, null, false, true, 1, null, $context->cart->id_customer ? $context->cart->id_customer : null, $context->cart->id, (int)$context->cart->{Configuration::get('PS_TAX_ADDRESS_TYPE')} ? (int)$context->cart->{Configuration::get('PS_TAX_ADDRESS_TYPE')} : null, $ref, true, true, $context, true ); $cartTotal -= $product_price; } } if ($cartTotal < $minimum_amount) return (!$display_error) ? false : Tools::displayError('You have not reached the minimum amount required to use this voucher'); } // Check if the voucher is already in the cart of if a non compatible voucher is in the cart // Important note: this MUST be the last check, because if the tested cart rule has priority over a non combinable one in the cart, we will switch them $otherCartRules = $context->cart->getCartRules(); if (count($otherCartRules)) foreach ($otherCartRules as $otherCartRule) { if ($otherCartRule['id_cart_rule'] == $this->id && !$alreadyInCart) return (!$display_error) ? false : Tools::displayError('This voucher is already in your cart'); if ($this->cart_rule_restriction && $otherCartRule['cart_rule_restriction'] && $otherCartRule['id_cart_rule'] != $this->id) { $combinable = Db::getInstance()->getValue(' SELECT id_cart_rule_1 FROM '._DB_PREFIX_.'cart_rule_combination WHERE (id_cart_rule_1 = '.(int)$this->id.' AND id_cart_rule_2 = '.(int)$otherCartRule['id_cart_rule'].') OR (id_cart_rule_2 = '.(int)$this->id.' AND id_cart_rule_1 = '.(int)$otherCartRule['id_cart_rule'].')'); if (!$combinable) { $cart_rule = new CartRule((int)$otherCartRule['id_cart_rule'], $context->cart->id_lang); // The cart rules are not combinable and the cart rule currently in the cart has priority over the one tested if ($cart_rule->priority <= $this->priority) return (!$display_error) ? false : Tools::displayError('This voucher is not combinable with an other voucher already in your cart:').' '.$cart_rule->name; // But if the cart rule that is tested has priority over the one in the cart, we remove the one in the cart and keep this new one else $context->cart->removeCartRule($cart_rule->id); } } } if (!$display_error) return true; }
  12. Bonjour, aucun problème ça fait toujours plaisir de pouvoir aider la communauté !! Surtout qu'en on voit tout le monde essayer de vendre ses modules alors qu'il s'agit d'une petite modification à faire ... Bizarre que ça ne fonctionne pas en Override... Peut être les cache il y a un fichier cache/classe_index.php qu'il faut supprimer pour prendre en compte les classes de l'override au moment de l'ajout d'une nouvelle (pas la peine lorsque l'on modifie déjà une classe en Override). Ça pourrait être aussi un soucis avec l'entête de votre fichier override/classes/CartRule.php il faut bien que ce soit dans ce cas : class CartRule extends CartRuleCore et non : class CartRuleCore extends ObjectModel Mais je pense plutôt qu'il s'agit du cache/classe_index.php
×
×
  • Create New...