Jump to content

erouvier29

Members
  • Posts

    483
  • Joined

  • Last visited

  • Days Won

    1

erouvier29 last won the day on September 24 2017

erouvier29 had the most liked content!

2 Followers

Contact Methods

Profile Information

  • Location
    Brest, France
  • Activity
    Developer

Recent Profile Visitors

885 profile views

erouvier29's Achievements

  1. Bonjour, Je reproduis le même problème. En cours d'investigation pour proposer une solution. Il y a d'autres problèmes avec les frais de port offerts, en particulier le cumul de 2 règles panier déduit 2 fois les frais de port...
  2. Si l'adresse de livraison s'affiche avec id_address_delivery, celle de facturation s'affichera avec id_address_invoice. Il se peut néanmoins que id_address_invoice reste à 0, auquel cas cela veut dire que facturation = livraison
  3. Au moins le texte "La livraison aura lieu à" s'affiche-t-il ? En remettant {debug} au début de my-account.tpl, quels sont les contenus de $addresses et $cart ?
  4. Page blanche = erreur PHP a priori, donc non, ce n'est pas le bon code Il ne faut pas ajouter tout le code de AddressesController, mais modifier uniquement la fonction initContent dans MyAccountController en s'inspirant de ce qui est fait dans l'autre Code original PS 1.6.1.23: public function initContent() { parent::initContent(); $has_address = $this->context->customer->getAddresses($this->context->language->id); $this->context->smarty->assign(array( 'has_customer_an_address' => empty($has_address), 'voucherAllowed' => (int)CartRule::isFeatureActive(), 'returnAllowed' => (int)Configuration::get('PS_ORDER_RETURN') )); $this->context->smarty->assign('HOOK_CUSTOMER_ACCOUNT', Hook::exec('displayCustomerAccount')); $this->setTemplate(_PS_THEME_DIR_.'my-account.tpl'); } Code modifié: public function initContent() { parent::initContent(); $has_address = $this->context->customer->getAddresses($this->context->language->id); // Récupération des adresses du client $addresses = $this->context->customer->getAddresses($this->context->language->id); $this->context->smarty->assign(array( 'has_customer_an_address' => empty($has_address), 'voucherAllowed' => (int)CartRule::isFeatureActive(), 'returnAllowed' => (int)Configuration::get('PS_ORDER_RETURN'), // Passage des adresses au template 'addresses' => $addresses, )); $this->context->smarty->assign('HOOK_CUSTOMER_ACCOUNT', Hook::exec('displayCustomerAccount')); $this->setTemplate(_PS_THEME_DIR_.'my-account.tpl'); }
  5. Modifiez controllers/front/MyAccountController.php de façon à assigner la variable smarty $addresses, comme cela est fait dans controllers/front/AddressesController.php (fonctions initContent())
  6. Ajoutez temporairement {debug} au début de votre tpl, et vérifiez le contenu de $addresses et $cart
  7. Le fichier themes/core.js est chargé 2 fois par la page (1 première fois dans <head>, puis dans <body> après <main>). Donc les évènements sont traités en double. => Vérifier votre thème
  8. Je regardais les versions 1.6. En 1.7 il y a effectivement moins de références à group name. Je pense que votre modif est ok. Cela fonctionne-t-il?
  9. Pour utiliser le nom public dans l'url: Dans le fichier classes/Product.php, fonction getAttributesInformationsByProduct, remplacez "agl.`name`" par "agl.`public_name`" (3 fois) Pour utiliser le nom dans la fiche produit: Dans le fichier controllers/front/ProductController.php, fonction assignAttributesGroups, remplacez "'name' => $row['public_group_name']," par "'name' => $row['group_name'],"
  10. Oops, c'est de ma faute! il manquait un /100: unit_price = unit_price*(1 - discountPercentage/100);
  11. Il y a deux erreurs dans product.js du thème par défaut: Les taxes sont appliquées au prix unitaire même si l'affichage est HT La réduction éventuelle n'est pas appliquée. Cf. PR https://github.com/PrestaShop/PrestaShop/pull/8262 Vous pouvez adapter le product.js de votre thème comme ci-dessus.
  12. La même solution ne résout-elle pas le même problème? Si vous avez des règles qui imposent que les adresses fassent obligatoirement mention d'une société et d'un numéro de TVA, vous devez soit permettre de les saisir au moment de la création d'un entrepôt (solution 1) soit les fixer par code (solution 2). Il s'agit des propriétés company et vat_number. Pour la solution 2, modifiez la fonction updateAddress dans controllers/admin/AdminWarehousesController.php à partir de la ligne 589 (version 1.6.1.X récente) protected function updateAddress() { /** @var AddressCore $address */ $address = new Address(); if (Tools::isSubmit('id_address') && (int)Tools::getValue('id_address') > 0) { $address = new Address((int)Tools::getValue('id_address')); } $address->alias = Tools::getValue('reference', null); $address->lastname = 'warehouse'; // skip problem with numeric characters $address->firstname = 'warehouse'; // in warehouse name $address->address1 = Tools::getValue('address', null); $address->address2 = Tools::getValue('address2', null); $address->postcode = Tools::getValue('postcode', null); $address->phone = Tools::getValue('phone', null); $address->id_country = Tools::getValue('id_country', null); $address->id_state = Tools::getValue('id_state', null); $address->city = Tools::getValue('city', null); // AJOUTEZ LES 2 LIGNES $address->company = 'Mon entreprise'; $address->vat_number = 'MON-NUM-TVA'; Ça devrait suffire...
  13. Yes, curiously there is a condition that makes carrier unvailable only in case of a unique package. You can change that behavior within Cart.php. Find the following lines (starting 2095 in the latest 1.6.1.X versions): // Foreach packages, get the carriers with best price, best position and best grade foreach ($packages as $id_package => $package) { // No carriers available if (count($packages) == 1 && count($package['carrier_list']) == 1 && current($package['carrier_list']) == 0) { $cache[$this->id] = array(); return $cache[$this->id]; } And remove or comment out the "1 package condition": // Foreach packages, get the carriers with best price, best position and best grade foreach ($packages as $id_package => $package) { // No carriers available if (/*count($packages) == 1 &&*/ count($package['carrier_list']) == 1 && current($package['carrier_list']) == 0) { $cache[$this->id] = array(); return $cache[$this->id]; } Next step is to explain clearly to the customer why the order cannot be placed...
×
×
  • Create New...