- Posts: 24
- Thank you received: 1
Code de variantes - modification des suffixes par défault
9 years 1 month ago - 9 years 1 month ago #275518
by vapurete
-- HikaShop version -- : 3.1.1
-- PHP version -- : 7
Le code de produit généré par les variantes est toujours rendu de la façon suivante:
[CODEdePRODexistant] _Variant1[Caracteristic_id] _Variant2[Caracteristic_id]
J'ai trouvé un vieux post qui indiquait des modifications à apporter afin que le code de variable soit le caracteristic_alias et sans les underscore(_) ( donnée préalablement créée avec phadmin) toutefois il semblerait que j’ai des problèmes a traduire le code du poste étant devenu, semblerait-il, obsolète. Lorsque j'apporte les modifications dans le fichier suggeér, les valeurs des variantes ne s'affichent plus sur le tableau.
Voici le post auquel je fais référence
www.hikashop.com/forum/4-how-to/34414-ch...iant-code.html#34474
-- PHP version -- : 7
Le code de produit généré par les variantes est toujours rendu de la façon suivante:
[CODEdePRODexistant] _Variant1[Caracteristic_id] _Variant2[Caracteristic_id]
J'ai trouvé un vieux post qui indiquait des modifications à apporter afin que le code de variable soit le caracteristic_alias et sans les underscore(_) ( donnée préalablement créée avec phadmin) toutefois il semblerait que j’ai des problèmes a traduire le code du poste étant devenu, semblerait-il, obsolète. Lorsque j'apporte les modifications dans le fichier suggeér, les valeurs des variantes ne s'affichent plus sur le tableau.
Voici le post auquel je fais référence
www.hikashop.com/forum/4-how-to/34414-ch...iant-code.html#34474
Last edit: 9 years 1 month ago by vapurete.
Please Log in or Create an account to join the conversation.
9 years 1 month ago #275537
by nicolas
Replied by nicolas on topic Code de variantes - modification des suffixes par défault
Bonjour,
En effet cela a changé.
Je pense que maintenant, il va falloir changer cette ligne:
en:
toujours dans le fichier administrator/components/com_hikashop/classes/product.php
En effet cela a changé.
Je pense que maintenant, il va falloir changer cette ligne:
Code:
$concat[] = 'c'.$k.'.characteristic_id';
Code:
$concat[] = 'c'.$k.'.characteristic_alias';
Please Log in or Create an account to join the conversation.
9 years 1 month ago - 9 years 1 month ago #275598
by vapurete
Replied by vapurete on topic Code de variantes - modification des suffixes par défault
Last edit: 9 years 1 month ago by vapurete.
Please Log in or Create an account to join the conversation.
9 years 1 month ago #275600
by nicolas
Replied by nicolas on topic Code de variantes - modification des suffixes par défault
Bonjour,
Ce que vous décrivez indique que le système n'arrive pas à créer ces entrées suite à la modification car il n'arrive pas à découper correctement le code produit.
En effet, le code plus bas:
génère les entrées à ajouter dans la table hikashop_variant pour les nouvelles variantes créées. Et il se base sur les codes des variantes.
Il va falloir changer le code:
et remplacer $code, qui contient du coup l'alias de la valeur de caractéristique par l'id correspond dans hikashop_characteristic.
Donc il va falloir faire une nouvelle requête en plus pour chaque entrée ou alors précharger cela avant...
Quelque chose comme cela par exemple:
Ce que vous décrivez indique que le système n'arrive pas à créer ces entrées suite à la modification car il n'arrive pas à découper correctement le code produit.
En effet, le code plus bas:
Code:
foreach($new_variants as $v) {
if((int)$v->product_parent_id != (int)$product_id) {
foreach($variants[(int)$v->product_parent_id] as $k => $variant) {
if($auto_variants == 2 && in_array($k, $characteristic_ids))
continue;
$data[] = (int)$variant . ',' . (int)$v->product_id;
}
}
$codes = explode('_', $v->product_code);
$codes = array_slice($codes, -$count_values);
foreach($codes as $code) {
if(isset($value_characteristic[ (int)$code ]))
$data[] = (int)$code . ',' . (int)$v->product_id;
}
}
Il va falloir changer le code:
Code:
if(isset($value_characteristic[ (int)$code ]))
$data[] = (int)$code . ',' . (int)$v->product_id;
Donc il va falloir faire une nouvelle requête en plus pour chaque entrée ou alors précharger cela avant...
Quelque chose comme cela par exemple:
Code:
$this->database->setQuery('SELECT characteristic_id FROM #__hikashop_characteristic WHERE characteristic_alias = '.$this->database->Quote($code));
$code = $this->database->loadResult();
if(isset($value_characteristic[ (int)$code ]))
$data[] = (int)$code . ',' . (int)$v->product_id;
Please Log in or Create an account to join the conversation.
9 years 1 month ago #275733
by vapurete
Replied by vapurete on topic Code de variantes - modification des suffixes par défault
Merci mon ami!
effectivement c'était a bonne solution de modif à apporté,Merci! Merci! maintenant autres 2 petites questions et j'aurai terminé.
1. Je voudrais le code généré sans le __ de séparation lors de la composition? je t'avouerais que les . '_' . y en a des tonnes dans le product.php lesquelles dois-je retirer?
2. a y t il une place ou mettre ce fichier classe pour ne pas qu 'il soit ecrasé lors de la prochaine mis à jour?
Merci encore !
effectivement c'était a bonne solution de modif à apporté,Merci! Merci! maintenant autres 2 petites questions et j'aurai terminé.
1. Je voudrais le code généré sans le __ de séparation lors de la composition? je t'avouerais que les . '_' . y en a des tonnes dans le product.php lesquelles dois-je retirer?
2. a y t il une place ou mettre ce fichier classe pour ne pas qu 'il soit ecrasé lors de la prochaine mis à jour?
Merci encore !
Please Log in or Create an account to join the conversation.
9 years 1 month ago #275736
by nicolas
Replied by nicolas on topic Code de variantes - modification des suffixes par défault
Bonjour,
1. Enlever les _ de séparation va être problématique. En effet la ligne:
$codes = explode('_', $v->product_code);
se base justement sur ce caractère pour pouvoir découper le code produit des variantes (sans parler d'autres morceaux de cette grosse fonction qui gère les ajouts/modifications/suppression de variantes).
Donc pour faire cela, il faudrait revoir un gros morceau de cette fonction... bonne chance
Vous êtes parti pour plusieurs semaines de développement là et vous avez intérêt de bien vous y connaitre en PHP et MySQL car c'est très compliqué.
2. C'est possible avec un plugin d'override de classes par exemple:
www.hikashop.com/forum/2-general-talk-ab...custom-features.html
1. Enlever les _ de séparation va être problématique. En effet la ligne:
$codes = explode('_', $v->product_code);
se base justement sur ce caractère pour pouvoir découper le code produit des variantes (sans parler d'autres morceaux de cette grosse fonction qui gère les ajouts/modifications/suppression de variantes).
Donc pour faire cela, il faudrait revoir un gros morceau de cette fonction... bonne chance
Vous êtes parti pour plusieurs semaines de développement là et vous avez intérêt de bien vous y connaitre en PHP et MySQL car c'est très compliqué.
2. C'est possible avec un plugin d'override de classes par exemple:
www.hikashop.com/forum/2-general-talk-ab...custom-features.html
The following user(s) said Thank You: vapurete
Please Log in or Create an account to join the conversation.
Time to create page: 0.221 seconds