Jump to content

sirozz

Members
  • Posts

    14
  • Joined

  • Last visited

sirozz's Achievements

Newbie

Newbie (1/14)

1

Reputation

  1. Salut, il vaut mieux utiliser le module mentionné par Jolvil: http://www.prestashop.com/forums/viewthread/77209 J'avais développé ça vite fait sans savoir que ce module était disponible.
  2. Super comme astuce, merci ! J'ajoute juste un petit truc, il faudra peut-être ajouter dans le fichier cms.php: $smarty->assign('page_name', 'cms'); juste avant include(dirname(__FILE__).'/header.php'); car sinon le body ne prendra pas la classe 'cms' mais 'index' et cela risque de poser des problèmes pour faire un thème particulier pour les pages CMS.
  3. Salut à tous, Un petit module vite fait qui sert à éditer manuellement des points fidélités. Si ça peut aider qqun. À tester avant la mise en production !! http://img15.imageshack.us/img15/2822/edit1m.jpg http://img441.imageshack.us/img441/2210/edit20.jpg editloyalty.zip
  4. Merci, je vais en avoir besoin si je le fais à la main mais je pense que je vais supprimer complètement mes produits et recommencer avec ce module: Zen Cart to Prestashop Migration Ce qui m'inquiète un peu c'est qu'il coute quand même 100€ et qu'il n'y a eu aucun retour pour l'instant. Si jamais ça intéresse quelqu'un qui devrait faire une migration Zencart -> Prestashop, je poste ici mes requêtes SQL pour générer les fichiers CSV compatibles avec l'outil d'importation de Prestashop: Exportation des catégories: Le +1 sur Identifiant sert à éviter d'écraser la catégorie 'accueil' de Prestashop Il faut remplacer le http://www.monsite.com/images par l'url exacte du dossier des images. Il faut remplacer le 2 (language_id) par celui correspondant. Executez la requète dans PhpMyAdmin et cliquez sur le bouton "exporter" Convertissez ensuite le fichier avec Excel pour avoir un CSV correct puis sauvegarder en UTF8 SELECT DISTINCT c.`categories_id`+1 as `Identifiant`, c.`categories_status` as `Actif`, cd.`categories_name` as `Nom`, (SELECT `categories_name` FROM `categories_description` WHERE `categories_id` = c.`parent_id`) as `Catégorie parente`, cd.`categories_description` as `Description`, m.`metatags_title` as `Balise title`, m.`metatags_keywords` as `Meta mots-clefs`, m.`metatags_description` as `Meta description`, LOWER(REPLACE(cd.`categories_name`, ' ', '-')) as `URL simplifiée`, CONCAT('http://www.monsite.com/images/',c.`categories_image`) as `URL de l'image` FROM `categories` as c LEFT JOIN `categories_description` as cd ON cd.`categories_id` = c.`categories_id` LEFT JOIN `meta_tags_categories_description` as m ON m.`categories_id` = c.`categories_id` WHERE cd.`language_id` = 2 Pour les produits: SELECT DISTINCT p.`products_id` as `Identifiant`, p.`products_status` as `Actif`, pd.`products_name` as `Nom`, (SELECT `categories_name` FROM `categories_description` WHERE `categories_id` = pc.`categories_id`) as `Categorie`, REPLACE(p.`products_price`,',','.') as `Prix`, REPLACE((SELECT `tax_rate` FROM `tax_rates` WHERE `tax_class_id` = p.`products_tax_class_id`),',','.') as `TVA`, '' as `Prix d'achat`, (SELECT COUNT(*) FROM `specials` WHERE `products_id` = p.`products_id`) as `En soldes`, REPLACE(p.`products_price`-(SELECT `specials_new_products_price` FROM `specials` WHERE `products_id` = p.`products_id`),',','.') as `Montant de réduction`, '' as `Pourcentage de réduction`, (SELECT `specials_date_available` FROM `specials` WHERE `products_id` = p.`products_id`) as `Réduction de`, (SELECT `expires_date` FROM `specials` WHERE `products_id` = p.`products_id`) as `Réduction à`, p.`products_model` as `Référence`, '' as `Référence fournisseur`, '' as `Fournisseur`, (SELECT `manufacturers_name` FROM `manufacturers` WHERE `manufacturers_id` = p.`manufacturers_id`) as `Fabricant`, '' as `EAN13`, '' as `Eco taxe`, REPLACE(p.`products_weight`,',','.') as `Poids`, p.`products_quantity` as `Quantité`, CONCAT(SUBSTR(pd.`products_description`,1,150),'...') as `Description courte`, pd.`products_description` as `Description`, '' as `Tags`, (SELECT `metatags_title` FROM `meta_tags_products_description` WHERE `products_id` = p.`products_id` AND `language_id` = 2) `Balise title`, (SELECT `metatags_keywords` FROM `meta_tags_products_description` WHERE `products_id` = p.`products_id` AND `language_id` = 2) as `Meta mots-clefs`, (SELECT `metatags_description` FROM `meta_tags_products_description` WHERE `products_id` = p.`products_id` AND `language_id` = 2) as `Meta description`, LOWER(REPLACE(pd.`products_name`, ' ', '-')) as `URL simplifiée`, '' as `Texte en stock`, '' as `Texte en commande`, CONCAT('http://www.monsite.com/images/',p.`products_image`) as `URLs des images`, '' as `Caractéristique` FROM `products` as p LEFT JOIN `products_description` as pd ON pd.`products_id` = p.`products_id` LEFT JOIN `products_to_categories` as pc ON pc.`products_id` = p.`products_id` WHERE pd.`language_id` = 2 Pour les déclinaisons SELECT pa.`products_id` as `ID Produit`, GROUP_CONCAT( CONCAT( (SELECT `products_options_name` FROM `products_options` WHERE `products_options_id` = pa.`options_id`), ':', (SELECT `options_values_id` FROM `products_options_values` WHERE `products_options_values_id` = pa.`options_values_id`) ) SEPARATOR ',' ), '' as `Référence`, '' as `Référence fournisseur`, '' as `EAN13`, '' as `Prix d'achat`, CASE `price_prefix` WHEN '+' THEN REPLACE((SELECT `products_price` FROM `products` WHERE `products_id` = pa.`products_id`)+pa.`options_values_price`,',','.') WHEN '-' THEN REPLACE((SELECT `products_price` FROM `products` WHERE `products_id` = pa.`products_id`)-pa.`options_values_price`,',','.') END as `prix`, '' as `Eco taxe`, (SELECT `products_quantity` FROM `products` WHERE `products_id` = pa.`products_id`) as `Quantité`, REPLACE((SELECT `products_weight` FROM `products` WHERE `products_id` = pa.`products_id`),',','.') as `Poids` FROM `products_attributes` as pa GROUP BY pa.`products_id`
  5. Hello, Suite à l'exportation de mes produits depuis une vieille Zencart pour les importer dans une Prestashop, mes articles sont présents dans leurs catégories respectives mais pas dans les catégories mères. J'aimerais dispatcher mes produits dans les catégories mères de manière automatique. Je connais le module productdispatch qui permet de faire ça sans avoir à rentrer dans les fiches produits mais pas de manière automatique et... j'ai 875 produits !! Donc ma question est: existe-t-il un module pour faire ça ? Merci !
  6. Hello, Désolé mais je n'arrive décidément pas à trouver du temps pour avancer. De mon coté, je pense qu'il faut commencer par essayer d'intégrer les articles PS dans une vue Drupal. Je suis tombé sur le module "table wizard" qui permet d'intégrer des tables externes directement dans le module views sans faire de développement: http://drupal.org/project/tw C'est loin d'être une intégration complète de Prestashop mais il faut bien commencer quelque part. Par la suite, les 3 choses à synchroniser sont: coté Drupal - coté Prestashop user - user node de type produit avec CCK - product node de type order avec CCK - order Et là, je suis d'accord avec ton schéma: services (existants du coté de Drupal) pour commander Drupal et ainsi permettre la création de noeuds ou d'utilisateurs depuis PS et un module services pour PS à développer, idem pour commander Prestashop et créer les produits ou les utilisateurs depuis Drupal. Je pense qu'il faut créer un nouveau topic car nous sommes complétement hors sujet ici et aussi pour augmenter la visibilité du projet. Peut-être que d'autres personnes qui auront plus de temps de libre seront intéressées.
  7. Merci Apaccy, Je vais faire quelques essais de mise en place cette semaine et préparer un petit cahier des charges. Je n'ai aucune idée pour l'instant du travail à effectuer sur la prise en charge du backoffice dans Drupal. Je ne sais même pas si c'est possible. Par contre, je pense qu'il faut laisser Drupal s'occuper de l'affichage du front. Peut-être lier la taxonomie aux catégories vu que le fonctionnement est le même ? Peut-être créer un module pour views pour l'affichage des produits ? Voir du coté de services http://drupal.org/project/Services pour la liaison ? Merci pour ton post scriptum. http://www.justsomelyrics.com/1820341/Eiffel-Avec-des-si-Lyrics
  8. C'est un peu hors sujet mais au niveau de Drupal, il existe des modules pour l'édition en ligne des templates et des css: http://drupal.org/project/theme_editor Je travail dans une web-agency et Drupal est devenu mon principal outil de conception. Grâce à lui, j'économise de nombreuses heures de développement surtout lors de demandes spécifiques des clients ou de complexités techniques. Drupal a généralement réponse à tout et lorsque ce n'est pas le cas, il suffit d'aller faire un tour dans la communauté car quelqu'un l'a forcément déjà fait. Ce qu'il reste à faire sur Drupal: développer un module D6-7 qui permette l'intégration complète de PS. La question a déjà été posée mais reste en suspend: http://drupal.org/node/332363 Je veux bien lancer le projet si je trouve des personnes intéressées.
  9. Bien vu Gregory ! Effectivement cette méthode et bien plus simple et évite la surcharge de la classe Smarty. Si j'ai bien compris, il faut par exemple pour le header créer 2 fichier header1 et header2, vider le contenu du fichier header.tpl et ajouter la structure conditionnelle à la place pour rediriger Smarty vers le bon fichier. Je n'y avais pas pensé. Cette méthode est vraiment géniale mais je pense qu'il serait quand même intéressant que l'équipe ajoute la fonctionnalité du choix du template dans la fiche d'édition du produit ou dans la fiche d'édition d'une catégorie dans les versions futures de Prestashop. Je compare souvent Prestashop à Drupal même si PS n'est pas un CMS. Je pense qu'il manque encore quelques modules pour faire de PS la boutique incontournable de la mort qui tue. Nous verrons peut-être un jour un module views ou un module panels pour Prestashop ? En tout cas merci !
  10. Bonjour Apaccy, J'avais bien pensé au début faire cette modification directement dans les classes de Prestashop mais cela entraine vraiment trop de modification de code et vu qu'il n'est pas possible, à mon avis, de faire ça avec un module, j'ai opté pour la surcharge de la classe Smarty. À la base cette modification a été faite dans l'urgence pour un client qui voulait un thème spécifique pour un produit particulier. Arf, ils sont toujours pressés ces clients... :-S Par contre, je suis d'accord avec vous sur le fait que surcharger la classe Smarty n'est pas forcément l'idéal. Surtout si d'autres développeurs veulent surcharger eux aussi cette classe, on ne s'en sort plus. Il doit exister d'autres méthodes plus évolutives mais il faut que je ressorte mais vieux livres sur les design patterns (ou peut-être qu'un jour, un dev de la team Prestashop jètera un oeil sur ce post et me fera un petit "coucou, voici la marche à suivre..."). À plus tard et merci pour le commentaire.
  11. J'ai mis à jour le script (voir post #1) pour que cela fonctionne mais je ne suis pas satisfait par la méthode utilisée. Je veux éviter de faire une requête sql et je pense qu'il est inutile de charger l'intégralité du produit pour obtenir l'id de la catégorie. En plus, cela ne fonctionnera certainement pas avec les produits dans des catégories multiples. Je ne sais pas comment respecter au mieux les conventions de developpement de Prestashop et j'aurais bien besoin d'un expert avant une éventuelle soumission à la team. Merci donc à ceux qui voudront bien m'aider. Pour terminer, je pense que l'idéal serait d'avoir un champ supplémentaire sur les formulaires d'édition des produits et des catégories pour indiquer le préfix à placer devant les noms des fichiers tpl.
  12. Merci pour vos commentaires. Pour répondre à Easybizness, malheureusement cela ne fonctionnera pas avec cid10-product.tpl car sur la fiche produit, l'identifiant de la catégorie n'est pas envoyé en GET. Il faudrait trouver une méthode plus fonctionnelle que la méthode GET pour récupérer l'identifiant d'un produit et de sa catégorie. Ou au moins charger le produit grâce à la classe Product pour récupérer l'identifiant de la catégorie principale. Je ferais la modification tout à l'heure.
  13. Bonjour à tous, J'utilise régulièrement Drupal et Ubercart et je reste frustré face à la non-modularité du theming dans Prestashop (ex:modification du theme pour un produit particulier ou pour une catégorie, un peu comme Magento). Voici ma technique pour ajouter cette possibilité à Prestashop sans toucher au coeur. 1. Créez un fichier smarty.wrapper.inc.php dans le dossier config à la racine et collez ça dedans: <?php class smartywrapper extends Smarty { function display($resource_name, $cache_id = null, $compile_id = null) { preg_match("/(.+\/)(.+)/", $resource_name, $path); switch(true) { case isset($_GET['id_product']): $newname = $path[1].'pid'.$_GET['id_product'].'-'.$path[2]; if(file_exists($newname)) { $resource_name = $newname; break; } $product = new Product($_GET['id_product']); $newname = $path[1].'cid'.$product->id_category_default.'-'.$path[2]; if(file_exists($newname)) $resource_name = $newname; break; case isset($_GET['id_category']): $newname = $path[1].'cid'.$_GET['id_category'].'-'.$path[2]; if(file_exists($newname)) $resource_name = $newname; break; } parent::display($resource_name, $cache_id, $compile_id); } } ?> Supprimez la ligne suivante dans le fichier smarty.config.inc.php: $smarty = new Smarty(); et remplacez la par: require_once(dirname(__FILE__).'/smarty.wrapper.inc.php'); $smarty = new smartywrapper(); Vous pouvez maintenant surcharger vos templates grâce aux identifiants des produits et des catégories. Par exemple, pour modifier le fichier header.tpl pour tous les produits dans la catégorie id 10, dupliquez le fichier header.tpl et renommer le en cid10-header.tpl. Il sera utilisé si nécessaire par Prestashop. Un autre exemple, si vous voulez modifier la fiche produit d'un article en particulier, par ex l'id 5, alors dupliquez le fichier product.tpl et renommez le en pid5-product.tpl. Si Prestashop le trouve, alors il l'utilisera à la place. J'ai fait ça rapidos et je n'ai pas testé plus que ça donc si vous trouvez des problèmes... n'hésitez pas.
  14. Pour les novices, j'ai modifié le fichier editorial.php pour autoriser la modification et l'upload des images directement dans la configuration du module. Cela a été réalisé en 1 heure et en creusant un peu, il doit y avoir quelques bugs ! Donc à tester seulement et à ne pas utiliser en production. editorial.php
×
×
  • Create New...

Important Information

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