Durant les derniers mois j’ai travaillé de manière régulière avec la solution concurrente “Magento” qui permets le chargement et la récupération d’informations sur les objets de manière très souple via n’importe quel champ.
Cette fonctionnalité n’est malheureusement pas disponible à ce jour avec Prestashop, (version 1.5.4.1 à ce jour ), mais avec le mécanisme des override, il est relativement aisé d’adapter cette logique.

Mon besoin a été motivé par la nécessité d’ajouter de nombreux champs spécifiques sur un site prestashop en cours de développement.

/!\ Cette méthode nécessite au minimum php en version 5.3 pour fonctionner.

Voici les codes à mettre en place dans le fichier override/classes/ObjectModel.php

<?php
 
abstract class ObjectModel extends ObjectModelCore
{
 
    /**
     * Rajout de la possibilité de récupérer un objet par n'importe quel champ
     * (Il est nécessaire de l'instancier avant)
     * 
     * @param string $field champ de la table 
     * @param string $value valeur du champ de la table
     * @return int id_object : identifiant de l'objet
     */
    public static function getObjectIdByField($field = '', $value='') {
 
		$className = get_called_class();   
        return Db::getInstance()->getValue("SELECT ".