Bonjour,
En effet, je n'avais pas pensé à permettre la recherche dans les données des variantes.
Changez le même bout de code qu'avant par:
$columns = array('product_code', 'product_name');
$joins = array(
'INNER JOIN ' . hikashop_table('product_category') . ' AS pc ON p.product_id = pc.product_id',
'INNER JOIN ' . hikashop_table('category') . ' AS c ON c.category_id = pc.category_id',
);
if($load_variants) {
$searchMap[] = 'v.product_code';
$searchMap[] = 'v.product_name';
$joins[] = 'LEFT JOIN ' . hikashop_table('product') . ' AS v ON p.product_id = v.product_parent_id';
}
if(hikashop_level(1)) {
$cat = null;
$fieldsClass = hikashop_get('class.field');
$fields = $fieldsClass->getData('all', 'product', false, $cat);
if(!empty($fields)) {
foreach($fields as $field) {
if($field->field_type == "customtext")
continue;
$columns[] = $field->field_namekey;
}
}
}
$searchMap = array();
foreach($columns as $column) {
$searchMap[] = 'p.'.$column;
if($load_variants) {
$searchMap[] = 'v.'.$column;
}
}
$search_filter = '('.implode(" LIKE $searchStr OR ",$searchMap)." LIKE $searchStr".')';
//
//
$query = 'SELECT p.*, c.category_id, c.category_right, c.category_left FROM ' . hikashop_table('product') . ' AS p '.
implode(' ', $joins).
' WHERE '.$search_filter.' AND p.product_type != \'trash\''.
' ORDER BY p.product_name ASC';
et cela permettra de faire la recherche parmi les données des variantes également.
Nous allons voir pour rajouter cela dans la prochaine version d'HikaShop.
Par contre, pour votre second point, je pense que le souci est au niveau de votre scanner de code barre.
Un scanner de code barre en usb lit les caractères du code barre et envoi des signaux correspondant, comme si vous aviez appuyé sur votre clavier.
Donc si le code barre scanné n'est qu'une suite de numéro et que vous avez le focus sur le champ de recherche, scanner le code barre va uniquement avoir pour effet de mettre le numéro du code barre dans le champ et de lancer la recherche automatiquement et vous afficher les résultats. Le scanner n'est pas sensé envoyer le signal de la touche "entrée" et valider le formulaire de la popup.
Si c'est le cas de votre coté, alors c'est une question de configuration du scanner de code barre je pense.
En cherchant un peu en ligne, j'ai vu que pas mal de scanner de code barre ont une fonction qui permet de rajouter / enlever des caractères au numéro lu par le scanner.
Par exemple, pour le modèle
www.amazon.fr/NetumScan-Scanner-codes-ba...TG9nQ2xpY2s9dHJ1ZQ==
le constructeur fourni cette documentation:
download.gzxlscan.com/pdf/Prefix_suffix_...Scanner_V18.7.31.pdf
Et elle permet par exemple de rajouter comme suffix l'appui sur la touche entrée.
Donc je suppose que vous (votre client ?) avez peut être configuré votre scanner pour faire cela et ainsi automatiquement valider le filtrage de l'ancienne interface de la popup où la recherche n'était pas automatique.