sromain Posted July 31, 2013 Share Posted July 31, 2013 (edited) Bonsoir, Lorsque j'importe mes produits avec un fichier csv, je dois modifier dans ma base de données la colonne "custom" de la table ps_feature_value sinon les caractéristiques de mes produits disparaissent dés que je modifie un produit via le backoffice. J'ai trouvé cette requête: UPDATE ps_feature_value SET custom='0'. Cela me permet de passer la valeur du champ "custom" de 1 à 0 et ainsi de définir les valeurs de mes caractéristiques en "par défaut", ce qui évite qu'elles disparaissent par la suite. Cela étant assez fastidieux j'aurais aimé savoir s'il était possible de définir par défaut la valeur de la colonne "custom" à 0 au lieu de 1. Merci pour votre aide Cordialementnt. Romain Edited August 1, 2013 by sromain (see edit history) Link to comment Share on other sites More sharing options...
indesign47 Posted July 31, 2013 Share Posted July 31, 2013 Bonsoir, à tester BD > ps_configuration > PS_CUSTOMIZATION_FEATURE_ACTIVE > 0 Link to comment Share on other sites More sharing options...
indesign47 Posted July 31, 2013 Share Posted July 31, 2013 AdminImportController.php lors de l'import csv // Features import $features = get_object_vars($product); if (isset($features['features']) && !empty($features['features'])) foreach (explode($this->multiple_value_separator, $features['features']) as $single_feature) { $tab_feature = explode(':', $single_feature); $feature_name = trim($tab_feature[0]); $feature_value = trim($tab_feature[1]); $position = isset($tab_feature[2]) ? $tab_feature[2]: false; if(!empty($feature_name) && !empty($feature_value)) { $id_feature = Feature::addFeatureImport($feature_name, $position); $id_feature_value = FeatureValue::addFeatureValueImport($id_feature, $feature_value); Product::addFeatureProductImport($product->id, $id_feature, $id_feature_value); } } FeatureValue::addFeatureValueImport appel vers la classe FeatureValue.php public static function addFeatureValueImport($id_feature, $name) { $rq = Db::getInstance()->executeS(' SELECT fv.`id_feature_value` FROM '._DB_PREFIX_.'feature_value fv LEFT JOIN '._DB_PREFIX_.'feature_value_lang fvl ON (fvl.`id_feature_value` = fv.`id_feature_value`) WHERE `value` = \''.pSQL($name).'\' AND fv.`id_feature` = '.(int)$id_feature.' GROUP BY fv.`id_feature_value` LIMIT 1 '); if (!isset($rq[0]['id_feature_value']) || !$id_feature_value = (int)$rq[0]['id_feature_value']) { // Feature doesn't exist, create it $feature_value = new FeatureValue(); $languages = Language::getLanguages(); foreach ($languages as $language) $feature_value->value[$language['id_lang']] = strval($name); $feature_value->id_feature = (int)$id_feature; $feature_value->custom = 1; $feature_value->add(); return (int)$feature_value->id; } return (int)$id_feature_value; } à tester changer $feature_value->custom = 1; remplacer $feature_value->custom = 0; Link to comment Share on other sites More sharing options...
sromain Posted August 1, 2013 Author Share Posted August 1, 2013 Bonjour, La deuxième solution fonctionne, cela me met la valeur à 0 par défaut. Pour la requête SQL cela m'a affiché une erreur de syntaxe. Merci pour votre aide 1 Link to comment Share on other sites More sharing options...
indesign47 Posted August 1, 2013 Share Posted August 1, 2013 Bonjour, Si le problème est réglé, mettre le post en [Résolu], Link to comment Share on other sites More sharing options...
sromain Posted August 15, 2013 Author Share Posted August 15, 2013 Bonjour indesign, J'ai un nouveau souci lors de l'importation de mes caractéristiques, en effet dans la valeur par défaut il me met le titre de la caractéristique et plus la valeur de cette dernière (screenshot en pièce jointe), alors que mon csv est identique aux importations précédentes. Avez-vous une idée d'où cela peut venir? Merci d'avance, Romain Link to comment Share on other sites More sharing options...
indesign47 Posted August 15, 2013 Share Posted August 15, 2013 Je suppose que dans la BD les tables ps_feature ps_feature_lang ps_feature_value ps_feature_value_lang reflète cet état ? alors que mon csv est identique aux importations précédentes Un exemple du fichier csv ? Link to comment Share on other sites More sharing options...
sromain Posted August 15, 2013 Author Share Posted August 15, 2013 En pièce jointe vous trouverez un exemple de .csv qui fonctionnait avant. La dernière colonne regroupe toutes les caractéristiques pour l'importation. Celles d'avant ne sont pas utiles c'est seulement pour remplir plus facilement le tableau. Pour la table ps_feature_lang j'ai bien les bons noms des caractéristiques et leur valeur id_lang sur 1. Pour la table ps_feature_value_lang les valeurs sont bonnes et id_lang sur 1 par contre je vois bien les valeurs importées qui sont les titres des caractéristiques ce qui me fait dire que le problème se passe au moment de l'importation. J'ai essayé de les supprimer et de ré-importer mais cela n'a rien changé. 01.zip Link to comment Share on other sites More sharing options...
sromain Posted August 15, 2013 Author Share Posted August 15, 2013 J'ai également remit la valeur à 1 pour "$feature_value->custom = 0;" dans le fichier FeatureValue.php est-ce qu'il y a un autre fichier qui entre en jeux lors de l'importation peut être que je pourrais vérifier de ce côté la? Link to comment Share on other sites More sharing options...
indesign47 Posted August 16, 2013 Share Posted August 16, 2013 (edited) $feature_value->custom = 0; dans le fichier FeatureValue.php Dans la classe FeatureValue.php ou dans le fichier AdminImportController.php ? public static function addFeatureValueImport($id_feature, $name) Edited August 16, 2013 by indesign (see edit history) Link to comment Share on other sites More sharing options...
sromain Posted August 16, 2013 Author Share Posted August 16, 2013 Dans la classe FeatureValue.php pour $feature_value->custom = 0; dans le fichier FeatureValue.php Link to comment Share on other sites More sharing options...
sromain Posted August 17, 2013 Author Share Posted August 17, 2013 J'ai trouvé le problème, c'était dans le fichier AdminImportController.php à la ligne : $feature_value = trim($tab_feature[1]); La valeur était sur 0 au lieu de 1!!! Merci d'avoir cherché avec moi Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now