Jump to content

RAZ de l'ordre des produits par catégorie


Recommended Posts

Bonjour a tous,

 

Je n'ai pas trouver un module permettant une RAZ de l'ordre des produits par catégorie.

Dans mon cas, un import de données sur une 1.4 puis un upgrade en 1.5 m'ont fait remarqué que l'ordre des produits ne fonctionnais pas ( la colonne "position" etait toujours vide )

 

Du coup j'ai crée ce petit script pour résoudre mon problème :

<?php
define('_DB_SERVER_', 'localhost');
define('_DB_NAME_', 'prestashop_bdd');
define('_DB_USER_', 'prestashop_bdd_user');
define('_DB_PASSWD_', 'password');
define('MSG_CONNEXION_IMPOSSIBLE', 'Erreur de connexion a la bdd !');
$MAJ_position_sql='';
$i=0; 
$last_cat = 0;

if (! mysql_connect(_DB_SERVER_, _DB_USER_, _DB_PASSWD_)) die(MSG_CONNEXION_IMPOSSIBLE.' : ' . mysql_error());
if (! mysql_select_db(_DB_NAME_)) die (MSG_CONNEXION_IMPOSSIBLE.' : ' . mysql_error());


$result = mysql_query("SELECT ps.* FROM `ps_category_product` ps WHERE 1 ORDER BY ps.id_category") or trigger_error(mysql_error());

while($row = mysql_fetch_array($result)){ 

	if($row['id_category']!= $last_cat){
		//echo '<hr />';
		$last_cat = $row['id_category'];
		$i=0;
	}
	$i++;
	$new_position=$i;
	//echo $row['id_category'].'|'.$row['id_product'].'|'.$row['position'].'|'.$new_position.'<br />';exit;
	$MAJ_position_sql .= "UPDATE `ps_category_product` SET position='".$new_position."' WHERE id_product='".$row['id_product']."'; " ;
	
}


//MAJ position
//echo $MAJ_position_sql;exit;
mysql_query($MAJ_position_sql) or die(mysql_error());
echo 'RAZ ordre des produits par catégorie terminé !';
?>

Je sais ce n'est pas très propre ni basé sur la doc PS (faut que je m'y penche ;-p ), d'ailleurs si vous avez des remarques ou critiques je suis preneur.

 

Merci a tous et bonne journée

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...