SleT Posted February 27, 2014 Share Posted February 27, 2014 Bonjour, Je recherche depuis quelques temps pour un module, une manière de créer une catégorie, puis des produits dans cette catégorie, avec un nom, un prix et une image associée. J'ai du mal à trouver ces informations, si quelqu'un peut me filer l'info ou me mettre sur une piste, ça serait cool :-) Je précise que je souhaite créer cette catégorie => produit dans un module de création de galerie d'image (si ça doit changer la syntaxe, je préviens... ) Merci d'avance ! Link to comment Share on other sites More sharing options...
SleT Posted February 27, 2014 Author Share Posted February 27, 2014 Bon, je reviens vers vous parce que je pense avoir trouver une méthode qui a pas l'air trop compliqué. Je pense utiliser l'import via XML/CSV. Je vais laisser l'utilisateur créer la catégorie avec son image etc, comme ça pas de prise de tête avec ça. Ensuite il sélectionnera la catégorie qu'il veut utiliser pour son import d'image, le répertoire des photos, et zou, génération du CSV et roule bouboule ! Si j'ai d'autres questions/solutions je posterai ici histoire que si ça donne des idées ou aide... voila quoi :-) Link to comment Share on other sites More sharing options...
SleT Posted March 18, 2014 Author Share Posted March 18, 2014 Ouais, en fait c'est la merde. Dans mon module, je demande à l'utilisateur de créer la catégorie en amont, ça fait une tache de moins... Par contre, je n'arrive pas à trouver comment créer mes produits. L'import de CSV ne correspond pas à ce dont j'ai besoin et trop complexe à mettre en place pour ce que je veux faire... (à mes yeux..) Quelqu'un aurait une solution à mettre en place sur comment ajouter simplement un produit ? (ou de manière compliqué un peu détaillé?) Link to comment Share on other sites More sharing options...
SleT Posted March 19, 2014 Author Share Posted March 19, 2014 ça devient assez critique, j'suis vraiment preneur d'une idée Link to comment Share on other sites More sharing options...
SleT Posted March 20, 2014 Author Share Posted March 20, 2014 Bon, j'ai utilisé la fonction duplicate, ça marche très bien. Par contre, je n'arrive pas à associer l'image d'une URL au produit. Any ideas? Link to comment Share on other sites More sharing options...
math_php Posted March 20, 2014 Share Posted March 20, 2014 Bonjour Slet, Pour me faire des fonctions d'import je me suis fortement inspiré de controllers/admin/adminImportController et des méthodes productImport() et categoryImport() ce que d'ailleurs tu as utilisé manuellement. Très schématiquement pour créer une à une des catégories dans une boucle d'import: $category_to_create = new Category(); $category_to_create->id = (int)$value; $category_to_create->name = AdminImportController::createMultiLangField($value); $category_to_create->active = 1; $category_to_create-> .... Bon dev Link to comment Share on other sites More sharing options...
SleT Posted March 20, 2014 Author Share Posted March 20, 2014 Oui effectivement, c'est ce que je suis allé voir. Je voulais dupliquer des produits, et c'est vrai que du coup, l'aide est pas forcement facile à apporter. J'me suis inspirer du système d'import effectivement, et j'en ai fais un module... (un peu trop spécifique pour être partager je pense..) Merci pour le passage et le coup de main (et de maitre) @ plus Link to comment Share on other sites More sharing options...
math_php Posted March 20, 2014 Share Posted March 20, 2014 Merci pour le passage et le coup de main (et de maitre) Sympa. Pour les images j'ai ça : define('UNFRIENDLY_ERROR', false); $id_product=....; $img_url = ....; $image = new Image(); $image->id_product = (int)$id_product ; // $image->position = Image::getHighestPosition($id_product) + 1; $image->cover = true; $image->legend = createMultiLangField('legende image'); if (($fieldError = $image->validateFields(UNFRIENDLY_ERROR, true)) === true AND ($langFieldError = $image->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true AND $image->add()) copyImg($id_product, $image->id, $img_url); function copyImg($id_entity, $id_image = NULL, $url='') { $tmpfile = tempnam(_PS_TMP_IMG_DIR_, 'ps_import'); $watermark_types = explode(',', Configuration::get('WATERMARK_TYPES')); $imageObj = new Image($id_image); $path = (string)$imageObj->getPathForCreation(); $dnld = file_get_contents($url); if ($dnld === false) { $errors= error_get_last(); // echo "File_get_contents ERROR: ".$errors['type']; // echo "<br />\n".$errors['message']."<br>\n"; unlink($tmpfile); return false; } else{ if (file_put_contents($tmpfile, $dnld) === false ){ // echo "file_put_contents ERROR: ".$errors['type']; // echo "<br />\n".$errors['message']."<br>\n"; unlink($tmpfile); return false; } // echo "Copy from url ok<br>\n"; ImageManager::resize($tmpfile, $path.'.jpg'); $imagesTypes = ImageType::getImagesTypes('products'); foreach ($imagesTypes AS $k => $imageType) ImageManager::resize ($tmpfile, $path.'-'.stripslashes($imageType['name']).'.jpg', $imageType['width'], $imageType['height']); if (in_array($imageType['id_image_type'], $watermark_types)) Module::hookExec('watermark', array('id_image' => $id_image, 'id_product' => $id_entity)); } unlink($tmpfile); return true; } function createMultiLangField($field){ $languages = Language::getLanguages(false); $res = array(); foreach ($languages AS $lang) $res[$lang['id_lang']] = $field; return $res; } 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