Jump to content

Correction du bug quand la quantité passe de 1 à 0 et n'est pas retiré de Ebay


Recommended Posts

Bonjour,

 

C'est à tester, et éventuellement à faire valider par Fabien.

 

Dans mon cas j'avais un bug avec mes produits en MultiSku (avec des déclinaisons), le produit n'était pas supprimé quand la quantité passé de 1 à 0 pour la dernière déclinaison.

 

Ce correctif semble régler mon problème.

 

Pour corriger le problème, j'ai édité le fichier

 

/modules/ebay/eBayRequest.php

 

à la ligne 877 juste en dessous de

 

  	 // Check data
       if (!$datas)
           return false;

 

Ajouter

 

  	 if (isset($datas['variations']))
       {
           $sum_quantitys = 0;
           foreach ($datas['variations'] as $sum_quantity)
               $sum_quantitys += $sum_quantity['quantity'];

           if($sum_quantitys < 1)
           {
               if($this->endFixedPriceItem($datas))
                   {
                       Db::getInstance()->Execute('DELETE FROM `'._DB_PREFIX_.'ebay_product` WHERE `id_product_ref` = \''.pSQL($datas['itemID']).'\'');
                       return true;
                   }
               else
                   return false;
           }
       }

 

 

Ce qui donne donc

 

   function reviseFixedPriceItemMultiSku($datas = array())
   {
       // Check data
       if (!$datas)
           return false;

       if (isset($datas['variations']))//AJOUT RAPH
       {
           $sum_quantitys = 0;
           foreach ($datas['variations'] as $sum_quantity)
               $sum_quantitys += $sum_quantity['quantity'];

           if($sum_quantitys < 1)
           {
               if($this->endFixedPriceItem($datas))
                   {
                       Db::getInstance()->Execute('DELETE FROM `'._DB_PREFIX_.'ebay_product` WHERE `id_product_ref` = \''.pSQL($datas['itemID']).'\'');
                       return true;
                   }
               else
                   return false;
           }
       }

Link to comment
Share on other sites

Attention j'ai mis à jours le poste ci-dessus!

 

Pensez également à dire si pour vous, cela règle le problème!

 

Et pour info, même avec une synchro total, cela ne va pas retirer les produits encore actif sur votre boutique Ebay mais désactivé sur votre boutique Prestashop, car dès que le produit est désactivé sur votre boutique Prestashop le module passe directement au suivant.

Link to comment
Share on other sites

Si vous souhaitez faire un ménage de votre boutique Ebay à cause du bug des quantités, vous pouvez faire les modifications suivantes (avec la version 1.3.5 du module)

 

Ce que nous allons faire, c'est plutot que de mettre à jours les produits activé et avec une quantité supérieur à 0, on va mettre à jours les produits désactivé et égal à 0!

 

Il faut avoir fait la modification indiqué sur le premier post pour que cela fonctionne!!

 

dans le fichier /modules/ebay/ebay.php aux lignes 1470 , 1476 et 1486

 

remplacez

 

  WHERE `quantity` > 0 AND `active` = 1

 

par

 

  WHERE `quantity` = 0 AND `active` = 0

 

Ensuite il faut simplement allez dans le backoffice de votre prestashop, module, Ebay, prendre ensuite l'onglet "Mise en ligne des produits"

 

Vous choississez Option A : mettre 100% de vos produits en ligne sur eBay (recommandé) puis vous cliquez sur le bouton en bas à droite "Synchroniser avec eBay et mettre à jours les produits ( xxx produits )"

 

Maintenant vous n'avez plus qu'à attendre, cela devrais passer en revue tout vos articles désactivé avec des quantités à 0, puis les retiré de eBay si necessaire...

 

Une fois ceci fait, il faut retirer les modifications qu'on viens de faire, c'est à dire

 

remplacez

 

  WHERE `quantity` = 0 AND `active` = 0

 

par

 

  WHERE `quantity` > 0 AND `active` = 1

 

Attention!!!

 

Je vous dis tout ca pour rendre service et vous éviter, comme moi, de passer en revue toute la boutique eBay pour voir ce qui n'est plus en stock, c'est à vos risque et péril !!! Pour moi, tout ceci a fonctionné impec.

 

Si vous n'êtes pas sûr de ce que vous faites, mieux vaux le faire vous même à la main!!

Link to comment
Share on other sites

  • 2 weeks later...

J'ai syncronisé presta avec ebay donc toutes mes annonce on bien était mis sur ma boutique ebay puis j'ai supprimer quelque annonce sur mon backoffice (les annonce qu'il ne sont disponible et pas de remise en stock dans le future) , le problème est qu'il ne se sont pas suprimé sur ebay, une cliente a commande justement l'un de ces produit mais il n'est plus disponible et ne le seras pas non plus dans le future.

Cette manoeuvre que vous avez cité va t-elle suprimé ces annonce dont je vous parle, car avec un catalogue de + de 3000 produit je me vois pas rechercher annonce pas annonce celle qui ne sont plus dispo.

Merci pour votre réponse.

Link to comment
Share on other sites

  • 1 month later...

Bonjour Raph59,

 

je voulais savoir si lors de synchronisation catalogue il était possible d'arrêter la vente sur eBay d'articles désactivés dans mon back-office prestashop.

 

Si oui, Raph59 aurais tu une idée des modifications à apporter car des produits matchés avec eBay qui sont maintenant désactivés dans mon back-office restent toujours en vente sur eBay.

 

Merci d'avance.

 

Cordialement

Link to comment
Share on other sites

Bonjour Nats,

 

Oui c'est surment possible, en revanche actuellement je manque cruellement de temps, je vais essayer de regarder ca pour te dire les modifications à faire, mais bon je ne te promets rien car forcement, je privilégie le travail qui me permet de vivre ;)

 

Donc si une autre personne peux l'aider, surtout n'hésitez pas!!

Link to comment
Share on other sites

Bonjour,

 

Voici en pièce joint le fichier à remplacer, il faut la version 1.3.5 du module Ebay pour etre certain que tout est compatible, c'est la dernière version disponible.

 

Bon j'ai testé sur ma propre boutique et ca fonctionne, mais comme d'habitude je décline toute responsabilité si problème il y a, je fait juste rendre service!

 

il faut remplacer le fichier ebay.php qui se trouve dans /modules/ebay par celui en pièce jointe.

 

Ensuite vous allez dans la configuration du module Ebay, puis dans l'onglet 4. Mise en ligne des produits

 

Là tout en bas vous avez un nouveau bouton "Delete from Ebay all disabled products", cliquez dessus (peu importe les options du dessus, ca change rien pour ce bouton) puis confirmé.

 

Maintenant il va passer en revue tout les articles désactivé de votre boutique, et les supprimer de Ebay si necessaire.

 

Attention, ceci ne fonctionnera pas si vous avez désinstallé/réinstallé le module!! En effet quand vous désinstallé le module Ebay, il efface de la base de donnée de votre prestashop tout ce que vous avez mis sur ebay mais sans les effacer réellement de ebay, donc quand vous réinstaller le module, pour lui vous n'avez aucune vente en cours sur Ebay... je sais pas si j'ai été clair...

 

Si vous souhaitez voir rapidement les modifications que j'ai effectué, vous n'avez qu'à faire une recherche avec le mot RAPH, pour retrouver facilement mes modification je met toujours mon prénom en commentaires ;)

 

(supprimer le fichier car mise à jours sur le premier post de la page 2)

Link to comment
Share on other sites

Bonjour, j'ai testé mais ne marche pas pour moi.

Le problème est que mes produits ne sont pas désactivé mais indisponible à l'achat.

Y a t'il une solution pour ça ?

 

Merci

 

Bonjour,

 

Si il sont indisponible a l'achat c'est qu'ils ont des quantités à 0 non? ou alors il y a une nouvelle option ? j'ai prestashop 1.3.2 donc c'est possible que depuis le temps ca ai changé!

Link to comment
Share on other sites

Ok, alors oui c'est possible mais en revanche désolé je n'ai pas de 1.4 sous la main donc je ne peux pas le faire... il faudrai que j'installe une 1.4 pour voir comment est faite la BDD mais bon... je veux bien rendre service... mais là a ce point dsl je manque de temps!

 

Sinon si tu peux me dire à quelle champs de la BDD correspond ce "disponible à l'achat" qui se trouve j'imagine dans ps_product alors je pourrai le faire, j'imagine que quand c'est 0 c'est qu'il n'est pas disponible, et a 1 il est disponible à la vente mais juste me le confirmer aussi

Link to comment
Share on other sites

Ok, alors oui c'est possible mais en revanche désolé je n'ai pas de 1.4 sous la main donc je ne peux pas le faire... il faudrai que j'installe une 1.4 pour voir comment est faite la BDD mais bon... je veux bien rendre service... mais là a ce point dsl je manque de temps!

 

Sinon si tu peux me dire à quelle champs de la BDD correspond ce "disponible à l'achat" qui se trouve j'imagine dans ps_product alors je pourrai le faire, j'imagine que quand c'est 0 c'est qu'il n'est pas disponible, et a 1 il est disponible à la vente mais juste me le confirmer aussi

Re, dsl

je n'avais pas reçu de notification pour ton message.

 

disponible à l'achat = available_for_order

0 = indisponible

1 = disponible

 

Il est possible que ceci fonctionne, je n'ai pas essayé.

WHERE `quantity` = 0 AND `available_for_order` = 0

 

Si cette fonction est la bonne, il faudrait que je reprenne le bout de code que tu a créé sur l'autre version et que je l'intègre sur la 1.4

 

Qu'en dit tu ?

Link to comment
Share on other sites

Oui ça serai quelque chose du genre, en revanche bien faire attention de faire cette modif partout ou il faut, car de mémoire ya une requête pour afficher le compteur, une requête pour effectuer la mise à jour...

 

En revanche il faut retirer le quantity = 0 car avec ou sans quantité, je pense que tu désire que le produit se retire de ebay dès qu'il est indiqué indisponible à la vente

 

Donc ca donnerai

 

WHERE  `available_for_order` = 0

Link to comment
Share on other sites

Parfait !!!!!!!

Ça marche impeccablement bien.

 

Petite question qui pourrait définitivement résoudre mon dernier problème:

 

Lors de mes imports .csv, tous mes produits avec des quantités à 0 ne sont pas désactivés sur ebay.

Est-ce que cette formules permettrait de supprimer ces produits de ebay?

 

 

WHERE `quantity` <= 0 AND `active` = 1

 

Dans ce cas, vue que je n'utilise pas la fonction "produit désactiver" je n'ai qu'a changer la variable sur le module que vous avez modifié et cela devrait marcher ou il y a autre chose à faire.

 

Merci

Link to comment
Share on other sites

selon moi non ça ne fonctionnera pas forcement si vous utilisez des déclinaisons.

 

Mais de toute façon, si vous appliquez la modification que j'ai indiqué dans mon premier message sur ce sujet, cela corrige justement ce genre de problème, dès qu'un produit est à 0, il se retire de Ebay.

Une fois la modification faite, il suffi de refaire une synchro total.

Link to comment
Share on other sites

Je n'utilise pas de déclinaison.

 

Le problème est que je pratique l'import csv.

Lors d'un import, le HOOK produit n'est pas appelé et donc aucune modification ne se fait au niveau d' eBay si un produit avec une quantité de 1 ou 5 passe à 0.

 

Je suis obligé d'aller dans le produit est de cliquer sur enregistrer pour que ce soit pris en compte et qu' ebay supprime le produit.

 

EDIT

 

ça fonctionne !!!

 

J'ai appliqué cette fonction sur votre modification pour produit désactivé et cela fonctionne parfaitement.

 

Voir fichier joint ebay.php

 

Je vais à présent pouvoir utiliser ce module pleinement.

Merci pour votre aide.

 

Cordialement

Link to comment
Share on other sites

  • 9 months later...

a tester, j'ai fait un nouveau bouton pour être plus simple, donc faut appuyer sur le bouton en bas à droite

 

En revanche je n'ai pas pu tester vue que je n'ai pas de PS 1.4 sous la main..

 

Bonjour, la modification est-elle bonne pour presta 1.5.3.0

Merci d'avance pur votre réponse.

Link to comment
Share on other sites

  • 1 year later...
Guest
This topic is now closed to further replies.
×
×
  • Create New...