THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline

#26 Re: Import produit csv

(12-01-2016 20:57:10)


Bonsoir,
je fais remonter le post car je veux bien contribuer au projet,
mais je n'ai peut être pas toutes les connaissances pour cela.

Si quelqu'un veut me guider un peu pour faire avancer,
je suis ok,
me contacter en mp.

Bonne soirée

Offline

#27 Re: Import produit csv

(29-01-2016 16:11:13)


Salut VZ777,

Le module ne prend pas encore en charge l'import via un XML. Il faut obligatoirement utiliser un CSV.

Pour ton erreur, c'est la vérification du CSV qui pose problème. A voir si tu as la bonne structure.

Offline

#28 Re: Import produit csv

(12-02-2016 16:56:58)


Salut Webaravis,
en effet le csv n'était pas bon à cause de rub0.

Donc cette fois :

Sur la page ImportCSV/settings.csv,
je clique sur start import pour arriver sur la page ImportCSV/import/0,
où s'affiche :

Import Catalogue

1 elements have been processed.

X Stop

Mais rien n'est importé, même après verification en BDD.

Offline

#29 Re: Import produit csv

(15-02-2016 15:10:26)


Salut VZ777,

Tu trouveras à la racine du module un fichier exemple_import.csv pour t'aider à avancer sur la structure du fichier.
Il faudra par la suite faire en sorte que celui-ci soit un peu plus souple je pense.

J'ai également mis à jour le module avec plusieurs améliorations et corrections de bugs.

Je te laisse réessayer et me dire si tu rencontres encore des soucis.

Offline

#30 Re: Import produit csv

(17-02-2016 12:53:43)


Merci WEBARAVIS,
je rencontre toujours un souci, désolé,

cette fois :

FatalErrorException in ImportCatalogue.php line 166: Parse Error: syntax error, unexpected '<<' (T_SL)

Offline

#31 Re: Import produit csv

(09-05-2016 13:30:55)


Salut,

J'ai tout testé, repris exactement la même structure que sur l'exemple et comme VZ777 même si j'ai le message "1 elements have been processed." rien n'est inséré en bdd. Avez-vous une solution pour ça ?

Online

#32 Re: Import produit csv

(05-03-2021 08:59:29)


Bonjour,

Ce module est-il toujours d'actualité ou un autre a-t-il été développé entre temps ?

Car là à la mise en place ça me met un message d'erreur :

Module importCSV: Class ImportCSV\ImportCSV does not exist


Aide les autres, ils t'aideront en retour.

Online

#33 Re: Import produit csv

(05-03-2021 09:14:44)


Elyos wrote:

Bonjour,

Ce module est-il toujours d'actualité ou un autre a-t-il été développé entre temps ?

Car là à la mise en place ça me met un message d'erreur :

Module importCSV: Class ImportCSV\ImportCSV does not exist

Bon bah j'ai testé en zippant le dossier et en l'installant via l'admin...

ça me l'a bien rajouté mais error 500 quand je veux y accéder (via la clef à molette)


Aide les autres, ils t'aideront en retour.

Online

#34 Re: Import produit csv

(05-03-2021 09:32:30)


La page d'accueil du module appelle cette fonction

 public function indexAction()
    {
        if (null !== $response = $this->checkAuth(self::RESOURCE_CODE, array(), AccessManager::VIEW)) {
            return $response;
        }

        // Render the edition template.
        return $this->render('welcomeImportCSV');
    }

via

<route id="importCSV.main" path="/admin/module/ImportCSV">
        <default key="_controller">ImportCSV\Controller\Admin\ImportCSVController::indexAction</default>
    </route>

qui engendre une erreur 500...

par contre si je vais directement à l'url admin/module/ImportCSV/welcomeImportCSV pas de souci...


Aide les autres, ils t'aideront en retour.

Online

#35 Re: Import produit csv

(05-03-2021 12:10:54)


J'ai testé un import simple... error 500 également...


Aide les autres, ils t'aideront en retour.

Offline

#36 Re: Import produit csv

(06-03-2021 10:22:28)


Erreur 500, c'est vague. C'est quoi l'erreur exacte ? Passe en mode développement pour l'avoir.


OpenStudio Toulouse

Online

#37 Re: Import produit csv

(08-03-2021 09:08:33)


Si je passe en dev :
Depuis la liste des modules je n'ai plus la petite clé à molette pour accéder à l'admin du module...
Et si je vais directement à index_dev.php/admin/module/ImportCSV/welcomeImportCSV j'obtiens

Oops ! Une erreur est survenue
Template file module/ImportCSV/welcomeImportCSV.html cannot be found.

Last edited by Elyos (08-03-2021 09:08:53)


Aide les autres, ils t'aideront en retour.

Online

#38 Re: Import produit csv

(08-03-2021 09:26:15)


A priori le path n'est pas bon... donc je cherche pourquoi...


Aide les autres, ils t'aideront en retour.

Online

#39 Re: Import produit csv

(08-03-2021 09:51:21)


J'ai vidé le cache... j'ai bien la petite clé..et quand j'y accède j'obtiens :

ClassNotFoundException in ImportCSVController.php line 26:
Attempted to load trait "ArchiveBuilderManagerTrait" from namespace "Thelia\Core\FileFormat\Archive".
Did you forget a "use" statement for another namespace?

in ImportCSVController.php line 26


Correspondant à

25.    const RESOURCE_CODE = 'module.ImportCSV';
26.    use ArchiveBuilderManagerTrait;
27.    use FormatterManagerTrait;

Last edited by Elyos (08-03-2021 09:53:09)


Aide les autres, ils t'aideront en retour.

Online

#40 Re: Import produit csv

(08-03-2021 10:11:22)


Avec tout ça au dessus de la classe :

use Thelia\Core\FileFormat\Archive\AbstractArchiveBuilder;
use Thelia\Core\FileFormat\Archive\ArchiveBuilderManager;
use Thelia\Core\FileFormat\Archive\ArchiveBuilderManagerTrait;
use Thelia\Core\FileFormat\Formatting\AbstractFormatter;
use Thelia\Core\FileFormat\Formatting\FormatterManager;
use Thelia\Core\FileFormat\Formatting\FormatterManagerTrait;

Aide les autres, ils t'aideront en retour.

Online

#41 Re: Import produit csv

(08-03-2021 10:23:39)


Ok à priori en version 2.2 il y avait FileFormat qui n'existe plus dans la version 2.4...

En attendant d'avoir la réponse, je vas essayer de trouver les bonnes dépendances...


Aide les autres, ils t'aideront en retour.

Online

#42 Re: Import produit csv

(08-03-2021 10:41:34)


https://forum.thelia.net/viewtopic.php?id=12080

...


Aide les autres, ils t'aideront en retour.

Online

#43 Re: Import produit csv

(08-03-2021 10:46:05)


Et à priori personne ne s'est penché sur la mise à jour du module ...


Aide les autres, ils t'aideront en retour.

Online

#44 Re: Import produit csv

(08-03-2021 14:15:35)


Bon allez, j'ai pas le choix... comme à l'ancienne sur thélia v1... je m'y colle... ^^'


Aide les autres, ils t'aideront en retour.

Offline

#45 Re: Import produit csv

(08-03-2021 14:24:04)


ArchiveBuilderManagerTrait n'est pas une classe qui appartient au namespace Thelia\Core\FileFormat\Archive

D'ailleurs je ne la trouve pas dans un Thelia 2.4

Tu utilises un IDE un peu sophistiqué comme PhpStorm ou VS Code qui t'aide à optimiser les imports et détecter les erreurs ?


OpenStudio Toulouse

Online

#46 Re: Import produit csv

(08-03-2021 15:21:47)


J'ai juste pris et installé le module qui me semblait bien ^^'

Mais il est apparemment obsolète... du coup j'en fais un maison qui s'intégrera à la partie "Import" des Outils wink


Aide les autres, ils t'aideront en retour.

Online

#47 Re: Import produit csv

(08-03-2021 16:10:02)


Du coup... questions bêtes...

1/ J'ajoute comment des champs aux formulaires de base ? Je dois en regénérer un ?

2/ Je définis comment mon délimiteur CSV par ";" (point-virgule)  ?
Je suis parti du module d'import/export SEO mais je vois pas comment je force tout ça...

Last edited by Elyos (08-03-2021 16:19:46)


Aide les autres, ils t'aideront en retour.

Online

#48 Re: Import produit csv

(09-03-2021 17:52:08)


Bon bah je pensais que par le biais d'un hook j'arriverais à choper l'event

const IMPORT_BEGIN = 'import.begin';

mais je dois mal m'y prendre car il ne se passe rien...

config.xml

	<hooks>
		<hook id="import.hook.import_begin" class="ImportProducts\Hook\HookManager" scope="request">
			<tag name="hook.event_listener" event="import.begin"  type="back" method="onImportBegin" />
		</hook>   
	</hooks>

et dans ma classe ImportProducts\Hook\HookManager

	public function onImportBegin(HookRenderEvent $event)
	{
		print($event->getSerializer());
		die('!!!');
	}

Le but étant de modifier les variables delimiter et enclosure de CSVSerializer ...


Aide les autres, ils t'aideront en retour.

Offline

#49 Re: Import produit csv

(09-03-2021 18:08:35)


Il te suffit de remplacer le serialiseur de base de Thelia par le tien.

Exemple : tu écris dans un module (ex. MonModule) une classe PointVirguleCSVSerializer, qui fait du CSV pour Excel, qui ne mange pas le même CSV que le reste du monde (mais passons) :

<?php
namespace MonModule\Serializer;

use Thelia\Core\Serializer\Serializer\CSVSerializer;

class PointVirguleCSVSerializer extends CSVSerializer
{
    /**
     * @var string CSV delimiter char
     */
    protected $delimiter = ';';

    public function getMimeType()
    {
        return "application/vnd.ms-excel";
    }

    public function getName()
    {
        return "CSV for Excel";
    }

    public function serialize($data)
    {
        $csvRow = parent::serialize($data);

        return utf8_decode(str_replace('.', ',', $csvRow));
    }

    public function unserialize(\SplFileObject $fileObject)
    {
        $data = parent::unserialize($fileObject);

        foreach ($data as &$item) {
            foreach ($item as &$value) {
                if (!preg_match('!!u', $value)) {
                    $value = utf8_decode($value);
                }
            }
        }

        return $data;
    }
}

Ensuite, dans le config.xml du module, tu viens écraser le serialiseur par défaut de Thelia, qui a l'iD "thelia.serializer.csv":

    ...
    <services>
        ...
        <service id="thelia.serializer.csv" class="MonModule\Serializer\PointVirguleCSVSerializer">
            <tag name="thelia.serializer" />
        </service>
        ...
    </services>
    ...

Et voilà.


OpenStudio Toulouse

Online

#50 Re: Import produit csv

(09-03-2021 18:49:04)


Aaaaaaaaah Merciiiiiiiiiiiiii!

Je sais pour le CSV Excel... mais bon... beaucoup de monde utilise ça pour générer des CSVs...

Sinon à l'upload dans Import, on est obligé de sélectionner "tous les fichiers" pour pouvoir charger un .csv

Last edited by Elyos (09-03-2021 18:51:21)


Aide les autres, ils t'aideront en retour.