Jump to content

activ-developpement.net

Members
  • Posts

    15
  • Joined

  • Last visited

activ-developpement.net's Achievements

Newbie

Newbie (1/14)

1

Reputation

  1. Bonjour, c'est un bug du module tnt. Après expertise du module tnt et du dialogue effectué avec leur serveur, voici ce qui est déduit, le problème vient bien du module tnt, en clair le module ne gère pas les jours fériés!!!, Le problème est reproduit pour toutes les paniers dont le coût des expéditions n'est pas gratuit Voici le scénario technique pour bien comprendre ce qui se passe: La méthode getOrderShippingCost du module tnt est appelé, cette méthode calcul le pris de la livraison, or une erreur se produit dans celle-ci et le cout de la livraison est à 0. L'erreur produite est la suivante : Le module appel l'opération du webservice tnt "faisabilité", cette méthode permet de savoir si une livraison est possible selon différents paramètres et notamment la date de livraison. Or le calcul de la date de livraison ce weekend et Lundi est au 09/04/2012 or ce jour est férié, le webservice tnt répond logiquement que cette date est impossible. Oui tnt ne livre pas les jours fériés!!! $service = $tntWebService->faisabilite($date_exp, Configuration::get('TNT_CARRIER_SHIPPING_ZIPCODE'), $this->putCityInNormeTnt(Configuration::get('TNT_CARRIER_SHIPPING_CITY')), $info['postcode'], $this->putCityInNormeTnt($info['city']), 'INDIVIDUAL'); Cette méthode retournant false, le service tnt est supprimé des résultats : Classe : Carrier.php méthode : getCarriersForOrder // If price is false, then the carrier is unavailable (carrier module) if ($row['price'] === false) { unset($result[$k]); continue; } Pour contourner le problème, j'ai mis en dur la date de livraison au 10/04/2012 seulement pour la journée du 09/04/2012. $tntWebService = new TntWebService(); //ajout pour le Lundi de paque if(date("Y-m-d", strtotime("now"))=="2012-04-09"); { $date_exp =date("Y-m-d", strtotime("now + 1 day")); } Pour conclure, Il faut que ce module intègre la gestion des jours fériés sinon ce problème va être reproduit. Cordialement, Romain d'activ-developpement.net
  2. Bonjour à tous, Je viens de remarquer que plusieurs d'entre vous butait un petit peu sur l'astuce. Depuis prestashop 1.4.5 il est en effet plus propre de surchager la méthode avec des classes override. Après avoir effectué différent test de perf il est aussi préférable de passer par une méthode static( cela évite d'exécuter à chaque requête http,la requête sql). Sur prestashop 1.4.1 Dans la classe Product methode : getProductProperties($id_lang, $row) Après $row['attachments'] = ((!isset($row['cache_has_attachments']) OR $row['cache_has_attachments']) ? Product::getAttachmentsStatic((int)($id_lang), $row['id_product']) : array()); Ajoutez /* ajout pour les couleur dans la liste des produits */ $colors = array(); $attributesGroups = Db::getInstance()->ExecuteS(' SELECT pai.`id_image`, ag.`id_attribute_group`, ag.`is_color_group`, agl.`name` AS group_name, agl.`public_name` AS public_group_name, a.`id_attribute`, al.`name` AS attribute_name, a.`color` AS attribute_color, pa.`id_product_attribute`, pa.`quantity`, pa.`price`, pa.`ecotax`, pa.`weight`, pa.`default_on`, pa.`reference`, pa.`unit_price_impact`, pa.`minimal_quantity` FROM `ps_product_attribute` pa LEFT JOIN `ps_product_attribute_combination` pac ON pac.`id_product_attribute` = pa.`id_product_attribute` LEFT JOIN `ps_product_attribute_image` pai ON pai.`id_product_attribute` = pa.`id_product_attribute` LEFT JOIN `ps_attribute` a ON a.`id_attribute` = pac.`id_attribute` LEFT JOIN `ps_attribute_group` ag ON ag.`id_attribute_group` = a.`id_attribute_group` LEFT JOIN `ps_attribute_lang` al ON a.`id_attribute` = al.`id_attribute` LEFT JOIN `ps_attribute_group_lang` agl ON ag.`id_attribute_group` = agl.`id_attribute_group` WHERE pa.`id_product` = '.(int)$row['id_product'].' AND al.`id_lang` = '.(int)($id_lang).' AND agl.`id_lang` = '.(int)($id_lang).' AND ag.`is_color_group` = 1 GROUP BY attribute_color ORDER BY agl.`public_name`, al.`name`'); if (Db::getInstance()->numRows()) { foreach ($attributesGroups AS $k => $rowcolo) { /* Color management */ if (isset($rowcolo['attribute_color']) AND $rowcolo['attribute_color'] ) { $colors[$rowcolo['id_attribute']]['value'] = $rowcolo['attribute_color']; $colors[$rowcolo['id_attribute']]['name'] = $rowcolo['attribute_name']; $colors[$rowcolo['id_attribute']]['id_image'] =(($rowcolo['id_image'] != NULL) ? intval($rowcolo['id_image']) : -1); } } } $row['colors'] = $colors; Comme indiqué plus haut il est préférable de surcharger la méthode avec "override" en créant une nouvelle classe dans le répertoire. Astuce mis en place sur le site www.catbibi.com.
  3. Bonjour, Utilisation de memcached problème administration Order. A plusieurs reprises je me retrouve contraint à effacer le cache des requêtes sql via le monitor memcache car notre client ne visualise pas certaines modifications effectuées dans le backoffice sur les commandes. Le problème se reproduit de telle facon: 1 - Dans la liste des commandes 2 - Modifier une commande 3 - Spécifier un numéro de suivi => La page n'affiche pas le numéro de suivi alors que celui-ci est bien présent en base. Le problème est contraignant car il modifie à plusieurs reprises le numéro de suivi car il ne voit pas les modifications => donc notification d'un mail au client à chaque modif. Pour contourner le problème je dois faire un flush de la mémoire. D'avance merci pour votre analyse. Cordialement, Romain
  4. Bonjour à tous, Petite main courante qui servira je suppose : J'ai trouvé un petit bug bloquant sur l'import, la variable this.token n'est pas initialisée dans la requete ajax suivante "data: 'ajax=true&token;='+this.token+'&displaySpecificOptions;&moduleName;='+moduleName+'&server;='+ server+'&user;='+user+'&password;='+password+'&database;='+database+'&prefix;='+prefix" du fichier shopimporter.js ligne 384. Ainsi les options spécifiques ne sont pas affichées ce qui pose des problèmes dans l'import "erreur iso code". Cordialement, Romain.
  5. Bonjour, J'ai remarqué que plusieurs membres de la communauté souhaitaient afficher la liste des couleurs disponibles par produit dans la page catégorie, je vous propose donc une petite astuce pour la mise en œuvre de cette fonctionnalité dans prestashop 1.4. Cette fonctionnalité permet aussi au passage de la souris sur la couleur, d'afficher l'image associée. Modifier le fichier controllers/CategoryController.php En cas de mise à jour de prestashop vous perdrez la modification, il faudra donc la rajouter à la main. Après la ligne $cat_products = $this->category->getProducts((int)(self::$cookie->id_lang), (int)($this->p), (int)($this->n), $this->orderBy, $this->orderWay); Ajouter : /* @TODO VERU CORE PRESTASHOP */ foreach ($cat_products as $key => $cat_product) { $product = new Product(intval($cat_product['id_product']), true, intval(self::$cookie->id_lang)); $colors = array(); $attributesGroups = Db::getInstance()->ExecuteS(' SELECT pai.`id_image`, ag.`id_attribute_group`, ag.`is_color_group`, agl.`name` AS group_name, agl.`public_name` AS public_group_name, a.`id_attribute`, al.`name` AS attribute_name, a.`color` AS attribute_color, pa.`id_product_attribute`, pa.`quantity`, pa.`price`, pa.`ecotax`, pa.`weight`, pa.`default_on`, pa.`reference`, pa.`unit_price_impact`, pa.`minimal_quantity` FROM `ps_product_attribute` pa LEFT JOIN `ps_product_attribute_combination` pac ON pac.`id_product_attribute` = pa.`id_product_attribute` LEFT JOIN `ps_product_attribute_image` pai ON pai.`id_product_attribute` = pa.`id_product_attribute` LEFT JOIN `ps_attribute` a ON a.`id_attribute` = pac.`id_attribute` LEFT JOIN `ps_attribute_group` ag ON ag.`id_attribute_group` = a.`id_attribute_group` LEFT JOIN `ps_attribute_lang` al ON a.`id_attribute` = al.`id_attribute` LEFT JOIN `ps_attribute_group_lang` agl ON ag.`id_attribute_group` = agl.`id_attribute_group` WHERE pa.`id_product` = '.(int)($product->id).' AND al.`id_lang` = '.self::$cookie->id_lang.' AND agl.`id_lang` = '.self::$cookie->id_lang.' AND ag.`is_color_group` = 1 GROUP BY attribute_color ORDER BY agl.`public_name`, al.`name`'); if (Db::getInstance()->numRows()) { foreach ($attributesGroups AS $k => $row) { /* Color management */ if (isset($row['attribute_color']) AND $row['attribute_color'] AND $row['id_attribute_group'] == $product->id_color_default) { $colors[$row['id_attribute']]['value'] = $row['attribute_color']; $colors[$row['id_attribute']]['name'] = $row['attribute_name']; $colors[$row['id_attribute']]['id_image'] =(($row['id_image'] != NULL) ? intval($row['id_image']) : -1); } } } $cat_products[$key]['colors'] = $colors; } modifier le fichier product-list.tpl <!-- Affiche la liste des coloris disponibles pour le produit--> {if !empty($product.colors)} {foreach from=$product.colors key=id_attribute item=color} {/foreach} {/if} pour le onMouseover toujours dans le fichier product-list ajouter l'attribut id à l'image du produit:
  6. Bonjour, Après installation de la version ALPHA 1.4 ALPHA3 j'ai remarqué que chaque classe Métier était suffixé de "Core", Cependant je dois avouer ne pas trop comprendre ce choix de modélisation. Auriez vous une explication? Un exemple de problématique que nous pouvons rencontrer c'est l'utilisation d'EDI pour le développement tel Eclipse qui se perd dans l'autocomplétion car la class Core en tant que telle n'existe pas (ceci n'est qu'un exemple).
  7. En effet c'est une super nouvelle, la géolocalisation, le workflow du paiement simplifié en une seul page est un plus indéniable qui me pousse à migrer vers cette version. Merci à la team prestashop.
  8. Bonjour, il n'y a pas d'impact sur les modules de paiements prestashop, nous n'impactons pas directement les modules de paiement, nous rajoutons juste une brique pour gérer un porte monnaire virtuel, si tu trouves un module de "micro paiement" tu peux l'installer en plus. Le but est de rester vraiment transverse. Question curiosité : Que veux tu faire avec ce micro paiement, je ne vois pas l'intéret avec un porte monnaie virtuel?
  9. Pour le micro-paiement non nous y avons pas penser, tout simplement car l'utilité n'était pas là. Le but est de gérer l'alimentation du porte monnaie comme un produit, ainsi comme évoqué, ceci nous permet de respecter toute la chaine prestashop(facture, notification, gestion des taxs). Pour l'alimentation j'ai fait une impression écran de l'alimentation d'un compte(en fin rien de plus basique). Avant que nous publions ce genre de module il faudrait bien compter 3 semaines(dev,test,industrialisation).
  10. Bonjour, nous sommes en cours de développement de cette fonctionnalité mais vu notre urgence et l'impact d'une telle fonctionnalitée sur le core prestashop il n'est pas évident d'externaliser tout ca dans un module, la problèmatique étant que c'est le client qui fixe le prix du produit. Le principe est le suivant nous créons un produit "Alimenter compte" Sur la page alimenter mon porte monnaie nous insérons dans l'objet cart le produit en dur L'utilisateur saisi le montant qu'il souhaite créditer puis valide Le prix du produit est mis dans le cookie exemple cookie->price_porte_monaie Nous affichons le hookpayment avec les différents mode de paiement Terminé ca suit son cours. Bon après il faut faire en sorte que Prestashop ne prenne pas le prix du produit en base mais celui positionné dans le cookie Avantage : -> On garde les fonctionnalités de base Prestashop avec la gestion des factures des ordres, tax etc... -> Les modules de paiements ne sont pas impactés ainsi aucun impact sur le code -> Éviter du développement supplémentaire Inconvénient : -> Nécessite la modification du code Prestashop(Product,PaymentModule,Cart) ainsi il faut répercuter ces modifications à chaque mise à jour de prestashop. Nous verrons par la suite à faire plus propre, pro et ainsi l'ouvrir plus facilement à la communauté.
  11. Bonjour, je suis un peu dans le même besoin et je n'ai pas trouvé de module "monnaie virtuel" sous prestastore.
  12. Bonjour, dans le cadre d'un projet de vente de produits dématérialisés, je suis confronté à une problématique que j'aimerai bien gérer proprement. comment gérer un produit dont le prix est fixé par le client Je vous explique Chaque client à un porte monnaie, ce porte monnaie sert par la suite à acheter les produits dématérialisés. Pour alimenter ce porte monnaie, le client passe par une page "Alimenter porte monnaie" il y indique la méthode de paiement et le montant qu'il souhaite créditer. Je voudrais que cette alimentation soit réaliser par l'intermédiaire d'un produit,voilà ce que je pensais faire. - je créer un produit "Achat Fiche" - avant de passer l'ordre "le client alimente son compte", on affecte le prix du produit "achat fiche" dynamiquement "product->setprice" - on alimente le porte monnaie du client dés que la transaction est finalisée banque OK ou chèque reçu ou virement OK. Ainsi ceci me permet de bénéficier de la gestion des factures, des commandes, des stats de prestashop ainsi gain temps en dvp, je souhaite vraiment avoir un avis extérieur, quels sont les risques, y a t-il une facon plus simple? existe-t-il des modules prestashop permettant de gérer un porte monnaie client? Merci.
×
×
  • Create New...

Important Information

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