osCommerce France : Accueil Forum Portail osCommerce France Réponses aux questions Foire aux contributions

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> [resolu]Stock mis à zéro via le bouton rouge, dans l'admin
buvezduvin
posté 9 Jul 2006, 07:55
Message #1


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 193
Inscrit : 2-September 05
Lieu : Dijon
Membre no 6970



Bonjour tlm,

Je cherche un petit bout de code qui permetterait de, via l'admin, mettre le stock d'un article à 0 quand on a cliqué sur le bouton rouge qui lui correspond (avant d'arriver à la fiche produit)

Quelqu'un saurait comment faire?

Ce message a été modifié par buvezduvin - 9 Jul 2006, 14:44.


--------------------
- avec modération -
MS2 fr, ~35 contrib.
Go to the top of the page
 
fissiaux
posté 9 Jul 2006, 08:22
Message #2


5eme dan OSC
Icône de groupe

Groupe : Membres
Messages : 17048
Inscrit : 26-November 03
Lieu : Chez moi
Membre no 1669



Inspire toi de ce qui existe pour le products_status via les boutons rouge et vert, et l'action setflag (en faisant un setstock par exemple), pui stout en haut de adlin/categories.php , dans le switch, tu rajoutes un case de setstock qui va te poser la requete de remise à zéro de ton stock.
Go to the top of the page
 
buvezduvin
posté 9 Jul 2006, 09:14
Message #3


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 193
Inscrit : 2-September 05
Lieu : Dijon
Membre no 6970



oulà confused.gif idea.gif shock.gif
inspiration quand tu nous tiens....
là je bloque..


--------------------
- avec modération -
MS2 fr, ~35 contrib.
Go to the top of the page
 
fissiaux
posté 9 Jul 2006, 09:22
Message #4


5eme dan OSC
Icône de groupe

Groupe : Membres
Messages : 17048
Inscrit : 26-November 03
Lieu : Chez moi
Membre no 1669




dans admin/categories.php, recherches setflag.

Tu le trouves au tout début et vers le bas.

Au début, c'est pour l'action qui doit être faite. Celui de la fin, c'est pour l'affichage du lien.

Tu dois donc "singer" le setflag, en créant une action setstock. La partie du bas, sera l'affichage du lien, celle du début, l'action d'update de la base.
Go to the top of the page
 
oneill
posté 9 Jul 2006, 10:04
Message #5


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 7634
Inscrit : 28-December 03
Lieu : Hollywood les Granits
Membre no 1773



biggrin.gif
C'est vrai que c'est plus clair maintenant !


--------------------
Go to the top of the page
 
Gnidhal
posté 9 Jul 2006, 11:01
Message #6


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 9221
Inscrit : 4-March 03
Lieu : Pau
Membre no 927



CITATION(oneill @ 9 Jul 2006, 11:04) [snapback]183415[/snapback]
biggrin.gif C'est vrai que c'est plus clair maintenant !

biggrin.gif biggrin.gif
Bon pour éclaircir un peu la lanterne de "buvezduvin" (le pinâârd, ça d'vrait êt'e obligatouââââre!... Gérââârd)
par rapport à ta question initiale, il y a plusieurs options :
- une contrib' existe déjà sur http://www.oscommerce.com/community/contributions , parfaite ou approchante, tu l'installes et/ou tu l'adaptes
- Ya pas de contrib' pour toi... tu développes et tu partages (c'est cool pour les copains qui auront les mêmes besoins, c'est grâce à ça qu'osCommerce existe et que le réservoir de contributions donne tant de possibilités)
- tu sais pas faire alors tu oublies ton besoin et tu fais sans avec les options existantes

Mais l'option de venir demander à la communauté de développer pour toi n'existe pas.
Une commande, ça se passe avec une entreprise ou un professionnel qui te demandera des honoraires pour ça.

Le but de l'open source n'est pas de concurrencer les professionnels d'un domaine, mais de partager des compétences à plusieurs afin de faire de chaque développement ou adaptation personnelle une brique d'un tout.
ça permet ainsi à chacun de profiter des avancées des autres en échange des siennes. On va plus loin ensemble, et c'est gratuit.
Un principe idéal en somme.
Mais pour que cela fonctionne, il faut respecter la règle du jeu sinon le projet collectif devient un projet individuel sans avantage pour personne. Un seul s'enrichit sur le dos des autres.
Je sais, cela va à l'encontre des principes de profits commerciaux du libéralisme mondial, paradoxe s'il en est, avec le développement d'un outil fait pour vendre.
Mais c'est ainsi ici.

Alors options :
1/ tu as trouvé chaussure à ton pied dans le réservoir sus-cité et tu nous indiques laquelle, partageant ainsi ton expérience : ce topic reste en "contributions"
2/ tu décides de développer un bricolo, tu te mets au boulot et demande un peu d'aide à la communauté sur les détails d'avancement de ton projet et ce topic va en "échange développeurs"
3/ tu décides de lâcher l'affaire car tu ne sais pas faire et ne vois vraiment pas comment on s'y prend... ce topic va en "blablabla".

Que fait-on ? smile.gif


--------------------
Tout d'abord : - Ni Hotline ni Service Après Vente, ces forums sont un lieu d'échange. BIEN POSER SA QUESTION (généralités)
Les "Informations Importantes" que vous devez ABSOLUMENT avoir lues :
Règlement, Bien poser sa question dans ces forums et Bien utiliser les Forums.
Les raccourcis pour gagner du temps : la FAQ, les PDF de la Doc (MS2-fr): PDF-V1 et PDF-V2, le moteur de Recherche sur les forums , la Liste des Contributions de Corbin.

----------------------------- Quelques sites de référence ---------------------------
PHP: Le site du Zéro et PHP Débutant avec la DOC en français -- HTML: Self HTML - WebProgrammation -- CSS: OpenWeb - AlsaCréations - CSS/Edge -- Autres ressources: - XajaX - highslide js
Les bons outils : EasyPHP - WAMP-5 - - Notepad++ - Firefox et son extension WebDeveloper
Le gène idéal c'est le gène original. Le génie des halles est un Génie des Alpages qui tente d'être à la page. (Merci f'murrr pour les cours de philosophie de chien)
Go to the top of the page
 
buvezduvin
posté 9 Jul 2006, 11:13
Message #7


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 193
Inscrit : 2-September 05
Lieu : Dijon
Membre no 6970



Pas de problème Gnidhal, faut juste laisser un peu plus d'une heure à l'amateur que je suis pour essayer de développer quelque chose... confused.gif
(ps j'avais bien compris le principe d'un forum d'entraide, le ton de mon premier message était-il incorrect?)

Je vais chercher la contrib et vous tiens au courant

Ce message a été modifié par buvezduvin - 9 Jul 2006, 11:16.


--------------------
- avec modération -
MS2 fr, ~35 contrib.
Go to the top of the page
 
Gnidhal
posté 9 Jul 2006, 11:34
Message #8


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 9221
Inscrit : 4-March 03
Lieu : Pau
Membre no 927



CITATION(buvezduvin @ 9 Jul 2006, 12:13) [snapback]183425[/snapback]
le ton de mon premier message était-il incorrect?

Je ne pense pas qu'il t'aie été reproché smile.gif
Mon explication ci-dessus est générique et s'adresse à tous ceux qui n'auraient pas pigé le pincipe de ces forums et de l'esprit OpenSource (et ils sont nombreux).
En même temps il essaye de mettre au clair ce topic pour lui donner une place et te donne les pistes de recherche.
Ta question était "Quelqu'un saurait-il comment faire"
Fissiaux te donne une piste et tu réponds "je sèche". De là mon explication de choix à 3 options. biggrin.gif tongue.gif


--------------------
Tout d'abord : - Ni Hotline ni Service Après Vente, ces forums sont un lieu d'échange. BIEN POSER SA QUESTION (généralités)
Les "Informations Importantes" que vous devez ABSOLUMENT avoir lues :
Règlement, Bien poser sa question dans ces forums et Bien utiliser les Forums.
Les raccourcis pour gagner du temps : la FAQ, les PDF de la Doc (MS2-fr): PDF-V1 et PDF-V2, le moteur de Recherche sur les forums , la Liste des Contributions de Corbin.

----------------------------- Quelques sites de référence ---------------------------
PHP: Le site du Zéro et PHP Débutant avec la DOC en français -- HTML: Self HTML - WebProgrammation -- CSS: OpenWeb - AlsaCréations - CSS/Edge -- Autres ressources: - XajaX - highslide js
Les bons outils : EasyPHP - WAMP-5 - - Notepad++ - Firefox et son extension WebDeveloper
Le gène idéal c'est le gène original. Le génie des halles est un Génie des Alpages qui tente d'être à la page. (Merci f'murrr pour les cours de philosophie de chien)
Go to the top of the page
 
buvezduvin
posté 9 Jul 2006, 12:14
Message #9


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 193
Inscrit : 2-September 05
Lieu : Dijon
Membre no 6970



J'ai inséré ceci dans le haut de categories.php

if (tep_not_null($action)) {
switch ($action) {
case 'setflag':
if ( ($HTTP_GET_VARS['flag'] == '0') || ($HTTP_GET_VARS['flag'] == '1') ) {
if (isset($HTTP_GET_VARS['pID'])) {
tep_set_product_status($HTTP_GET_VARS['pID'], $HTTP_GET_VARS['flag']);
tep_set_product_quantity('0', $HTTP_GET_VARS['flag']);

}

if (USE_CACHE == 'true') {
tep_reset_cache_block('categories');
tep_reset_cache_block('also_purchased');
}
}


puis j'ai ajouté cela ligne 244 (dupliquage)
'products_quantity' => tep_db_prepare_input($HTTP_POST_VARS['products_quantity']),

Mais ça me met cela;
Fatal error: Call to undefined function: tep_set_product_quantity() in categories.php on line 26


--------------------
- avec modération -
MS2 fr, ~35 contrib.
Go to the top of the page
 
mosaic
posté 9 Jul 2006, 12:21
Message #10


Ceinture noire OSC
Icône de groupe

Groupe : Modérateurs
Messages : 2908
Inscrit : 24-October 04
Lieu : Quimper ( Finistère )
Membre no 3567



fais une recherche avec tep_set_product_status dans tes fichiers de l'admin et tu t'apercevras que cette fonction est définie dans un autre fichier.

Ainsi, il te suffira de rajouter à côté ta nouvelle fonction blush.gif


--------------------
#mosaic {
autodidacte: max;
derision: min;
ms3: never;
occupation: 9999;
latitude : 48;
longitude : -4.1;
competent: none !important;
}

documentation MS2 / F.A.Q. / Contribes FR / Contribes US
Go to the top of the page
 
buvezduvin
posté 9 Jul 2006, 12:35
Message #11


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 193
Inscrit : 2-September 05
Lieu : Dijon
Membre no 6970



Merci Mosaic

J'ai rajouté dans admin/fonction/general.php

CITATION
////
// Sets the stock of a product
function tep_set_product_quantity($products_id, $status) {
if ($status == '1') {
return tep_db_query("update " . TABLE_PRODUCTS . " set products_quantity = '300', products_last_modified = now() where products_id = '" . (int)$products_id . "'");
} elseif ($status == '0') {
return tep_db_query("update " . TABLE_PRODUCTS . " set products_quantity = '0', products_last_modified = now() where products_id = '" . (int)$products_id . "'");
} else {
return -1;
}
}


juste après celle concernant le statut


j'aimerai que quand je clique sur le bouton rouge le stock passe à 0 et quand je reclique sur le bouton vert le stock passe à 300

avec ce code je n'ai pas de message d'erreur mais le stock ne bouge pas...


--------------------
- avec modération -
MS2 fr, ~35 contrib.
Go to the top of the page
 
Gnidhal
posté 9 Jul 2006, 12:42
Message #12


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 9221
Inscrit : 4-March 03
Lieu : Pau
Membre no 927



et je pense que ça serait plutôt
tep_set_product_quantity($HTTP_GET_VARS['pID'], 0);
et réaliser une fonction nommée tep_set_product_quantity qui va mettre le stock à 0 (ou à la valeur que tu veux) à partir de la variable $HTTP_GET_VARS['pID'] qui contient normalement l'index de ton produit.

cette fonction doit peut-être ajoutée dans functions/general.php
elle commencerait par
function tep_set_product_quantity( $products_id, $quantity=0) {

/* et la dedans une requête qui va mettre ta table products à jour sur l'index products_id avec un stock à $quantity (égal à 0 si non spécifié dans l'appel de ta fonction) */
}


--------------------
Tout d'abord : - Ni Hotline ni Service Après Vente, ces forums sont un lieu d'échange. BIEN POSER SA QUESTION (généralités)
Les "Informations Importantes" que vous devez ABSOLUMENT avoir lues :
Règlement, Bien poser sa question dans ces forums et Bien utiliser les Forums.
Les raccourcis pour gagner du temps : la FAQ, les PDF de la Doc (MS2-fr): PDF-V1 et PDF-V2, le moteur de Recherche sur les forums , la Liste des Contributions de Corbin.

----------------------------- Quelques sites de référence ---------------------------
PHP: Le site du Zéro et PHP Débutant avec la DOC en français -- HTML: Self HTML - WebProgrammation -- CSS: OpenWeb - AlsaCréations - CSS/Edge -- Autres ressources: - XajaX - highslide js
Les bons outils : EasyPHP - WAMP-5 - - Notepad++ - Firefox et son extension WebDeveloper
Le gène idéal c'est le gène original. Le génie des halles est un Génie des Alpages qui tente d'être à la page. (Merci f'murrr pour les cours de philosophie de chien)
Go to the top of the page
 
fissiaux
posté 9 Jul 2006, 12:50
Message #13


5eme dan OSC
Icône de groupe

Groupe : Membres
Messages : 17048
Inscrit : 26-November 03
Lieu : Chez moi
Membre no 1669



Et pourquoi l'avoir mis dans

CITATION
case 'setflag':


Cela va te poser des désagrément. Je t'avis dit de le singer avec un

CITATION
case 'setstock':

Go to the top of the page
 
buvezduvin
posté 9 Jul 2006, 13:16
Message #14


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 193
Inscrit : 2-September 05
Lieu : Dijon
Membre no 6970



heu.. ça veut dire quoi singer?
Le fait de le singer avec un case 'setstock' ne m'aurait-il pas entrainé l'apparition d'un nouvel onglet à cocher? (hors je n'en veux qu'un qui fasse tout)

Gnidhal, ne faut-il pas aussi que je laisse '$status' dans les variables de la fonction?

Ce message a été modifié par buvezduvin - 9 Jul 2006, 13:28.


--------------------
- avec modération -
MS2 fr, ~35 contrib.
Go to the top of the page
 
fissiaux
posté 9 Jul 2006, 13:46
Message #15


5eme dan OSC
Icône de groupe

Groupe : Membres
Messages : 17048
Inscrit : 26-November 03
Lieu : Chez moi
Membre no 1669



Singer = copier.

J'avais pas compris que tu en voulais un qui fasse tout. DOnc quand tu vas activer ou désactiver ton produit, le stock sera mis à zéro. C'est bien cela ?
Go to the top of the page
 
buvezduvin
posté 9 Jul 2006, 13:59
Message #16


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 193
Inscrit : 2-September 05
Lieu : Dijon
Membre no 6970



Oui c'est cela,
ça avance de mon côté, j'arrive à faire changer la valeur dans un sens mais pas la remettre dans l'autre.. j'y travail

Voilà où j'en suis dans general.php
CITATION

////
// Sets the stock of a product
function tep_set_product_quantity($products_id, $quantity) {
if ($quantity > '0') {
return tep_db_query("update " . TABLE_PRODUCTS . " set products_quantity = '0', products_last_modified = now() where products_id = '" . (int)$products_id . "'");
} elseif ($quantity == '0') {
return tep_db_query("update " . TABLE_PRODUCTS . " set products_quantity = '300', products_last_modified = now() where products_id = '" . (int)$products_id . "'");
} else {
return -1;
}
}


et avec dans categorie.php:
CITATION

if (tep_not_null($action)) {
switch ($action) {
case 'setflag':
if ( ($HTTP_GET_VARS['flag'] == '0') || ($HTTP_GET_VARS['flag'] == '1') ) {
if (isset($HTTP_GET_VARS['pID'])) {
tep_set_product_status($HTTP_GET_VARS['pID'], $HTTP_GET_VARS['flag']);
tep_set_product_quantity($HTTP_GET_VARS['pID'], 0);
}

if (USE_CACHE == 'true') {
tep_reset_cache_block('categories');
tep_reset_cache_block('also_purchased');
}
}


--------------------
- avec modération -
MS2 fr, ~35 contrib.
Go to the top of the page
 
fissiaux
posté 9 Jul 2006, 14:04
Message #17


5eme dan OSC
Icône de groupe

Groupe : Membres
Messages : 17048
Inscrit : 26-November 03
Lieu : Chez moi
Membre no 1669



QU'est ce que cela veut dire :

CITATION
j'arrive à faire changer la valeur dans un sens mais pas la remettre dans l'autre


Tu mets à O, OK? mais dans l'autre sens, cela veut dire quoi ?????
Go to the top of the page
 
buvezduvin
posté 9 Jul 2006, 14:06
Message #18


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 193
Inscrit : 2-September 05
Lieu : Dijon
Membre no 6970



quand je reclique sur le bouton vert mon stock repasse de 0 à 300


--------------------
- avec modération -
MS2 fr, ~35 contrib.
Go to the top of the page
 
fissiaux
posté 9 Jul 2006, 14:10
Message #19


5eme dan OSC
Icône de groupe

Groupe : Membres
Messages : 17048
Inscrit : 26-November 03
Lieu : Chez moi
Membre no 1669





Ce qui picolent ont des règles de gestion particulière....enfin.

Essaie en remplacant

CODE
tep_set_product_quantity($HTTP_GET_VARS['pID'], 0);


par

CODE
tep_set_product_quantity($HTTP_GET_VARS['pID'], $HTTP_GET_VARS['flag']);



et en changeant ta fonction par :


CODE
function tep_set_product_quantity($products_id, $quantity) {
if ($quantity == '0') {
return tep_db_query("update " . TABLE_PRODUCTS . " set products_quantity = '0', products_last_modified = now() where products_id = '" . (int)$products_id . "'");
} else {
return tep_db_query("update " . TABLE_PRODUCTS . " set products_quantity = '300', products_last_modified = now() where products_id = '" . (int)$products_id . "'");
}
}
Go to the top of the page
 
buvezduvin
posté 9 Jul 2006, 14:27
Message #20


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 193
Inscrit : 2-September 05
Lieu : Dijon
Membre no 6970



Tout marche!!
Merci à vous tous pour cette fructueuse entraide et votre temps passé..

désolé pour mon pseudo visiblement trop provocateur mais les viti ne picolent pas non plus tout le temps... dry.gif


--------------------
- avec modération -
MS2 fr, ~35 contrib.
Go to the top of the page
 
fissiaux
posté 9 Jul 2006, 14:29
Message #21


5eme dan OSC
Icône de groupe

Groupe : Membres
Messages : 17048
Inscrit : 26-November 03
Lieu : Chez moi
Membre no 1669




CITATION
mais les viti ne picolent pas non plus tout le temps


Ouais, à d'autres..... biggrin.gif
Go to the top of the page
 

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



RSS Version bas débit Nous sommes le : 29th March 2024 - 10:18
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)