Jump to content

MAJ Prix vente par tranche


Recommended Posts

Bonjour tout le monde,

 

j'ai créer un petit script qui mettra a jour le prix de vente des produits selon le prix d'achat en appliquant une marge différente pour chaque tranche.

 

Exemple :

 

si le prix d'achat est entre 0 et 100€ ajout d'une marge de 20%.

si le prix d'achat est entre 100 et 200€ ajout d'une marge de 18%.

si le prix est entre 200 et 400 euros, application d'une marge de 14%

ainsi de suite ...

 

le problème c'est que qu'on j'exécute le script les prix de vente sur la boutique passe a 0€ quelque soit le prix d'achat.

 

alors je me tourne vers vous pour me corriger car je suis débutant en PHP/MYSQL.

 

Voilà le script :

 

<?php
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=ma_base', 'utilisateur', 'mot de passe');

// Selection des produits
$rep = $bdd->query('SELECT * FROM ps_product');

while ($data = $rep->fetch())
{

	// Si le prix est entre 0 et 50 euros, application d'une marge de 20%
	if ( $data['wholesale_price'] >= 0 AND $data['wholesale_price'] <= 50 )
		{
			$prix = $data['wholesale_price'] + $data['wholesale_price'] * 20/100;
			$bdd->exec('UPDATE ps_product SET price = $prix');
		}

	// Si le prix est entre 50 et 100 euros, application d'une marge de 18%
	if ( $data['wholesale_price'] > 50 AND $data['wholesale_price'] <= 100 )
		{
			$prix = $data['wholesale_price'] + $data['wholesale_price'] * 18/100;
			$bdd->exec('UPDATE ps_product SET price = $prix');
		}

	// Si le prix est entre 100 et 200 euros, application d'une marge de 16%
	if ( $data['wholesale_price'] > 100 AND $data['wholesale_price'] <= 200 )
		{
			$prix = $data['wholesale_price'] + $data['wholesale_price'] * 16/100;
			$bdd->exec('UPDATE ps_product SET price = $prix');
		}

	// Si le prix est entre 200 et 400 euros, application d'une marge de 14%
	if ( $data['wholesale_price'] > 200 AND $data['wholesale_price'] <= 400 )
		{
			$prix = $data['wholesale_price'] + $data['wholesale_price'] * 14/100;
			$bdd->exec('UPDATE ps_product SET price = $prix');
		}

	// Si le prix est entre 400 et 600 euros, application d'une marge de 12%
	if ( $data['wholesale_price'] > 400 AND $data['wholesale_price'] <= 600 )
		{
			$prix = $data['wholesale_price'] + $data['wholesale_price'] * 12/100;
			$bdd->exec('UPDATE ps_product SET price = $prix');
		}

	// Si le prix est entre 600 et 1000 euros, application d'une marge de 10%
	if ( $data['wholesale_price'] > 600 AND $data['wholesale_price'] <= 1000 )
		{
			$prix = $data['wholesale_price'] + $data['wholesale_price'] * 10/100;
			$bdd->exec('UPDATE ps_product SET price = $prix');
		}			

	// Si le prix est superieur à 1000 euros, application d'une marge de 8%
	if ( $data['wholesale_price'] > 1000 AND $data['wholesale_price'] <= 10000 )
		{
			$prix = $data['wholesale_price'] + $data['wholesale_price'] * 8/100;
			$bdd->exec('UPDATE ps_product SET price = $prix');
		}		

}
$rep->closeCursor();	

}
catch (Exception $e)
{
       die('Erreur : ' . $e->getMessage());
}


?>

 

Merci

Link to comment
Share on other sites

  • 2 weeks later...

Salut,

 

Le souci, c'est que tu utilises des simple quotes ('') pour écrire tes requetes, et que ainsi PHP n'interprete pas $prix.

 

Essaie plutot :

$bdd->exec('UPDATE ps_product SET price = ' . $prix);

 

De plus, il n'y a pas de clause WHERE dans tes requetes UPDATE, ce qui fait que tu mets à jour TOUS les prix à chaque requete !!!

Il faut que tu ajoutes :


$bdd->exec('UPDATE ps_product SET price = ' . $prix . ' WHERE id_product = ' . $data);

 

A+

Link to comment
Share on other sites

  • 3 weeks later...

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...