Fonction de type OnAfterImport ?

  • Posts: 134
  • Thank you received: 4
  • Hikashop Business
9 years 2 months ago #213356

-- HikaShop version -- : last

Bonjour,

La fonction d'import via CSV me fait des misères que j'ai identifié :

  • Problème d'accent si le excel à shooter l'UTF8
  • l'ordre des related_product qui se réinitialise systématiquement (et c'est la galère quand il y a une suite logique dans les options)
)

J'aimerai corriger avec l'éxécution de requêtes dans un trigger qui s'exécuterai après chaque import un genre de onAfterImport tout comme nous avons un onAfterOrderCreate ou autres dans le meme style.

Avez vous une idée pour réaliser cela ?

Merci d'avance

Please Log in or Create an account to join the conversation.

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
9 years 2 months ago #213358

Bonjour,

1. Le système d'import a un dropdown où vous pouvez sélectionner l'encodage du fichier à importer. Donc normalement, que ce soit UTF8, ou ISO-8859-1, ou Windows-1252 ou un autre, il suffit de sélectionner le bon encodage avant l'import et les accents s'afficheront comme il faut.

2. L'import enregistre les related dans l'ordre du CSV, donc cela ne devrait pas poser de soucis non plus.

3. OnAfterImport, c'est un peu vague pour pouvoir vous répondre sur la meilleur façon de procéder.
Comment allez vous faire vos imports ? Toujours via l'interface Products>Import ? Via des actions de masses avec un filtre "import CSV" ? Via le plugin Hikashop product cron update ? Un mix de ces possibilités ?
En fonction de la réponse, ma réponse sera différente.

Please Log in or Create an account to join the conversation.

  • Posts: 134
  • Thank you received: 4
  • Hikashop Business
9 years 2 months ago #213386

Bonjour Nicolas,

Je me sens un peu ridicule, en effet je laissais le charset sur inconnu en pensant qu'il prendrait correctement un fichier fraichement exporté, du coup si je met UTF-8 c'est parfait.

En revanche, je maintient le problème d'ordre des related. En effet l'ordre est celui du CSV et non celui de ordering. Du coup peut être est lors de l'export des données que l'ordering devrait être pris en compte ?

Toujours est il que l'ordering n'est pas conservé et que j'aimerai (tant que ce problème n'est pas réglé) pouvoir exécuter une requête pour remettre l'ordre correct après chaque import (UNIQUEMENT des imports VIA l'interface Products>import), D'où mon idée de trigger onAtferImportViaProductInterface :)

Merci d'avance de me dire ou je pourrais intégrer ma requête dans le process, j'ai tenté dans le fichier import.php sans succès.

Cordialement,

Please Log in or Create an account to join the conversation.

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
9 years 2 months ago #213394

Bonjour,

Donc vous confirmez aussi que l'order des related dans le CSV est bien pris en compte et que le problème n'est pas dans l'import.

Vu que le problème est dans l'export, c'est l'export qu'il faut corriger.
Essayez voir de changer la ligne:
$query = 'SELECT * FROM '.hikashop_table('product_related').' AS a WHERE a.product_id IN ('.implode(',',$ids).')';

en:
$query = 'SELECT * FROM '.hikashop_table('product_related').' AS a WHERE a.product_id IN ('.implode(',',$ids).') ORDER BY a.product_related_ordering';

dans administrator/components/com_hikashop/classes/product.php et cela devrait ordonner comme il faut les related durant l'export.

Please Log in or Create an account to join the conversation.

  • Posts: 134
  • Thank you received: 4
  • Hikashop Business
9 years 2 months ago #213417

Bonjour Nicolas,

A vrai dire cette après midi j'ai testé de modifier manuellement l'order des produits dans le fichier et cela n'a rien changer lors de l'import. Cela confirmerai bien que les valeurs du product_related_ordering ne sont conservé.

D'ailleurs, je n'arrive pas a trouver de ligne ou la valeur serait conserver lors de l'import, cela expliquerai qu'après chaque import toutes les valeurs product_related_ordering de la table x_hikashop_product_related reprenne leur valeur par defaut.

Toujours pas d'idée pour l'endroit ou je pourrais insérer ma requête d'après import ?

Merci d'avance

PS : j'ai bien effectué votre modification dans le fichier designé, les exports sont rigoureusement identitique

Last edit: 9 years 2 months ago by clicetcom.

Please Log in or Create an account to join the conversation.

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
9 years 2 months ago #213422

Bonjour,

Bon, éditez le fichier "show" de la vue "import" pour le template de votre backend.
Là vous pouvez ajouter ce code au début:

<?php
if(JRequest::getCmd('importfrom') != ''){
 $db = JFactory::getDBO();
 $db->setQuery('YOUR QUERY');
 $db->query();
} ?>

The following user(s) said Thank You: clicetcom

Please Log in or Create an account to join the conversation.

  • Posts: 134
  • Thank you received: 4
  • Hikashop Business
9 years 2 months ago #213440

Génial Nicolas, merci beaucoup je peux ainsi réordonner mes options qui se trouve réinitialiser après chaque import. C'est parfait.

A noté pour ceux qui tomberai sur le topic que j'ai du faire la modif sur le fichier source directement, si la vue est modifié via le dossier html du Template, cela le fichier ne se charge pas correctement.

Merci encore !

Please Log in or Create an account to join the conversation.

Time to create page: 0.070 seconds
Powered by Kunena Forum