elode Posted May 4, 2009 Share Posted May 4, 2009 Bonjour,J'installe actuellement une boutique web pour une petite librairie.Je me sers du champ "fabricant" pour entrer le nom de l'auteur; et du champ "fournisseur" pour entrer le nom de l'éditeur.C'est pratique… ça permet aux clients d'avoir un menu déroulant classé alphabétiquement sur les auteurs et les éditeurs.Mais… dans le modèle de base, les champs "fabricant" et "fournisseur" ne sont pas repris dans la fiche produit.Comment faire pour les y inclure? Quel code dois-je insérer dans mon template?Merci d'avance pour vos retours,elode Link to comment Share on other sites More sharing options...
elode Posted May 5, 2009 Author Share Posted May 5, 2009 Un petit peu d'aide serait la bienvenue… Link to comment Share on other sites More sharing options...
elode Posted May 14, 2009 Author Share Posted May 14, 2009 Bon… j'en suis toujours au même point.Personne ne peut m'aiguiller? Link to comment Share on other sites More sharing options...
Rodolphe Posted May 14, 2009 Share Posted May 14, 2009 Les identifiants sont bien dans la requête de base sur la class product donc ça devrait le faire.Rodolphe Link to comment Share on other sites More sharing options...
Rodolphe Posted May 14, 2009 Share Posted May 14, 2009 C'est encore plus simple que je pensais, toutes les données étant déjà sélectionnées.Tu peux utiliser {$product->manufacturer_name} et {$product->supplier_name} directement sur le template product.tpl .Rodolphe Link to comment Share on other sites More sharing options...
elode Posted May 14, 2009 Author Share Posted May 14, 2009 Merci beaucoup, ça marche!Mais… J'essaye de mettre les mêmes champs, avec le même code dans la fichier product_list.tpl, pour avoir l'auteur et l'éditeur également dans la liste de produits, et ça ne marche pas… le contenu des champs n'apparaît pas. pourquoi?Une idée?Merci encore pour l'aide Link to comment Share on other sites More sharing options...
Rodolphe Posted May 14, 2009 Share Posted May 14, 2009 Pour le premier (avec une petite variante il est vrai) : {$product.manufacturer_name} .Par contre le second n'est effectivement pas pris en compte, je vais regarder ça.Rodolphe Link to comment Share on other sites More sharing options...
Rodolphe Posted May 14, 2009 Share Posted May 14, 2009 J'aurais pu répondre avant mais le site semble avoir quelques soucis !Pour l'autre donnée c'est un peu plus embêtant car il faut modifier la (ou les, selon ce que tu veux) requêtes concernées. Par exemple une requête pour l'affichage quand on sélectionne une catégorie, une autre pour les nouveaux produits, etc.Ce n'est pas compliqué mais ça peut te poser souci ensuite car du coup les mises à jour ne pourront plus être effectuées automatiquement sur les fichiers concernés. Quand il s'agit du thème ce n'est pas très grave, pour le reste c'est gênant.À toi de voir ce dont tu as besoin, tu peux aussi me contacter directement.Rodolphe Link to comment Share on other sites More sharing options...
elode Posted May 15, 2009 Author Share Posted May 15, 2009 Merci,C'est très gentil à toi.Je crois que dans un premier temps, je vais me contenter de mettre le champ fabriquant dans la liste. C'est quand même le plus important.Je te remercie beaucoup pour ton aide, c'était vraiment le dernier obstacle important pour adapter prestashop à la librairie. Maintenant, je vais pouvoir penser à la mettre en production.Merci encore Link to comment Share on other sites More sharing options...
Rodolphe Posted May 15, 2009 Share Posted May 15, 2009 Ce n'est rien et chercher des réponses aux questions des autres me permet de progresser rapidement afin de pouvoir proposer la solution Prestashop à certains de mes clients d'ici peu ;-) En ajoutant les requêtes il faudrait aussi ajouter éventuellement des critères de tri (par éditeur, par auteur). Une libraire qui utilise OSC m'avait demandé par exemple de trier par défaut par auteur et non par titre. Et pas mal d'autres choses.Rodolphe Link to comment Share on other sites More sharing options...
jordy007 Posted November 24, 2009 Share Posted November 24, 2009 Pour le premier (avec une petite variante il est vrai) : {$product.manufacturer_name} .Par contre le second n'est effectivement pas pris en compte, je vais regarder ça.Rodolphe Merci je cherchais cela depuis lontemps Fonctionne parfaitement pour afficher le nom du fabricant dans la liste des produits ! Link to comment Share on other sites More sharing options...
syl Posted January 4, 2010 Share Posted January 4, 2010 Bonjour J’installe actuellement une boutique web pour une petite librairie....().Je me sers du champ “fabricant“ pour entrer le nom de l’auteur; et du champ “fournisseur“ pour entrer le nom de l’éditeur..(..)...Quel code dois-je insérer dans mon template?.(..)..elode => Je suis occupé à faire exactement la même chose (librairie), et j'ai trouvé comment placer l'auteur (fabricant) + collection (fournisseur) (avec un lien vers la page correspondante) dans la fiche produit (product.tpl) : {if $product->manufacturer_name} Auteur : getmanufacturerLink($product->id_manufacturer, $manufacturer.link_rewrite)}">{$product->manufacturer_name|escape:'htmlall':'UTF-8'} {/if} {if $product->supplier_name}Collection : getsupplierLink($product->id_supplier, $supplier.link_rewrite)}">{$product->supplier_name|escape:'htmlall':'UTF-8'} {/if} Et dans la liste des livres d'une recherche, catégories, etc (product-list.tpl) je parviens à y placer l'auteur (fabricant) : getmanufacturerLink($product->id_manufacturer, $manufacturer.link_rewrite)}"> {$product.manufacturer_name|truncate:350:'...'|escape:'htmlall':'UTF-8'} Mais ça foire avec la collection (fournisseur) : getmanufacturerLink($product->id_manufacturer, $manufacturer.link_rewrite)}"> {$product.manufacturer_name|truncate:350:'...'|escape:'htmlall':'UTF-8'} ==> C'est le seul qui va pas, placer le fournisseur dans product-list.tpl, J'ignore Pourquoi ?Quelqu'un aurait il réussi à y placer soit le nom soit le logo du fournisseur dans la liste des produits ?merci pour l'aide Link to comment Share on other sites More sharing options...
LeGhe Posted February 28, 2010 Share Posted February 28, 2010 Bonsoir,après quelques essais, je parviens à afficher le fabricant dans le product-list, mais pas le fournisseur.Du moins pas son "name", mais son id oui, ça marche : {if $product.manufacturer_name} {l s='de '}getmanufacturerLink($product.id_manufacturer, $manufacturer.link_rewrite)}" title="Tous les livres de {$product.manufacturer_name}">{$product.manufacturer_name} {/if} {if $product.id_supplier} {l s=' et '}getsupplierLink($product.id_supplier, $supplier.link_rewrite)}" title="Tous les livres de {$product.id_supplier}">{$product.id_supplier} {/if} Cela fonctionne parfaitement, mais impossible de "décoder" le nom !Quelqu'un a une idée pour que le supplier_name soit valide ? Link to comment Share on other sites More sharing options...
LeGhe Posted March 21, 2010 Share Posted March 21, 2010 Un p'tit up ? getImageLink($product.link_rewrite, $product.id_image, 'home')}" alt="{$product.legend|escape:'htmlall':'UTF-8'}" /> {if $product.new == 1}{l s='new'}{/if}{$product.name|truncate:35:'...'|escape:'htmlall':'UTF-8'} {$product.description_short|strip_tags:'UTF-8'|truncate:360:'...'} {if $product.manufacturer_name} {l s='de '}link}" title="Tous les livres de {$product.manufacturer_name}">{$product.manufacturer_name} {/if} {if $product.id_supplier} {l s='et '}link}" title="Tous les livres de {$product.supplier_name}">{$product.supplier_name} {/if} {$product.supplier_reference} {if $product.reference > 2}({$product.reference}){/if} Comment décoder le id_supplier ? Link to comment Share on other sites More sharing options...
LeGhe Posted March 21, 2010 Share Posted March 21, 2010 Bon, j'ai pas mal avancé sur ce sujet, mais il manque des bouts.Modifier la classes category.php entre les lignes 405 et 420 : $sql = ' SELECT p.*, pa.`id_product_attribute`, pl.`description`, pl.`description_short`, pl.`available_now`, pl.`available_later`, pl.`link_rewrite`, pl.`meta_description`, pl.`meta_keywords`, pl.`meta_title`, pl.`name`, i.`id_image`, il.`legend`, m.`name` AS manufacturer_name, s.`name` AS supplier_name, tl.`name` AS tax_name, t.`rate`, cl.`name` AS category_default, DATEDIFF(p.`date_add`, DATE_SUB(NOW(), INTERVAL '.(Validate::isUnsignedInt(Configuration::get('PS_NB_DAYS_NEW_PRODUCT')) ? Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20).' DAY)) > 0 AS new, (p.price - IF((DATEDIFF(reduction_from, CURDATE()) <= 0 AND DATEDIFF(reduction_to, CURDATE()) >=0) OR reduction_from = reduction_to, IFNULL(reduction_price, (p.price * reduction_percent / 100)),0)) AS orderprice FROM `'._DB_PREFIX_.'category_product` cp LEFT JOIN `'._DB_PREFIX_.'product` p ON p.`id_product` = cp.`id_product` LEFT JOIN `'._DB_PREFIX_.'product_attribute` pa ON (p.`id_product` = pa.`id_product` AND default_on = 1) LEFT JOIN `'._DB_PREFIX_.'category_lang` cl ON (p.`id_category_default` = cl.`id_category` AND cl.`id_lang` = '.intval($id_lang).') LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.intval($id_lang).') LEFT JOIN `'._DB_PREFIX_.'image` i ON (i.`id_product` = p.`id_product` AND i.`cover` = 1) LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.intval($id_lang).') LEFT JOIN `'._DB_PREFIX_.'tax` t ON t.`id_tax` = p.`id_tax` LEFT JOIN `'._DB_PREFIX_.'tax_lang` tl ON (t.`id_tax` = tl.`id_tax` AND tl.`id_lang` = '.intval($id_lang).') LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON m.`id_manufacturer` = p.`id_manufacturer` LEFT JOIN `'._DB_PREFIX_.'supplier` s ON s.`id_supplier` = p.`id_supplier` WHERE cp.`id_category` = '.intval($this->id).($active ? ' AND p.`active` = 1' : '').' '.($id_supplier ? 'AND p.id_supplier = '.$id_supplier : ''); Modifier la classe search.php entre les lignes 285 et 293 : $products = $db->ExecuteS(' SELECT p.id_product, pl.id_lang, pl.name as pname, p.reference, p.ean13, pl.description_short, pl.description, cl.name as cname, m.name as mname, s.name as sname FROM '._DB_PREFIX_.'product p LEFT JOIN '._DB_PREFIX_.'product_lang pl ON p.id_product = pl.id_product LEFT JOIN '._DB_PREFIX_.'category_lang cl ON (cl.id_category = p.id_category_default AND pl.id_lang = cl.id_lang) LEFT JOIN '._DB_PREFIX_.'manufacturer m ON m.id_manufacturer = p.id_manufacturer LEFT JOIN '._DB_PREFIX_.'supplier s ON s.id_supplier = p.id_supplier WHERE p.indexed = 0', false); Puis, sur le product-list.tpl : {foreach from=$products item=product name=products} getImageLink($product.link_rewrite, $product.id_image, 'home')}" alt="{$product.legend|escape:'htmlall':'UTF-8'}" /> {if $product.new == 1}{l s='new'}{/if}{$product.name|truncate:35:'...'|escape:'htmlall':'UTF-8'} {$product.description_short|strip_tags:'UTF-8'|truncate:360:'...'} {if $product.id_manufacturer} {l s='de '}{$product.manufacturer_name} {/if} {if $product.id_supplier} {l s='et '}{$product.supplier_name} {/if} Link to comment Share on other sites More sharing options...
ciceron5978 Posted September 2, 2010 Share Posted September 2, 2010 Voici le code pour afficher le fournisseur sur la page du manufacturer. Par contre le code pour la page search.php (voir ci-dessus) ne fonctionne pas. Quelqu'un a-t-il une idée ?Merci $sql = ' SELECT p.*, pl.`description`, pl.`description_short`, pl.`link_rewrite`, pl.`meta_description`, pl.`meta_keywords`, pl.`meta_title`, pl.`name`, i.`id_image`, il.`legend`, m.`name` AS manufacturer_name, s.`name` AS supplier_name, tl.`name` AS tax_name, t.`rate`, DATEDIFF(p.`date_add`, DATE_SUB(NOW(), INTERVAL '.(Validate::isUnsignedInt(Configuration::get('PS_NB_DAYS_NEW_PRODUCT')) ? Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20).' DAY)) > 0 AS new, (p.`price` * ((100 + (t.`rate`))/100) - IF((DATEDIFF(`reduction_from`, CURDATE()) <= 0 AND DATEDIFF(`reduction_to`, CURDATE()) >=0) OR `reduction_from` = `reduction_to`, IF(`reduction_price` > 0, `reduction_price`, (p.`price` * ((100 + (t.`rate`))/100) * `reduction_percent` / 100)),0)) AS orderprice FROM `'._DB_PREFIX_.'product` p LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.intval($id_lang).') LEFT JOIN `'._DB_PREFIX_.'image` i ON (i.`id_product` = p.`id_product` AND i.`cover` = 1) LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.intval($id_lang).') LEFT JOIN `'._DB_PREFIX_.'tax` t ON t.`id_tax` = p.`id_tax` LEFT JOIN `'._DB_PREFIX_.'tax_lang` tl ON (t.`id_tax` = tl.`id_tax` AND tl.`id_lang` = '.intval($id_lang).') LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON m.`id_manufacturer` = p.`id_manufacturer` LEFT JOIN `'._DB_PREFIX_.'supplier` s ON s.`id_supplier` = p.`id_supplier` WHERE p.`id_manufacturer` = '.intval($id_manufacturer).($active ? ' AND p.`active` = 1' : '').' AND p.`id_product` IN ( SELECT cp.`id_product` FROM `'._DB_PREFIX_.'category_group` cg LEFT JOIN `'._DB_PREFIX_.'category_product` cp ON (cp.`id_category` = cg.`id_category`) WHERE cg.`id_group` '.(!$cookie->id_customer ? '= 1' : 'IN (SELECT id_group FROM '._DB_PREFIX_.'customer_group WHERE id_customer = '.intval($cookie->id_customer).')').' Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now