[Résolu] Gestion du stock avec attributeManager

Nouvelle génération du moteur osCSS
téléchargement osCSS 2.x.x

[Résolu] Gestion du stock avec attributeManager

Messagepar Brain » Lun 09 Mai 2011, 01:01

Bonjour,
J'ai installé attributeManager qui fonctionne bien tant que je ne lui demande pas de gérer le stock.
Par contre lorsque je rentre des attributs (c'est quand même un peu ce qu'on lui demande :p) et que j'ajoute le nombre de pièce en stock:
- Dans le récap de l'admin j'ai bien le bon nombre niveau stock.
- Mais coté public, j'ai un hors stock dès que je change d'attribut dans la liste.
Voici d'ailleurs les variables javascript (je pense) qui gère le stock sur la page produit:
Code: Tout sélectionner
var stk={52:1,3:0,4:0};

Le problème vient certainement du 3:0 et 4:0 qui ne correspondent pas à l'id ni au stock associé...??
Quelqu'un a-t-il déjà eu ce problème?
Merci d'avance
Dernière édition par Brain le Mar 10 Mai 2011, 15:53, édité 3 fois.
Brain
Membre actif
 
Messages: 69
Inscription: Dim 24 Avr 2011, 15:50

Re: Gestion du stock avec attributeManager

Messagepar Brain » Lun 09 Mai 2011, 01:42

Alors c'est corrigé sur la page produit. Il gère désormais bien le stock.
Par contre pas dans le panier car il m'indique ceci avec *** à coté de l'article:
Les produits marqués avec *** ne sont pas en stock dans la quantité désirée.

Or j'ai bien plusieurs produits en stock avec cet attribut et je n'en ai ajouté qu'un au panier. Donc logiquement je devrai pouvoir l'acheter sans problème...???
Brain
Membre actif
 
Messages: 69
Inscription: Dim 24 Avr 2011, 15:50

Re: Gestion du stock avec attributeManager

Messagepar oscim » Lun 09 Mai 2011, 16:24

C'est currieux..

Tu a modifié quelque chose sur la page produit ?
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Re: Gestion du stock avec attributeManager

Messagepar oscim » Lun 09 Mai 2011, 16:52

PS, il y a une petite erreur sur la mise en cache du stock des attibuts

Donc, edite le fichier driver.product

et touve la methode
Code: Tout sélectionner
private static function get_products_attribute_stock($products_id, $attributes=array())


Et remplace le
Code: Tout sélectionner
return self::$array_data[$products_id]->products_attribute_stock[$uprid] = (int)$stock['quantity'];

par
Code: Tout sélectionner
      self::$array_data[$products_id]->products_attribute_stock[$uprid] = (int)$stock['quantity'];
      return $stock['quantity'];
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Re: Gestion du stock avec attributeManager

Messagepar Brain » Lun 09 Mai 2011, 17:45

Nickel,
Merci oscim le problème venait bien de là.
Le stock est désormais bien calculé dans le panier.
Merciiii ;)
Brain
Membre actif
 
Messages: 69
Inscription: Dim 24 Avr 2011, 15:50

Re: Gestion du stock avec attributeManager

Messagepar Brain » Lun 09 Mai 2011, 18:04

Ha non, toujours un petit souci.
En fait il me compte le stock -1. Est-ce normal?
Par exemple j'ai 10 articles (que ça soit avec ou sans attributs j'ai l'impression) si j'en commande 9 ça passe, mais si j'en commande 10 là j'ai les *** rouges indiquant que le produit n'est pas disponible dans la quantité demandée.
Je ne comprends pas trop bien pourquoi...?!
Brain
Membre actif
 
Messages: 69
Inscription: Dim 24 Avr 2011, 15:50

Re: Gestion du stock avec attributeManager

Messagepar oscim » Lun 09 Mai 2011, 18:38

Moi pas de soucis de mon coté

Tu ne m'a pas repondu , tu a changé quelque chose concernant le js sur la page produit ?
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Re: Gestion du stock avec attributeManager

Messagepar Brain » Lun 09 Mai 2011, 18:45

Non, je n'ai rien touché du tout niveau js sur aucune page. Mais ce qui est bizarre c'est que ça me le fait aussi dans le panier...
Brain
Membre actif
 
Messages: 69
Inscription: Dim 24 Avr 2011, 15:50

Re: Gestion du stock avec attributeManager

Messagepar Brain » Lun 09 Mai 2011, 19:11

Je viens de faire une nouvelle install vite fait dans un répertoire temp avec template par défaut, aucun plugin et aucune modif du code avec db temporaire également.
J'ajoute AttributeManager
Je crée un attribut couleur avec
Bleu 2 pièces
Rouge 2 pièces
Je vais voir mon faux produit sur la page public, j'édite la source de la page et je trouve ceci:
Code: Tout sélectionner
function chkstk(frm) {
    var stk={1:1,2:2};
    var instk=false;

Si j'ai bien compris le premier chiffre correspond à mon id d'attribut et celui après les deux points à la quantité.
Je devrais donc normalement avoir
Code: Tout sélectionner
function chkstk(frm) {
    var stk={1:2,2:2};
    var instk=false;


Une idée d'où vient le problème???
Brain
Membre actif
 
Messages: 69
Inscription: Dim 24 Avr 2011, 15:50

Re: Gestion du stock avec attributeManager

Messagepar oscim » Lun 09 Mai 2011, 19:50

Le js de ce foncitonnement est contenu dans la class pad_base du coté public .

La pas le temps de regarder ;)
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Re: Gestion du stock avec attributeManager

Messagepar Brain » Lun 09 Mai 2011, 20:25

Oki merci, vais regarder si je peux voir d'où vient le problème... Enfin j'espère!!
Brain
Membre actif
 
Messages: 69
Inscription: Dim 24 Avr 2011, 15:50

Re: Gestion du stock avec attributeManager

Messagepar Brain » Lun 09 Mai 2011, 20:53

Pour le js sur la page produit, c'est ok j'ai modifié le code de la page pad_base.php il y avait une valeur en statique à 1 (d'où le stock en permanence à 1 pour le premier attribut d'article).
Par contre j'ai toujours le même problème dans le panier.
Si j'ai 7 articles en stock je peux en acheter 6 max, ensuite il me dit que je suis hors stock. Donc le compte moins 1
Brain
Membre actif
 
Messages: 69
Inscription: Dim 24 Avr 2011, 15:50

Re: Gestion du stock avec attributeManager

Messagepar oscim » Lun 09 Mai 2011, 21:14

Donne moi le js modifié , comme ca je ne cherchai pour faire cette correction ;)

Pour ce qui est du stock ,

Le control du stock est effectué par la class stock du dossier includes/classes/

en ligne 46.

La comme ca , je vois pas
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Re: Gestion du stock avec attributeManager

Messagepar Brain » Mar 10 Mai 2011, 00:05

Code: Tout sélectionner
 private function _draw_js_stock_array($combinations) {
// print_r($combinations);
    if (!((isset($combinations)) && (is_array($combinations)) && (sizeof($combinations) > 0))){
      return '{}';
    }
    $out='';
    foreach ($combinations[0]['comb'] as $oid=>$ovid) {
      $out.='{'.$ovid.':';
      $opts[]=$oid;
    }
    $out.=$combinations[0]['stock'];

    for ($combindex=1; $combindex<sizeof($combinations); $combindex++) {
      $comb=$combinations[$combindex]['comb'];
      for ($i=0; $i<sizeof($opts)-1; $i++) {
        if ($comb[$opts[$i]]!=$combinations[$combindex-1]['comb'][$opts[$i]]) break;
      }
      $out.=str_repeat('}',sizeof($opts)-1-$i).',';
      if ($i<sizeof($opts)-1) {
        for ($j=$i; $j<sizeof($opts)-1; $j++)
          $out.=$comb[$opts[$j]].':{';
      }
      $out.=$comb[$opts[sizeof($opts)-1]].':'. (($combinations[$combindex]['stock']>0) ? $combinations[$combindex]['stock']: 0);
    }
    $out.=str_repeat('}',sizeof($opts));

    return $out;
  }


Ça fonctionne chez moi!
Pour le reste ok, je vais regarder ça.
Merci ;)
Brain
Membre actif
 
Messages: 69
Inscription: Dim 24 Avr 2011, 15:50

Re: Gestion du stock avec attributeManager

Messagepar oscim » Mar 10 Mai 2011, 00:24

J'ai corrigé le svn. Merci :D

Sur le sotck
Il me semble pas que il y est une var de config qui affecterai ce calcul , (elle serait nécessaire d'alleurs). Donc suis perplexe quant à ton problème...

Tous ce control ce passe soit dans la class stock, soit peut être dans drivers.products
http://dev.oscss.org/task/846

J'ai deja constaté un petit doublon du control . Mais dans tous les cas, c'est la class stock qui Doit conserver ce control . Je l'ai volontairement deportés dans une class indépendante, pour affiner ce control . pour le moment il reste sommaire.
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Re: Gestion du stock avec attributeManager

Messagepar Brain » Mar 10 Mai 2011, 02:57

Merci, je viens donc de regarder la ligne 46 du fichier Stock.php
Code: Tout sélectionner
self::$marck=( ((tep_get_products_stock($product['id'],$attributes) - $product['quantity'] ) <= 0)? 2 : 0);

Je ne sais pas si j'ai bien compris cette ligne (sorry il est tard), mais pour moi je dirais que l'opérateur utilisé ici n'est pas bon, je m'explique:
x = Mon stock réel (8 pièces)
y = La quantité que je souhaite acheter (8 pièces)
x - y = 0 l'achat est possible avec ces quantités

x = Mon stock réel (7 pièces)
y = La quantité que je souhaite acheter (8 pièces)
x - y = -1 l'achat est impossible avec ces quantités

Il faudrait donc retourner false seulement si c'est inférieur à zéro mais pas si c'est égal à zéro, non?
Moi j'ai remplacé par ceci, et ça fonctionne.
Code: Tout sélectionner
self::$marck=( ((tep_get_products_stock($product['id'],$attributes) - $product['quantity'] ) < 0)? 2 : 0);


J'espère que la solution à mon problème était bien là... :?:
Si tu es d'accord avec mon raisonnement et la correction je mettrais le sujet en résolu
Brain
Membre actif
 
Messages: 69
Inscription: Dim 24 Avr 2011, 15:50

Re: Gestion du stock avec attributeManager

Messagepar oscim » Mar 10 Mai 2011, 15:14

T'a remarque me semble bonne

Et ton calcul aussi , pour ma part je fait remonté ta correction :D
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Re: [Résolu] Gestion du stock avec attributeManager

Messagepar Brain » Mar 10 Mai 2011, 15:54

Problème résolu alors ;)
Brain
Membre actif
 
Messages: 69
Inscription: Dim 24 Avr 2011, 15:50


Retourner vers Bug / Aides [fr]

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron