Fabien Serny Posted August 31, 2011 Share Posted August 31, 2011 Bonjour, La nouvelle version du module eBay est disponible ici : http://www.prestashop.com/forums/topic/127504-module-ebay-version-122-release/ Cela devrait régler vos soucis de synchronisation. Ceci dit vous devez avoir un site en production pour voir les images apparaitre. Quel intérêt d'exporter ces produits depuis un localhost ? Link to comment Share on other sites More sharing options...
chaussmoi Posted August 31, 2011 Share Posted August 31, 2011 Bonjour, La nouvelle version du module eBay est disponible ici : http://www.prestashop.com/forums/topic/127504-module-ebay-version-122-release/ Cela devrait régler vos soucis de synchronisation. Ceci dit vous devez avoir un site en production pour voir les images apparaitre. Quel intérêt d'exporter ces produits depuis un localhost ? Bonjour Fabien, J'attendais avec beaucoup d'impatience ce nouveau module suite à des problèmes d'activation du module ebay. Malheureusement, l'enregistrement du module sur ebay continue à ne pas vouloir se faire. L'horloge de synchro tourne dans le vide malgré la reconnaissance de la page ebay. Pourriez-vous m'aider? Cordialement Virginie PS : Module ebay 1.2.2 et prestashop 1.4.4.1 Serveur mutualisé ovh. Windows7 et IE9 chez moi. Voilà pour la config. Link to comment Share on other sites More sharing options...
Fabien Serny Posted September 1, 2011 Share Posted September 1, 2011 Bonjour, Quel navigateur utilisez vous ? Pouvez vous tester avec un autre navigateur (juste pour la synchronisation) ? Si cela ne fonctionne toujours pas, pouvez vous m'envoyer via message privé un accès à votre back office avec vos identifiants eBay ? Bonne réception, Link to comment Share on other sites More sharing options...
chaussmoi Posted September 1, 2011 Share Posted September 1, 2011 Bonjour, Quel navigateur utilisez vous ? Pouvez vous tester avec un autre navigateur (juste pour la synchronisation) ? Si cela ne fonctionne toujours pas, pouvez vous m'envoyer via message privé un accès à votre back office avec vos identifiants eBay ? Bonne réception, Bonjour, Je suis sous Internet explorer 9. J'ai essayé aussi sous le 8 mais même soucis. J'ai réussi entre temps. Alors pour tous ceux à qui ça arriverait et sous le contrôle de Fabien Serny : L'identifiant ebay à renseigner sur le module ebay n'est pas votre pseudo mais votre id (en général votre mail d'inscription). Par contre, sur la fenêtre ebay qui s'ouvre pour s'identifier, là il faut mettre votre pseudo et pas votre id. Le module met jusqu'à quelques minutes pour s'installer. Un grand merci à Fabien. Cordialement Virginie PS : Il me reste un gros soucis avec le module Mondial Relay. Link to comment Share on other sites More sharing options...
Fabien Serny Posted September 1, 2011 Share Posted September 1, 2011 Bonjour Virginie, Je suis étonné de ce que vous dites, tous les marchands à qui j'ai installé le module eBay ont bien utilisé leur pseudo. Pour Mondial Relay quel est votre problème exactement ? (par message privé que je vous redirige vers la bonne personne vous aider). Link to comment Share on other sites More sharing options...
chaussmoi Posted September 1, 2011 Share Posted September 1, 2011 Bonjour Virginie, Je suis étonné de ce que vous dites, tous les marchands à qui j'ai installé le module eBay ont bien utilisé leur pseudo. Pour Mondial Relay quel est votre problème exactement ? (par message privé que je vous redirige vers la bonne personne vous aider). Bonjour, Lorsque j'ai configuré le module de mondial relay, tout s'est bien passé. Mais lors de tests de commandes, le choix du mode de transport Mondial Relay bloque le processus de commande sur la page de choix du transporteur et dans la barre de navigation, il y a http://www.chaussmoi.com/commande?step=2&mr_null . La liste de choix des relais ne s'affiche jamais et le processus de commande reste bloqué là. Cordialement Virginie PS : Désolée mais je ne sais pas envoyer de MP. Link to comment Share on other sites More sharing options...
Fabien Serny Posted September 1, 2011 Share Posted September 1, 2011 Vérifiez que vous utilisez bien la dernière version du module. Si votre problème persiste, je vous conseille de poster le bug sur la forge : http://forge.prestashop.com Ainsi vous serez sûr que le développeur de ce bug regardera d'où provient le problème. Link to comment Share on other sites More sharing options...
AMATEC Posted September 1, 2011 Share Posted September 1, 2011 Bonjour a tous Fabien, Voila en essayant de mettre en ligne sur eBay 2 produits pour tester, je reçois le message suivant: Les données saisies pour la balise sont manquantes ou ne sont pas valides. Veuillez vérifier les documents API. Item.ShippingDetails Cordialement Link to comment Share on other sites More sharing options...
Fabien Serny Posted September 2, 2011 Share Posted September 2, 2011 Première fois que je vois cette erreur. Pouvez vous m'envoyer un accès back office et ftp par message privé que je regarde ce qui est envoyé à eBay ? Link to comment Share on other sites More sharing options...
AMATEC Posted September 2, 2011 Share Posted September 2, 2011 Bonjour Fabien Message envoyé.. Cdlt Link to comment Share on other sites More sharing options...
Fabien Serny Posted September 2, 2011 Share Posted September 2, 2011 Ceci vient de votre template eBay à priori. Si vous rencontrez cette erreur, remettez votre template eBay de base. Si le problème disparait, cela signifie que votre template eBay est défectueux. Link to comment Share on other sites More sharing options...
AMATEC Posted September 2, 2011 Share Posted September 2, 2011 On a remis le template de base et toujours le même problème. Link to comment Share on other sites More sharing options...
Fabien Serny Posted September 2, 2011 Share Posted September 2, 2011 Je refais un test pour voir. Link to comment Share on other sites More sharing options...
AMATEC Posted September 2, 2011 Share Posted September 2, 2011 OK Cool, merci :-). Link to comment Share on other sites More sharing options...
romda Posted September 5, 2011 Share Posted September 5, 2011 Bonjour, Bravo pour ce module, la synchronisation est désormais opérationnelle ! Ma config : - serveur mutualisé chez OVH (offre "pro", anciennement "90Plan") - environ 400 produits avec de très nombreuses déclinaisons (malheureusement, toutes les catégories eBay ne sont pas forcément compatibles avec les déclinaisons) - synchro avec Mozilla Firefox à jour (6.0.1 actuellement) et Opera à jour (11.51 actuellement), sous Windows XP SP3 et Linux - Prestashop 1.4.4.0, module eBay 1.2.3 J'utilise principalement l'option B en cochant la case de mise à jour uniqument des quantités/prix, vu que j'ai déjà quelques produits envoyés. Ces options permettent-elles une modification de la catégorie des produits ou est-elle ignorée ? En revanche, les commandes ne remontent pas toujours dans le Back Office de Prestashop. Je verrai en son temps si elles remontent après un certain délai ou si elles restent bloquées chez eBay. Encore bravo pour cet énorme boulot Link to comment Share on other sites More sharing options...
Fabien Serny Posted September 7, 2011 Share Posted September 7, 2011 La version 1.2.4 est sorti sur Addons (il y avait encore un bug sur la remontée des commandes). Cette fois, normalement, c'est bon Link to comment Share on other sites More sharing options...
kechmech Posted January 4, 2012 Share Posted January 4, 2012 Bonjour, J'aurais une question en fait pour des raisons de synchronisation de stocks entre plusieurs boutiques, j'effectue la mise à jour automatique des mes stocks Prestashop via un scypt externe qui modifie les stocks et désactive les produits étant en stock 0, Par contre ces produits ne se supprime pas d'eBay, Est ce que si je supprime simplement le produit de la table ebay_product cela suffit à supprimer aussi l'annonce correspondante ? Ou ais je tout faux, Merci pour ce module et votre travail, Cordialement, Mathieu Link to comment Share on other sites More sharing options...
Fabien Serny Posted January 4, 2012 Share Posted January 4, 2012 Non, cela ne suffit pas. Le plus simple serait de rajouter l'exécution des hook dans votre script Link to comment Share on other sites More sharing options...
bibouche77 Posted January 30, 2012 Share Posted January 30, 2012 Bonjour, je suis toute nouvelle sur ce forum et je viens de voir qu'on pouvait exporter ses produits vers ebay mais j'aimerai avant tou savoir comment cela se passe quand on a déjà une boutique pro active sur ebay avec les mêmes articles que dans ma boutique prestashop? plus précisement, si je rajoute de nouveaux articles dans ma boutique presta et que j'effectue la "transmission", es ce que les anciens produits vont être dupliqués?? Désolée je ne suis pas fortiche en informatique:/ merci pour votre aide en tt cas! Link to comment Share on other sites More sharing options...
eloodie Posted April 2, 2012 Share Posted April 2, 2012 Bonjour, J'ai installé et configuré le module Ebay. Mais je coince au niveau de la configuration des catégories. Lorsque je sélectionne une catégorie ebay et sous catégorie et que je fais enregistrer (dans l'onglet configuration des catégories), rien n'est pris en compte. J'ai bien le message "Configuration mise à jour" mais les choix faits dans les listes déroulantes n'ont pas été enregistrées. D'ou cela peut-il venir ? Merci par avance! Link to comment Share on other sites More sharing options...
Modelizer Posted May 9, 2012 Share Posted May 9, 2012 Bonjour, je rencontre un problème avec le module ebay. Quand paramètre le template produite, je met ceci : {PRODUCT_NAME} MARQUE : {MANUFACTURER} PRIX D'ORIGINE : {PRICE_PRODUCT} € PROMO : {POURCENTAGE_REDUCTION} % PRIX MODELIZER : {PRICE_REDUCTION} € Disponibilité : En Stock {DESCRIPTION' Mais le problème c'est que aucun prix n'est afficher d'ou cela provient il ? J'ai également essayer en mettant {PRICE_DISCOUNT_PRODUCT} merci pour votre aide. Au passage je recherche une parsonne pour la réalisation d'un template complet pour ebay. merci 1 Link to comment Share on other sites More sharing options...
InterAgilité Posted May 9, 2012 Share Posted May 9, 2012 Bonjour, Je rencontre un soucis pour enregistrer mon module Prestashop eBay sur Ebay. Après avoir cliquer sur le lien " Enregistrer le module sur eBay" depuis le backoffice, j'accède à la page Ebay ( en Anglais ) m'identifie ... Ensuite je clique sur le "I Agree" de la page "Grant application access: Prestashop" Alors ça mouline dans le vide un moment .. puis -> Page Web inaccessible Impossible de charger la page Web sur Google Chrome, car arribada.ebay.com n'a pas répondu à temps. Il est possible que le site soit bloqué ou que vous rencontriez des problèmes avec votre connexion Internet. Prestashop : 1.3.6.0 Module Ebay téléchargé ce jour sur le addons center. Merci de votre aide : soucis Prestashop; ou ebay planté temporairement ? Link to comment Share on other sites More sharing options...
Modelizer Posted May 10, 2012 Share Posted May 10, 2012 Car normalement déjà le lien de ton compte ebay devrait comme le mien -->> http://stores.ebay.fr/MODELIZER A tu une boutique ? Link to comment Share on other sites More sharing options...
InterAgilité Posted May 10, 2012 Share Posted May 10, 2012 Car normalement déjà le lien de ton compte ebay devrait comme le mien -->> http://stores.ebay.fr/MODELIZER A tu une boutique ? Ce n'est pas le lien de mon compte ebay ( oui j'ai une boutique ) c'est le lien pour la page qui enregistre l'application Prestashop dans Ebay. Merci. Link to comment Share on other sites More sharing options...
Modelizer Posted May 12, 2012 Share Posted May 12, 2012 normalement il faut le token. vous n'avez de réponse à ma question au sujet des variables pour les promotions ? merci Link to comment Share on other sites More sharing options...
InterAgilité Posted May 14, 2012 Share Posted May 14, 2012 normalement il faut le token. vous n'avez de réponse à ma question au sujet des variables pour les promotions ? merci Oui il y a le token .. j'ai juste mis le début de l'adresse.. pas la totale :-) Link to comment Share on other sites More sharing options...
InterAgilité Posted May 21, 2012 Share Posted May 21, 2012 Oui il y a le token .. j'ai juste mis le début de l'adresse.. pas la totale :-) J'ai réussi en installant une ancienne version du module 1.3.1 .... Le hic c'est que je ne sais pas quels bugs ont été corrigés entre la 1.3.1 et la 1.3.5 ... J'ai tenté l'installation de la 1.3.5 .. mais ce ne marche pas... il me mets tout le temps le message que "le module ne fonctionne qu'avec ebay en Français" et si je vais voir les catégorie elle sont vides .... Link to comment Share on other sites More sharing options...
p0mpom2 Posted May 26, 2012 Share Posted May 26, 2012 exactement le meme probleme impossible d'installer le module avec la version 1.3.5 Link to comment Share on other sites More sharing options...
jomcdonald Posted May 30, 2012 Share Posted May 30, 2012 Bonjour, HELP!! J'ai un sacré souci avec ebay. Un client m'a passé une commande avec dans son nom des parenthèses et depuis, aléatoirement, j'ai cette erreur en BO et en FO: Fatal error (Customer -> lastname = (awaly)) La commande de ce client ne s'est jamais importé. Y a t'il une solution pour m'en débarrasser. Merci Link to comment Share on other sites More sharing options...
foxtoto2000 Posted May 31, 2012 Share Posted May 31, 2012 la solution a déjà été donnée dans le post suivant http://www.prestashop.com/forums/topic/163431-resolu-commandes-debay-ne-remontent-plus-vers-prestashop/page__st__20 Link to comment Share on other sites More sharing options...
Tatian68 Posted June 4, 2012 Share Posted June 4, 2012 Bonjour, J'ai installé le module EBAY 1.3.5 lorsque j'essaye d'enregistrer le module la page arribada.ebay.com ne reponds pas... Le délai d'attente est dépassé Le serveur à l'adresse arribada.ebay.com met trop de temps à répondre. Le site est peut-être temporairement indisponible ou surchargé. Réessayez plus tard ; Si vous n'arrivez à naviguer sur aucun site, vérifiez la connexion au réseau de votre ordinateur ; Si votre ordinateur ou votre réseau est protégé par un pare-feu ou un proxy, assurez-vous que Firefox est autorisé à accéder au Web. Je précise que je suis sur la version prestashop 1.4.7.0 ... Merci Link to comment Share on other sites More sharing options...
Seekme Posted June 5, 2012 Share Posted June 5, 2012 (edited) Bonjour, ayant moi aussi découvert ce module qui vend du rêve, j'ai voulu l'installer. Au moment d'accepter les conditions sur e-Bay, tout se passe bien mais la page sur Prestashop n'évolue pas, ni même un chargement. La page est la même et attend que j'entre encore une fois mon ID e-Bay. J'ai bien un compte pro et tout est activé. Je sais bien que plusieurs personnes ont ce genre de problèmes mais je n'ai encore vu personne sans le chargement. J'espère que la solution est simple... Cdt. Edited June 5, 2012 by Seekme (see edit history) Link to comment Share on other sites More sharing options...
brikobike Posted June 5, 2012 Share Posted June 5, 2012 Bonjour, et merci pour ce super module , je me suis inscrit en vendeur pro sur ebay et est activée une boutique , le probléme que je rencontre est que mon commerce est basé sur de la piece d'occasion et lors de la mise en vente sur ebay les pieces sont affichées comme "neuf" comment y remedier pour ne pas retoucher toutes les annocnes une par une srtout que cela peut etre embetant si une vente est faite avant que l'on ai pu rectifier l'annonce. merci d'avance pour votre aide. Link to comment Share on other sites More sharing options...
Sellande Posted June 11, 2012 Share Posted June 11, 2012 Bonjour, J'ai un souci, comme quelques autres utilisateurs du module Ebay. Version Prestashop 1.3.1 -- Module Ebay v1.3.5 -- Les fonctions Activer "Allow url fopen" et Activer cURL sont cochées en vert. Lorsque j'indique mon pseudo Ebay et que je clique pour enregistrer le module, une page Ebay générale en anglais me propose de m'identifier. Une fois l'identification faite, Ebay m'indique que le lien est fait coorectement et que Prestashop est autorisé. Par contre lorsque je ferme cette fenêtre, le BO prestashop ne réagit pas. Pourriez-vous m'aider, je peux éventuellement vous communiquer mes identifiants BO + Ebay. Merci de votre réponse Link to comment Share on other sites More sharing options...
Seekme Posted June 12, 2012 Share Posted June 12, 2012 Exactement la même chose ici, la page se recharge comme si on appuyait sur F5 et puis c'est tout, c'est bien embêtant... Link to comment Share on other sites More sharing options...
neosnake Posted June 13, 2012 Share Posted June 13, 2012 Exactement le même problème pour moi avec la version 1.4.7.3 de prestashop Link to comment Share on other sites More sharing options...
brikobike Posted June 17, 2012 Share Posted June 17, 2012 UP il n'y a plus de suivi pour ce super module Link to comment Share on other sites More sharing options...
nevralj78 Posted July 16, 2012 Share Posted July 16, 2012 Exactement la même chose ici, la page se recharge comme si on appuyait sur F5 et puis c'est tout, c'est bien embêtant... Je ne sais pas pourquoi mais c'est l'accès au cookie qui déconne (via context) du coup j'avais le message avec ebay.fr et aussi le même soucis que cité précédement... en passant par les globales ca refonctionne... ci-joint le code de ebay.php que j'ai modifié <?php /* * 2007-2011 PrestaShop * * NOTICE OF LICENSE * * This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to [email protected] so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author PrestaShop SA <[email protected]> * @copyright 2007-2011 PrestaShop SA * @version Release: $Revision: 1.4 $ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA */ // Security if (!defined('_PS_VERSION_')) exit; // Loading eBay Class Request if (file_exists(dirname(__FILE__).'/eBayRequest.php')) require_once(dirname(__FILE__).'/eBayRequest.php'); // Checking compatibility with older PrestaShop and fixing it if (!defined('_MYSQL_ENGINE_')) define('_MYSQL_ENGINE_', 'MyISAM'); class Ebay extends Module { private $_html = ''; private $_postErrors = array(); private $_shippingMethod = array(); private $_webserviceTestResult = ''; private $_webserviceError = ''; private $_fieldsList = array(); private $_moduleName = 'ebay'; private $id_lang; /******************************************************************/ /******************************************************************/ public function __construct() { global $cookie; $this->name = 'ebay'; $this->tab = 'market_place'; $this->version = '1.3.5'; $this->author = 'PrestaShop'; parent::__construct(); $this->displayName = $this->l('eBay'); $this->description = $this->l('Open your shop on the eBay market place !'); $this->id_lang = Language::getIdByIso('fr'); // Check the country and ask the bypass if not 'fr' if (strtolower(Country::getIsoById(Configuration::get('PS_COUNTRY_DEFAULT'))) != 'fr' && !isset($cookie->ebay_country_default_fr)) { $this->warning = $this->l('eBay module currently works only for eBay.fr'); return false; } // Checking Extension if (!extension_loaded('curl') || !ini_get('allow_url_fopen')) { if (!extension_loaded('curl') && !ini_get('allow_url_fopen')) $this->warning = $this->l('You must enable cURL extension and allow_url_fopen option on your server if you want to use this module.'); elseif (!extension_loaded('curl')) $this->warning = $this->l('You must enable cURL extension on your server if you want to use this module.'); elseif (!ini_get('allow_url_fopen')) $this->warning = $this->l('You must enable allow_url_fopen option on your server if you want to use this module.'); return false; } // Checking compatibility with older PrestaShop and fixing it if (!Configuration::get('PS_SHOP_DOMAIN')) Configuration::updateValue('PS_SHOP_DOMAIN', $_SERVER['HTTP_HOST']); // Generate eBay Security Token if not exists if (!Configuration::get('EBAY_SECURITY_TOKEN')) Configuration::updateValue('EBAY_SECURITY_TOKEN', Tools::passwdGen(30)); // For 1.4.3 and less compatibility $updateConfig = array('PS_OS_CHEQUE' => 1, 'PS_OS_PAYMENT' => 2, 'PS_OS_PREPARATION' => 3, 'PS_OS_SHIPPING' => 4, 'PS_OS_DELIVERED' => 5, 'PS_OS_CANCELED' => 6, 'PS_OS_REFUND' => 7, 'PS_OS_ERROR' => 8, 'PS_OS_OUTOFSTOCK' => 9, 'PS_OS_BANKWIRE' => 10, 'PS_OS_PAYPAL' => 11, 'PS_OS_WS_PAYMENT' => 12); foreach ($updateConfig as $u => $v) if (!Configuration::get($u) || (int)Configuration::get($u) < 1) { if (defined('_'.$u.'_') && (int)constant('_'.$u.'_') > 0) Configuration::updateValue($u, constant('_'.$u.'_')); else Configuration::updateValue($u, $v); } // Check if installed if (self::isInstalled($this->name)) { // Upgrade eBay module if (Configuration::get('EBAY_VERSION') != $this->version) $this->upgrade(); // Generate warnings if (!Configuration::get('EBAY_API_TOKEN')) $this->warning = $this->l('You must register your module on eBay.'); // Loading Shipping Method $this->loadShippingMethod(); // Warning uninstall $this->confirmUninstall = $this->l('Are you sure you want uninstall this module ? All your configuration will be lost.'); } } public function loadShippingMethod() { // Shipping methods $this->_shippingMethod = array( 7104 => array('description' => 'Colissimo', 'shippingService' => 'FR_ColiposteColissimo', 'shippingServiceID' => '7104'), 7112 => array('description' => 'Ecopli', 'shippingService' => 'FR_Ecopli', 'shippingServiceID' => '7112'), 57104 => array('description' => 'La Poste - Courrier International Prioritaire', 'shippingService' => 'FR_LaPosteInternationalPriorityCourier', 'shippingServiceID' => '57104'), 7101 => array('description' => 'Lettre', 'shippingService' => 'FR_PostOfficeLetter', 'shippingServiceID' => '7101'), 57105 => array('description' => 'La Poste - Courrier International Economique', 'shippingService' => 'FR_LaPosteInternationalEconomyCourier', 'shippingServiceID' => '57105'), 57106 => array('description' => 'La Poste - Colissimo International', 'shippingService' => 'FR_LaPosteColissimoInternational', 'shippingServiceID' => '57106'), 7102 => array('description' => 'Lettre avec suivi', 'shippingService' => 'FR_PostOfficeLetterFollowed', 'shippingServiceID' => '7102'), 57107 => array('description' => 'La Poste - Colis Economique International', 'shippingService' => 'FR_LaPosteColisEconomiqueInternational', 'shippingServiceID' => '57107'), 7103 => array('description' => 'Lettre recommandée', 'shippingService' => 'FR_PostOfficeLetterRecommended', 'shippingServiceID' => '7103'), 7121 => array('description' => 'Lettre Max', 'shippingService' => 'FR_LaPosteLetterMax', 'shippingServiceID' => '7121'), 7113 => array('description' => 'Coliéco', 'shippingService' => 'FR_Colieco', 'shippingServiceID' => '7113'), 57108 => array('description' => 'La Poste - Colissimo Emballage International', 'shippingService' => 'FR_LaPosteColissimoEmballageInternational', 'shippingServiceID' => '57108'), 57114 => array('description' => 'Chronopost Express International', 'shippingService' => 'FR_ChronopostExpressInternational', 'shippingServiceID' => '57114'), 7106 => array('description' => 'Colissimo Recommandé', 'shippingService' => 'FR_ColiposteColissimoRecommended', 'shippingServiceID' => '7106'), 57109 => array('description' => 'Chronopost Classic International', 'shippingService' => 'FR_ChronopostClassicInternational', 'shippingServiceID' => '57109'), 57110 => array('description' => 'Chronopost Premium International', 'shippingService' => 'FR_ChronopostPremiumInternational', 'shippingServiceID' => '57110'), 7117 => array('description' => 'Chronopost - Chrono Relais', 'shippingService' => 'FR_ChronopostChronoRelais', 'shippingServiceID' => '7117'), 57111 => array('description' => 'UPS Standard', 'shippingService' => 'FR_UPSStandardInternational', 'shippingServiceID' => '57111'), 7111 => array('description' => 'Autre mode d\'envoi de courrier', 'shippingService' => 'FR_Autre', 'shippingServiceID' => '7111'), 57112 => array('description' => 'UPS Express', 'shippingService' => 'FR_UPSExpressInternational', 'shippingServiceID' => '57112'), 7114 => array('description' => 'Autre mode d\'envoi de colis', 'shippingService' => 'FR_AuteModeDenvoiDeColis', 'shippingServiceID' => '7114'), 57113 => array('description' => 'DHL', 'shippingService' => 'FR_DHLInternational', 'shippingServiceID' => '57113'), 57101 => array('description' => 'Frais de livraison internationale fixes', 'shippingService' => 'FR_StandardInternational', 'shippingServiceID' => '57101'), 7116 => array('description' => 'Chronopost', 'shippingService' => 'FR_Chronopost', 'shippingServiceID' => '7116'), 57102 => array('description' => 'Frais fixes pour livraison internationale express', 'shippingService' => 'FR_ExpeditedInternational', 'shippingServiceID' => '57102'), 57103 => array('description' => 'Autres livraisons internationales (voir description)', 'shippingService' => 'FR_OtherInternational', 'shippingServiceID' => '57103'), 7118 => array('description' => 'Chrono 10', 'shippingService' => 'FR_Chrono10', 'shippingServiceID' => '7118'), 7119 => array('description' => 'Chrono 13', 'shippingService' => 'FR_Chrono13', 'shippingServiceID' => '7119'), 7120 => array('description' => 'Chrono 18', 'shippingService' => 'FR_Chrono18', 'shippingServiceID' => '7120'), 7105 => array('description' => 'Coliposte - Colissimo Direct', 'shippingService' => 'FR_ColiposteColissimoDirect', 'shippingServiceID' => '7105'), 7107 => array('description' => 'Chronoposte - Chrono Classic International', 'shippingService' => 'FR_ChronoposteInternationalClassic', 'shippingServiceID' => '7107'), 7108 => array('description' => 'DHL - Express Europack', 'shippingService' => 'FR_DHLExpressEuropack', 'shippingServiceID' => '7108'), 7109 => array('description' => 'UPS - Standard', 'shippingService' => 'FR_UPSStandard', 'shippingServiceID' => '7109'), ); } /******************************************************************/ /******************************************************************/ public function install() { global $cookie; // Install SQL include(dirname(__FILE__).'/sql-install.php'); foreach ($sql as $s) if (!Db::getInstance()->Execute($s)) return false; // Install Module if (!parent::install() || !$this->registerHook('addproduct') || !$this->registerHook('updateproduct') || !$this->registerHook('updateProductAttribute') || !$this->registerHook('deleteproduct') || !$this->registerHook('newOrder') || !$this->registerHook('backOfficeTop') || !$this->registerHook('backOfficeFooter') || !$this->registerHook('header') || !$this->registerHook('updateOrderStatus')) return false; // Generate Product Template $content = file_get_contents(dirname(__FILE__).'/template/ebay.tpl'); $content = str_replace('{SHOP_NAME}', Configuration::get('PS_SHOP_NAME'), $content); $content = str_replace('{SHOP_URL}', 'http://'.Configuration::get('PS_SHOP_DOMAIN').'/'.__PS_BASE_URI__.'/', $content); $content = str_replace('{MODULE_URL}', 'http://'.Configuration::get('PS_SHOP_DOMAIN').'/'.__PS_BASE_URI__.'/modules/ebay/', $content); Configuration::updateValue('EBAY_PRODUCT_TEMPLATE', ''); Configuration::updateValue('EBAY_PRODUCT_TEMPLATE', $content, true); // Init Configuration::updateValue('EBAY_VERSION', $this->version); return true; } public function uninstall() { global $cookie; // Uninstall Config foreach ($this->_fieldsList as $keyConfiguration => $name) if (!Configuration::deleteByName($keyConfiguration)) return false; // Uninstall SQL include(dirname(__FILE__).'/sql-uninstall.php'); foreach ($sql as $s) if (!Db::getInstance()->Execute($s)) return false; Configuration::deleteByName('EBAY_API_SESSION'); Configuration::deleteByName('EBAY_API_USERNAME'); Configuration::deleteByName('EBAY_API_TOKEN'); Configuration::deleteByName('EBAY_IDENTIFIER'); Configuration::deleteByName('EBAY_SHOP'); Configuration::deleteByName('EBAY_PAYPAL_EMAIL'); Configuration::deleteByName('EBAY_SHIPPING_CARRIER_ID'); Configuration::deleteByName('EBAY_SHIPPING_COST'); Configuration::deleteByName('EBAY_SHIPPING_COST_CURRENCY'); Configuration::deleteByName('EBAY_SHOP_POSTALCODE'); Configuration::deleteByName('EBAY_CATEGORY_LOADED'); Configuration::deleteByName('EBAY_CATEGORY_LOADED_DATE'); Configuration::deleteByName('EBAY_PRODUCT_TEMPLATE'); Configuration::deleteByName('EBAY_SYNC_MODE'); Configuration::deleteByName('EBAY_ORDER_LAST_UPDATE'); Configuration::deleteByName('EBAY_VERSION'); Configuration::deleteByName('EBAY_SECURITY_TOKEN'); // Uninstall Module if (!parent::uninstall() || !$this->unregisterHook('addproduct') || !$this->unregisterHook('updateproduct') || !$this->unregisterHook('updateProductAttribute') || !$this->unregisterHook('deleteproduct') || !$this->unregisterHook('newOrder') || !$this->unregisterHook('backOfficeTop') || !$this->unregisterHook('backOfficeFooter') || !$this->unregisterHook('header') || !$this->unregisterHook('updateOrderStatus')) return false; // Clean Cookie $cookie->eBaySession = ''; $cookie->eBayUsername = ''; return true; } public function upgrade() { $version = Configuration::get('EBAY_VERSION'); if ($version == '1.1' || empty($version)) { // Upgrade SQL include(dirname(__FILE__).'/sql-upgrade-1-2.php'); foreach ($sql as $s) if (!Db::getInstance()->Execute($s)) return false; Configuration::updateValue('EBAY_VERSION', $this->version); } } /******************************************************************/ /******************************************************************/ public function hookNewOrder($params) { if ((int)$params['cart']->id < 1) return false; $sql = '`id_product` IN (SELECT `id_product` FROM `'._DB_PREFIX_.'cart_product` WHERE `id_cart` = '.(int)$params['cart']->id.')'; if (Configuration::get('EBAY_SYNC_MODE') == 'A') { // Retrieve product list for eBay (which have matched categories) AND Send each product on eBay $productsList = Db::getInstance()->ExecuteS('SELECT `id_product` FROM `'._DB_PREFIX_.'product` WHERE '.$sql.' AND `active` = 1 AND `id_category_default` IN (SELECT `id_category` FROM `'._DB_PREFIX_.'ebay_category_configuration` WHERE `id_category` > 0 AND `id_ebay_category` > 0)'); foreach ($productList as $k => $v) $productList[$k]['noPriceUpdate'] = 1; if ($productsList) $this->_syncProducts($productsList); } elseif (Configuration::get('EBAY_SYNC_MODE') == 'B') { // Select the sync Categories and Retrieve product list for eBay (which have matched and sync categories) AND Send each product on eBay $productsList = Db::getInstance()->ExecuteS('SELECT `id_product` FROM `'._DB_PREFIX_.'product` WHERE '.$sql.' AND `active` = 1 AND `id_category_default` IN (SELECT `id_category` FROM `'._DB_PREFIX_.'ebay_category_configuration` WHERE `id_category` > 0 AND `id_ebay_category` > 0 AND `sync` = 1)'); foreach ($productList as $k => $v) $productList[$k]['noPriceUpdate'] = 1; if ($productsList) $this->_syncProducts($productsList); } } public function hookaddproduct($params) { if (!isset($params['product']->id)) return false; $id_product = $params['product']->id; if ((int)$id_product < 1) return false; if (Configuration::get('EBAY_SYNC_MODE') == 'A') { // Retrieve product list for eBay (which have matched categories) AND Send each product on eBay $productsList = Db::getInstance()->ExecuteS('SELECT `id_product` FROM `'._DB_PREFIX_.'product` WHERE `id_product` = '.(int)$id_product.' AND `active` = 1 AND `id_category_default` IN (SELECT `id_category` FROM `'._DB_PREFIX_.'ebay_category_configuration` WHERE `id_category` > 0 AND `id_ebay_category` > 0)'); if ($productsList) $this->_syncProducts($productsList); } elseif (Configuration::get('EBAY_SYNC_MODE') == 'B') { // Select the sync Categories and Retrieve product list for eBay (which have matched and sync categories) AND Send each product on eBay $productsList = Db::getInstance()->ExecuteS('SELECT `id_product` FROM `'._DB_PREFIX_.'product` WHERE `id_product` = '.(int)$id_product.' AND `active` = 1 AND `id_category_default` IN (SELECT `id_category` FROM `'._DB_PREFIX_.'ebay_category_configuration` WHERE `id_category` > 0 AND `id_ebay_category` > 0 AND `sync` = 1)'); if ($productsList) $this->_syncProducts($productsList); } } public function hookbackOfficeTop($params) { // Check if the module is configured if (!Configuration::get('EBAY_PAYPAL_EMAIL')) return false; // Fix hook update product attribute $this->hookupdateProductAttributeEbay(); // If no update yet if (!Configuration::get('EBAY_ORDER_LAST_UPDATE')) Configuration::updateValue('EBAY_ORDER_LAST_UPDATE', date('Y-m-d').'T'.date('H:i:s').'.000Z'); // init Var $dateNew = date('Y-m-d').'T'.date('H:i:s').'.000Z'; if (Configuration::get('EBAY_ORDER_LAST_UPDATE') < date('Y-m-d', strtotime('-30 minutes')).'T'.date('H:i:s', strtotime('-30 minutes')).'.000Z') { // Lock Configuration::updateValue('EBAY_ORDER_LAST_UPDATE', $dateNew); // eBay Request $ebay = new eBayRequest(); $page = 1; $orderList = array(); $orderCount = 0; $orderCountTmp = 100; while ($orderCountTmp == 100 && $page < 10) { $orderListTmp = $ebay->getOrders(date('Y-m-d', strtotime('-30 days')).'T'.date('H:i:s', strtotime('-30 days')).'.000Z', $dateNew, $page); $orderCountTmp = count($orderListTmp); $orderList = array_merge((array)$orderList, (array)$orderListTmp); $orderCount += $orderCountTmp; $page++; } if ($orderList) { foreach ($orderList as $korder => $order) { if ($order['status'] == 'Complete' && $order['amount'] > 0.1 && isset($order['product_list']) && count($order['product_list'])) { if (!Db::getInstance()->getValue('SELECT `id_ebay_order` FROM `'._DB_PREFIX_.'ebay_order` WHERE `id_order_ref` = \''.pSQL($order['id_order_ref']).'\'')) { // Check for empty name $order['firstname'] = trim($order['firstname']); $order['familyname'] = trim($order['familyname']); if (empty($order['familyname'])) $order['familyname'] = $order['firstname']; if (empty($order['firstname'])) $order['firstname'] = $order['familyname']; if (empty($order['phone']) || !Validate::isPhoneNumber($order['phone'])) $order['phone'] = '0100000000'; if (Validate::isEmail($order['email']) && !empty($order['firstname']) && !empty($order['familyname'])) { // Getting the customer $id_customer = (int)Db::getInstance()->getValue('SELECT `id_customer` FROM `'._DB_PREFIX_.'customer` WHERE `active` = 1 AND `email` = \''.pSQL($order['email']).'\' AND `deleted` = 0'.(substr(_PS_VERSION_, 0, 3) == '1.3' ? '' : ' AND `is_guest` = 0')); // Add customer if he doesn't exist if ($id_customer < 1) { $customer = new Customer(); $customer->id_gender = 9; $customer->id_default_group = 1; $customer->secure_key = md5(uniqid(rand(), true)); $customer->email = $order['email']; $customer->passwd = md5(pSQL(_COOKIE_KEY_.rand())); $customer->last_passwd_gen = pSQL(date('Y-m-d H:i:s')); $customer->newsletter = 0; $customer->lastname = pSQL($order['familyname']); $customer->firstname = pSQL($order['firstname']); $customer->active = 1; $customer->add(); $id_customer = $customer->id; } // Search if address exists $id_address = (int)Db::getInstance()->getValue('SELECT `id_address` FROM `'._DB_PREFIX_.'address` WHERE `id_customer` = '.(int)$id_customer.' AND `alias` = \'eBay\''); if ($id_address > 0) $address = new Address((int)$id_address); else { $address = new Address(); $address->id_customer = (int)$id_customer; } $address->id_country = (int)Country::getByIso($order['country_iso_code']); $address->alias = 'eBay'; $address->lastname = pSQL($order['familyname']); $address->firstname = pSQL($order['firstname']); $address->address1 = pSQL($order['address1']); $address->address2 = pSQL($order['address2']); $address->postcode = pSQL($order['postalcode']); $address->city = pSQL($order['city']); $address->phone = pSQL($order['phone']); $address->active = 1; if ($id_address > 0 && Validate::isLoadedObject($address)) $address->update(); else $address->add(); $id_address = $address->id; $flag = 1; foreach ($order['product_list'] as $product) { if ((int)$product['id_product'] < 1 || !Db::getInstance()->getValue('SELECT `id_product` FROM `'._DB_PREFIX_.'product` WHERE `id_product` = '.(int)$product['id_product'])) $flag = 0; if (isset($product['id_product_attribute']) && $product['id_product_attribute'] > 0 && !Db::getInstance()->getValue('SELECT `id_product_attribute` FROM `'._DB_PREFIX_.'product_attribute` WHERE `id_product` = '.(int)$product['id_product'].' AND `id_product_attribute` = '.(int)$product['id_product_attribute'])) $flag = 0; } if ($flag == 1) { $cartNbProducts = 0; $cartAdd = new Cart(); $cartAdd->id_customer = $id_customer; $cartAdd->id_address_invoice = $id_address; $cartAdd->id_address_delivery = $id_address; $cartAdd->id_carrier = 0; $cartAdd->id_lang = $this->id_lang; $cartAdd->id_currency = Currency::getIdByIsoCode('EUR'); $cartAdd->recyclable = 0; $cartAdd->gift = 0; $cartAdd->add(); foreach ($order['product_list'] as $product) if ($cartAdd->updateQty((int)($product['quantity']), (int)($product['id_product']), ((isset($product['id_product_attribute']) && $product['id_product_attribute'] > 0) ? $product['id_product_attribute'] : NULL))) $cartNbProducts++; $cartAdd->update(); // Check number of products in the cart if ($cartNbProducts > 0 && !Db::getInstance()->getValue('SELECT `id_ebay_order` FROM `'._DB_PREFIX_.'ebay_order` WHERE `id_order_ref` = \''.pSQL($order['id_order_ref']).'\'')) { // Fix on sending e-mail Db::getInstance()->autoExecute(_DB_PREFIX_.'customer', array('email' => 'NOSEND-EBAY'), 'UPDATE', '`id_customer` = '.(int)$id_customer); $customerClear = new Customer(); if (method_exists($customerClear, 'clearCache')) $customerClear->clearCache(true); // Validate order $paiement = new eBayPayment(); $paiement->validateOrder(intval($cartAdd->id), Configuration::get('PS_OS_PAYMENT'), floatval($cartAdd->getOrderTotal(true, 3)), 'eBay '.$order['payment_method'].' '.$order['id_order_seller'], NULL, array(), intval($cartAdd->id_currency)); $id_order = $paiement->currentOrder; // Fix on date Db::getInstance()->autoExecute(_DB_PREFIX_.'orders', array('date_add' => pSQL($order['date_add'])), 'UPDATE', '`id_order` = '.(int)$id_order); // Fix on sending e-mail Db::getInstance()->autoExecute(_DB_PREFIX_.'customer', array('email' => pSQL($order['email'])), 'UPDATE', '`id_customer` = '.(int)$id_customer); // Update price (because of possibility of price impact) foreach ($order['product_list'] as $product) { $tax_rate = Db::getInstance()->getValue('SELECT `tax_rate` FROM `'._DB_PREFIX_.'order_detail` WHERE `id_order` = '.(int)$id_order.' AND `product_id` = '.(int)$product['id_product'].' AND `product_attribute_id` = '.(int)$product['id_product_attribute']); Db::getInstance()->autoExecute(_DB_PREFIX_.'order_detail', array('product_price' => floatval($product['price'] / (1 + ($tax_rate / 100))), 'reduction_percent' => 0), 'UPDATE', '`id_order` = '.(int)$id_order.' AND `product_id` = '.(int)$product['id_product'].' AND `product_attribute_id` = '.(int)$product['id_product_attribute']); } $updateOrder = array( 'total_paid' => floatval($order['amount']), 'total_paid_real' => floatval($order['amount']), 'total_products' => floatval(Db::getInstance()->getValue('SELECT SUM(`product_price`) FROM `'._DB_PREFIX_.'order_detail` WHERE `id_order` = '.(int)$id_order)), 'total_products_wt' => floatval($order['amount'] - $order['shippingServiceCost']), 'total_shipping' => floatval($order['shippingServiceCost']), ); Db::getInstance()->autoExecute(_DB_PREFIX_.'orders', $updateOrder, 'UPDATE', '`id_order` = '.(int)$id_order); // Register the ebay order ref Db::getInstance()->autoExecute(_DB_PREFIX_.'ebay_order', array('id_order_ref' => pSQL($order['id_order_ref']), 'id_order' => (int)$id_order), 'INSERT'); } else { $cartAdd->delete(); $orderList[$korder]['errors'][] = $this->l('Could not add product to cart (maybe your stock quantity is 0)'); } } else $orderList[$korder]['errors'][] = $this->l('Could not found products in database'); } else $orderList[$korder]['errors'][] = $this->l('Invalid e-mail'); } else $orderList[$korder]['errors'][] = $this->l('Order already imported'); } else $orderList[$korder]['errors'][] = $this->l('Status not complete or amount less than 0.1 or no product matching'); } file_put_contents(dirname(__FILE__).'/log/orders.php', "<?php\n\n".'$dateLastImport = '."'".date('d/m/Y H:i:s')."';\n\n".'$orderList = '.var_export($orderList, true).";\n\n"); } } } public function hookupdateOrderStatus($params) { } // Alias public function hookupdateproduct($params) { $this->hookaddproduct($params); } public function hookupdateProductAttribute($params) { } public function hookupdateProductAttributeEbay() { if (isset($_POST['submitProductAttribute']) && isset($_POST['id_product_attribute'])) { $params = array(); $params['id_product_attribute'] = (int)$_POST['id_product_attribute']; if ($params['id_product_attribute'] > 0) { $id_product = Db::getInstance()->getValue('SELECT `id_product` FROM `'._DB_PREFIX_.'product_attribute` WHERE `id_product_attribute` = '.(int)$params['id_product_attribute']); $params['product'] = new Product($id_product); $this->hookaddproduct($params); } } } public function hookdeleteproduct($params) { $this->hookaddproduct($params); } public function hookheader($params) { $this->hookbackOfficeTop($params); } public function hookbackOfficeFooter($params) { $this->hookbackOfficeTop($params); } /******************************************************************/ /******************************************************************/ public function getContent() { global $cookie; $this->_html .= '<h2>' . $this->l('eBay').'</h2>'; // Checking Country if (Tools::getValue('ebay_country_default_fr') == 'ok') $cookie->ebay_country_default_fr = true; if (strtolower(Country::getIsoById(Configuration::get('PS_COUNTRY_DEFAULT'))) != 'fr' && !isset($cookie->ebay_country_default_fr)) return $this->_html.$this->displayError($this->l('eBay module currently works only for eBay.fr').'. <a href="'.Tools::safeOutput($_SERVER['REQUEST_URI']).'&ebay_country_default_fr=ok">'.$this->l('Continue anyway ?').'</a>'); // Checking Extension if (!extension_loaded('curl') || !ini_get('allow_url_fopen')) { if (!extension_loaded('curl') && !ini_get('allow_url_fopen')) return $this->_html.$this->displayError($this->l('You must enable cURL extension and allow_url_fopen option on your server if you want to use this module.')); elseif (!extension_loaded('curl')) return $this->_html.$this->displayError($this->l('You must enable cURL extension on your server if you want to use this module.')); elseif (!ini_get('allow_url_fopen')) return $this->_html.$this->displayError($this->l('You must enable allow_url_fopen option on your server if you want to use this module.')); } // If isset Post Var, post process else display form if (!empty($_POST) && (Tools::isSubmit('submitSave') || Tools::isSubmit('submitSave1') || Tools::isSubmit('submitSave2'))) { $this->_postValidation(); if (!sizeof($this->_postErrors)) $this->_postProcess(); else foreach ($this->_postErrors AS $err) $this->_html .= '<div class="alert error"><img src="../modules/ebay/forbbiden.gif" alt="nok" /> '.$err.'</div>'; } $this->_displayForm(); return $this->_html; } private function _displayForm() { // Test alert $alert = array(); if (!Configuration::get('EBAY_API_TOKEN')) $alert['registration'] = 1; if (!ini_get('allow_url_fopen')) $alert['allowurlfopen'] = 1; if (!extension_loaded('curl')) $alert['curl'] = 1; // Displaying Information from Prestashop $stream_context = @stream_context_create(array('http' => array('method'=>"GET", 'timeout' => 2))); $prestashopContent = @file_get_contents('http://www.prestashop.com/partner/modules/ebay.php?version='.$this->version.'&shop='.urlencode(Configuration::get('PS_SHOP_NAME')).'®istered='.($alert['registration'] == 1 ? 'no' : 'yes').'&url='.urlencode($_SERVER['HTTP_HOST']).'&iso_country='.$isoCountry.'&iso_lang='.Tools::strtolower($isoUser).'&id_lang='.(int)$cookie->id_lang.'&email='.urlencode(Configuration::get('PS_SHOP_EMAIL')).'&security='.md5(Configuration::get('PS_SHOP_EMAIL')._COOKIE_IV_), false, $stream_context); if (!Validate::isCleanHtml($prestashopContent)) $prestashopContent = ''; // Displaying page $this->_html .= '<fieldset> <legend><img src="'.$this->_path.'logo.gif" alt="" /> '.$this->l('eBay Module Status').'</legend>'; $this->_html .= '<div style="float: left; width: 45%">'; if (!count($alert)) $this->_html .= '<img src="../modules/ebay/valid.png" /><strong>'.$this->l('eBay Module is configured and online!').'</strong>'; else { $this->_html .= '<img src="../modules/ebay/warn.png" /><strong>'.$this->l('eBay Module is not configured yet, you must:').'</strong>'; $this->_html .= '<br />'.(isset($alert['registration']) ? '<img src="../modules/ebay/warn.png" />' : '<img src="../modules/ebay/valid.png" />').' 1) '.$this->l('Register the module on eBay'); $this->_html .= '<br />'.(isset($alert['allowurlfopen']) ? '<img src="../modules/ebay/warn.png" />' : '<img src="../modules/ebay/valid.png" />').' 2) '.$this->l('Allow url fopen'); $this->_html .= '<br />'.(isset($alert['curl']) ? '<img src="../modules/ebay/warn.png" />' : '<img src="../modules/ebay/valid.png" />').' 3) '.$this->l('Enable cURL'); } $this->_html .= '</div><div style="float: right; width: 45%">'.$prestashopContent.'</div>'; $this->_html .= '</fieldset><div class="clear"> </div>'; if (!Configuration::get('EBAY_API_TOKEN')) $this->_html .= $this->_displayFormRegister(); else $this->_html .= $this->_displayFormConfig(); } private function _postValidation() { if (!Configuration::get('EBAY_API_TOKEN')) $this->_postValidationRegister(); elseif (Tools::getValue('section') == 'parameters') $this->_postValidationParameters(); elseif (Tools::getValue('section') == 'category') $this->_postValidationCategory(); elseif (Tools::getValue('section') == 'template') $this->_postValidationTemplateManager(); elseif (Tools::getValue('section') == 'sync') $this->_postValidationEbaySync(); } private function _postProcess() { if (!Configuration::get('EBAY_API_TOKEN')) $this->_postProcessRegister(); elseif (Tools::getValue('section') == 'parameters') $this->_postProcessParameters(); elseif (Tools::getValue('section') == 'category') $this->_postProcessCategory(); elseif (Tools::getValue('section') == 'template') $this->_postProcessTemplateManager(); elseif (Tools::getValue('section') == 'sync') $this->_postProcessEbaySync(); } /******************************************************************/ /******************************************************************/ private function _displayFormRegister() { global $cookie; $ebay = new eBayRequest(); if (!empty($cookie->eBaySession) && isset($_GET['action']) && $_GET['action'] == 'logged') { if (isset($_POST['eBayUsername'])) { $cookie->eBayUsername = $_POST['eBayUsername']; Configuration::updateValue('EBAY_API_USERNAME', $_POST['eBayUsername']); } $ebay->session = $cookie->eBaySession; $ebay->username = $cookie->eBayUsername; $html = ' <script> function checkToken() { $.ajax({ url: \''._MODULE_DIR_.'ebay/ajax/checkToken.php?token='.Configuration::get('EBAY_SECURITY_TOKEN').'&time='.pSQL(date('Ymdhis')).'\', success: function(data) { if (data == \'OK\') window.location.href = \'index.php?tab='.Tools::safeOutput($_GET['tab']).'&configure='.Tools::safeOutput($_GET['configure']).'&token='.Tools::safeOutput($_GET['token']).'&tab_module='.Tools::safeOutput($_GET['tab_module']).'&module_name='.Tools::safeOutput($_GET['module_name']).'&action=validateToken\'; else setTimeout ("checkToken()", 5000); } }); } checkToken(); </script>'; $html .= '<fieldset><legend><img src="'.$this->_path.'logo.gif" alt="" title="" />'.$this->l('Register the module on eBay').'</legend>'; $html .= '<p align="center"><img src="'.$this->_path.'loading.gif" alt="'.$this->l('Loading').'" title="'.$this->l('Loading').'" /></p>'; $html .= '<p align="center">'.$this->l('Once you sign in from the new eBay window, the module will automatically finish the installation a few seconds later').'</p>'; $html .= '</fieldset>'; } else { if (empty($cookie->eBaySession)) { $ebay->login(); $cookie->eBaySession = $ebay->session; Configuration::updateValue('EBAY_API_SESSION', $ebay->session); } $html = ' <style>#button_ebay{background-image:url('.$this->_path.'ebay.gif);background-repeat:no-repeat;background-position:center 100px;width:385px;height:191px;cursor:pointer;padding-bottom:70px;font-weight:bold;font-size:22px;}</style> <script> $(document).ready(function() { $(\'#button_ebay\').click(function() { if ($(\'#eBayUsername\').val() == \'\') { alert(\''.$this->l('You have to set your eBay User ID').'\'); return false; } else window.open(\''.$ebay->getLoginUrl().'?SignIn&runame='.$ebay->runame.'&SessID='.$cookie->eBaySession.'\'); }); }); </script> <form action="'.Tools::safeOutput($_SERVER['REQUEST_URI']).'&action=logged" method="post"> <fieldset> <legend><img src="'.$this->_path.'logo.gif" alt="" title="" />'.$this->l('Register the module on eBay').'</legend> <label>'.$this->l('Click on the button below').'</label> <div class="margin-form"> <br class="clear"/> <label for="eBayUsername">'.$this->l('eBay User ID').' </label><input id="eBayUsername" type="text" name="eBayUsername" value="'.$cookie->eBayUsername.'" /> <br class="clear"/><br /> <input type="submit" id="button_ebay" class="button" value="'.$this->l('Register the module on eBay').'" /> </div> </fieldset> </form>'; } return $html; } private function _postValidationRegister() { } private function _postProcessRegister() { } /******************************************************************/ /******************************************************************/ private function _displayFormConfig() { $html = ' <ul id="menuTab"> <li id="menuTab1" class="menuTabButton selected">1. '.$this->l('Parameters').'</li> <li id="menuTab2" class="menuTabButton">2. '.$this->l('Categories settings').'</li> <li id="menuTab3" class="menuTabButton">3. '.$this->l('Template manager').'</li> <li id="menuTab4" class="menuTabButton">4. '.$this->l('eBay Sync').'</li> <li id="menuTab5" class="menuTabButton">5. '.$this->l('Orders history').'</li> <li id="menuTab6" class="menuTabButton">6. '.$this->l('Help').'</li> </ul> <div id="tabList"> <div id="menuTab1Sheet" class="tabItem selected">'.$this->_displayFormParameters().'</div> <div id="menuTab2Sheet" class="tabItem">'.$this->_displayFormCategory().'</div> <div id="menuTab3Sheet" class="tabItem">'.$this->_displayFormTemplateManager().'</div> <div id="menuTab4Sheet" class="tabItem">'.$this->_displayFormEbaySync().'</div> <div id="menuTab5Sheet" class="tabItem">'.$this->_displayOrdersHistory().'</div> <div id="menuTab6Sheet" class="tabItem">'.$this->_displayHelp().'</div> </div> <br clear="left" /> <br /> <style> #menuTab { float: left; padding: 0; margin: 0; text-align: left; } #menuTab li { text-align: left; float: left; display: inline; padding: 5px; padding-right: 10px; background: #EFEFEF; font-weight: bold; cursor: pointer; border-left: 1px solid #EFEFEF; border-right: 1px solid #EFEFEF; border-top: 1px solid #EFEFEF; } #menuTab li.menuTabButton.selected { background: #FFF6D3; border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; border-top: 1px solid #CCCCCC; } #tabList { clear: left; } .tabItem { display: none; } .tabItem.selected { display: block; background: #FFFFF0; border: 1px solid #CCCCCC; padding: 10px; padding-top: 20px; } </style> <script> $(".menuTabButton").click(function () { $(".menuTabButton.selected").removeClass("selected"); $(this).addClass("selected"); $(".tabItem.selected").removeClass("selected"); $("#" + this.id + "Sheet").addClass("selected"); }); </script> '; if (isset($_GET['id_tab'])) $html .= '<script> $(".menuTabButton.selected").removeClass("selected"); $("#menuTab'.Tools::safeOutput($_GET['id_tab']).'").addClass("selected"); $(".tabItem.selected").removeClass("selected"); $("#menuTab'.Tools::safeOutput($_GET['id_tab']).'Sheet").addClass("selected"); </script>'; return $html; } private function _displayFormParameters() { global $cookie; // Loading config currency $configCurrency = new Currency((int)(Configuration::get('PS_CURRENCY_DEFAULT'))); // Display Form $html = '<form action="index.php?tab='.Tools::safeOutput($_GET['tab']).'&configure='.Tools::safeOutput($_GET['configure']).'&token='.Tools::safeOutput($_GET['token']).'&tab_module='.Tools::safeOutput($_GET['tab_module']).'&module_name='.Tools::safeOutput($_GET['module_name']).'&id_tab=1§ion=parameters" method="post" class="form" id="configForm1"> <fieldset style="border: 0"> <h4>'.$this->l('To export your products on eBay, you have to create a pro account on eBay (see Help) and configure your eBay-Prestashop module.').'</h4> <label>'.$this->l('eBay Identifier').' : </label> <div class="margin-form"> <input type="text" size="20" name="ebay_identifier" value="'.Tools::safeOutput(Tools::getValue('ebay_identifier', Configuration::get('EBAY_IDENTIFIER'))).'" /> <p>'.(Configuration::get('EBAY_IDENTIFIER') ? '<a href="http://shop.ebay.fr/'.Configuration::get('EBAY_IDENTIFIER').'/m.html?_ipg=50&_sop=12&_rdc=1" target="_blank">'.$this->l('Your products on eBay').'</a>' : $this->l('Your eBay identifier')).'</p> </div> <label>'.$this->l('eBay shop').' : </label> <div class="margin-form"> <input type="text" size="20" name="ebay_shop" value="'.Tools::safeOutput(Tools::getValue('ebay_shop', Configuration::get('EBAY_SHOP'))).'" /> <p>'.(Configuration::get('EBAY_SHOP') ? '<a href="http://stores.ebay.fr/'.Configuration::get('EBAY_SHOP').'" target="_blank">'.$this->l('Your shop on eBay').'</a>' : $this->l('Your eBay shop name')).'</p> </div> <label>'.$this->l('Paypal Identifier (e-mail)').' : </label> <div class="margin-form"> <input type="text" size="20" name="ebay_paypal_email" value="'.Tools::safeOutput(Tools::getValue('ebay_paypal_email', Configuration::get('EBAY_PAYPAL_EMAIL'))).'" /> <p>'.$this->l('You have to set your PayPal e-mail account, it\'s the only payment available with this module').'</p> </div> <label>'.$this->l('Shipping method').' : </label> <div class="margin-form"> <select name="ebay_shipping_carrier_id">'; foreach ($this->_shippingMethod as $id => $val) $html .= '<option value="'.$id.'" '.(Tools::getValue('ebay_shipping_carrier_id', Configuration::get('EBAY_SHIPPING_CARRIER_ID')) == $id ? 'selected="selected"' : '').'>'.$val['description'].'</option>'; $html .= ' </select> <p>'.$this->l('Shipping cost configuration for your products on eBay').'</p> </div> <label>'.$this->l('Shipping cost').' : </label> <div class="margin-form"> <input type="text" size="20" name="ebay_shipping_cost" value="'.Tools::safeOutput(Tools::getValue('ebay_shipping_cost', Configuration::get('EBAY_SHIPPING_COST'))).'" /> '.$configCurrency->sign.' <p>'.$this->l('Shipping cost configuration for your products on eBay').'</p> </div> <label>'.$this->l('Shop postal code').' : </label> <div class="margin-form"> <input type="text" size="20" name="ebay_shop_postalcode" value="'.Tools::safeOutput(Tools::getValue('ebay_shop_postalcode', Configuration::get('EBAY_SHOP_POSTALCODE'))).'" /> <p>'.$this->l('Your shop\'s postal code').'</p> </div> </fieldset> <div class="margin-form" id="buttonEbayParameters"><input class="button" name="submitSave" type="submit" id="save_ebay_parameters" value="'.$this->l('Save').'" /></div> <div class="margin-form" id="categoriesProgression" style="font-weight: bold;"></div> </form>'; if (!Configuration::get('EBAY_CATEGORY_LOADED')) { $html .= ' <script> percent = 0; function checkCategories() { percent++; if (percent > 100) percent = 100; $("#categoriesProgression").html("'.$this->l('Categories loading').' : " + percent + " %"); if (percent < 100) setTimeout ("checkCategories()", 1000); } $(document).ready(function() { $("#save_ebay_parameters").click(function() { $("#buttonEbayParameters").hide(); checkCategories(); }); }); </script>'; } return $html; } private function _postValidationParameters() { // Check configuration values if (Tools::getValue('ebay_identifier') == NULL) $this->_postErrors[] = $this->l('Your eBay identifier account is not specified or is invalid'); if (Tools::getValue('ebay_paypal_email') == NULL OR !Validate::isEmail(Tools::getValue('ebay_paypal_email'))) $this->_postErrors[] = $this->l('Your Paypal E-mail account is not specified or is invalid'); if (Tools::getValue('ebay_shipping_cost') == '' OR !is_numeric(Tools::getValue('ebay_shipping_cost'))) $this->_postErrors[] = $this->l('Your shipping cost is not specified or is invalid'); if (Tools::getValue('ebay_shop_postalcode') == '' OR !Validate::isPostCode(Tools::getValue('ebay_shop_postalcode'))) $this->_postErrors[] = $this->l('Your shop\'s postal code is not specified or is invalid'); } private function _postProcessParameters() { // Saving new configurations if (Configuration::updateValue('EBAY_PAYPAL_EMAIL', pSQL(Tools::getValue('ebay_paypal_email'))) && Configuration::updateValue('EBAY_IDENTIFIER', pSQL(Tools::getValue('ebay_identifier'))) && Configuration::updateValue('EBAY_SHOP', pSQL(Tools::getValue('ebay_shop'))) && Configuration::updateValue('EBAY_SHIPPING_COST', (float)(Tools::getValue('ebay_shipping_cost'))) && Configuration::updateValue('EBAY_SHIPPING_COST_CURRENCY', (int)(Configuration::get('PS_CURRENCY_DEFAULT'))) && Configuration::updateValue('EBAY_SHIPPING_CARRIER_ID', pSQL(Tools::getValue('ebay_shipping_carrier_id'))) && Configuration::updateValue('EBAY_SHOP_POSTALCODE', pSQL(Tools::getValue('ebay_shop_postalcode')))) $this->_html .= $this->displayConfirmation($this->l('Settings updated')); else $this->_html .= $this->displayError($this->l('Settings failed')); } /******************************************************************/ /******************************************************************/ private function _getChildCategories($categories, $id, $path = array(), $pathAdd = '') { $categoryTmp = array(); $categoryTab = array(); if ($pathAdd != '') $path[] = $pathAdd; if (isset($categories[$id])) foreach ($categories[$id] as $idc => $cc) { $name = ''; if ($path) foreach ($path as $p) $name .= $p.' > '; $name .= $cc['infos']['name']; $categoryTab[] = array('id_category' => $cc['infos']['id_category'], 'name' => $name); $categoryTmp = $this->_getChildCategories($categories, $idc, $path, $cc['infos']['name']); $categoryTab = array_merge($categoryTab, $categoryTmp); } return $categoryTab; } private function _displayFormCategory() { global $cookie; // Check if the module is configured if (!Configuration::get('EBAY_PAYPAL_EMAIL')) return '<p><b>'.$this->l('You have to configure "General Settings" tab before using this tab.').'</b></p><br />'; // Load categories only if necessary if (Db::getInstance()->getValue('SELECT COUNT(`id_ebay_category_configuration`) FROM `'._DB_PREFIX_.'ebay_category_configuration`') >= 1 && Tools::getValue('section') != 'category') return '<p align="center"><b>'.$this->l('Your categories have already been configured.').'</b></p> <form action="index.php?tab='.Tools::safeOutput($_GET['tab']).'&configure='.Tools::safeOutput($_GET['configure']).'&token='.Tools::safeOutput($_GET['token']).'&tab_module='.Tools::safeOutput($_GET['tab_module']).'&module_name='.Tools::safeOutput($_GET['module_name']).'&id_tab=2§ion=category" method="post" class="form"> <p align="center"><input class="button" name="submitSave" type="submit" value="'.$this->l('See Categories').'" /></p></form>'; // Display eBay Categories if (!Configuration::get('EBAY_CATEGORY_LOADED')) { $ebay = new eBayRequest(); $ebay->saveCategories(); Configuration::updateValue('EBAY_CATEGORY_LOADED', 1); Configuration::updateValue('EBAY_CATEGORY_LOADED_DATE', date('Y-m-d H:i:s')); } // Loading categories $categoryConfigList = array(); $categoryConfigListTmp = Db::getInstance()->ExecuteS('SELECT * FROM `'._DB_PREFIX_.'ebay_category_configuration`'); foreach ($categoryConfigListTmp as $c) $categoryConfigList[$c['id_category']] = $c; $categoryList = $this->_getChildCategories(Category::getCategories($cookie->id_lang), 0); $eBayCategoryList = Db::getInstance()->ExecuteS('SELECT * FROM `'._DB_PREFIX_.'ebay_category` WHERE `id_category_ref` = `id_category_ref_parent`'); // Display header $html = '<p><b>'.$this->l('To export your products on eBay, you have to associate each one of your shop categories to an eBay category. You can also define an impact of your price on eBay.').'</b></p><br /> <form action="index.php?tab='.Tools::safeOutput($_GET['tab']).'&configure='.Tools::safeOutput($_GET['configure']).'&token='.Tools::safeOutput($_GET['token']).'&tab_module='.Tools::safeOutput($_GET['tab_module']).'&module_name='.Tools::safeOutput($_GET['module_name']).'&id_tab=2§ion=category&action=suggestCategories" method="post" class="form" id="configForm2SuggestedCategories"> <p><b>'.$this->l('You can use the button below to associate automatically the categories which have no association for the moment with an eBay suggested category.').'</b> <input class="button" name="submitSave" type="submit" value="'.$this->l('Suggest Categories').'" /> </p><br /> </form> <form action="index.php?tab='.Tools::safeOutput($_GET['tab']).'&configure='.Tools::safeOutput($_GET['configure']).'&token='.Tools::safeOutput($_GET['token']).'&tab_module='.Tools::safeOutput($_GET['tab_module']).'&module_name='.Tools::safeOutput($_GET['module_name']).'&id_tab=2§ion=category" method="post" class="form" id="configForm2"> <table class="table tableDnD" cellpadding="0" cellspacing="0" width="100%"> <thead> <tr class="nodrag nodrop"> <th style="width:120px">'.$this->l('Category').'</th> <th>'.$this->l('eBay Category').'</th> <th style="width:80px">'.$this->l('Price impact').'</th> </tr> </thead> <tbody>'; // Displaying categories if (!$categoryList) $html .= '<tr><td colspan="4">'.$this->l('No category found.').'</td></tr>'; foreach ($categoryList as $k => $c) { // Display line $alt = 0; if ($k % 2 != 0) $alt = ' class="alt_row"'; $html .= '<tr'.$alt.'> <td>'.$c['name'].'</td> <td id="categoryPath'.$c['id_category'].'"> <select name="category'.$c['id_category'].'" id="categoryLevel1-'.$c['id_category'].'" rel="'.$c['id_category'].'" style="font-size: 12px; width: 160px;" OnChange="changeCategoryMatch(1, '.$c['id_category'].');"> <option value="0">'.$this->l('No category selected').'</option>'; foreach ($eBayCategoryList as $ec) $html .= '<option value="'.$ec['id_ebay_category'].'">'.$ec['name'].($ec['is_multi_sku'] == 1 ? ' *' : '').'</option>'; $html .= '</select>'; if (isset($categoryConfigList[$c['id_category']])) $html .= '<script>$(document).ready(function() { loadCategoryMatch('.$c['id_category'].'); });</script>'; $html .= '</td> <td><select name="percent'.$c['id_category'].'" id="percent'.$c['id_category'].'" rel="'.$c['id_category'].'" style="font-size: 12px;">'; for ($i = 5; $i >= -80; $i--) $html .= '<option value="'.$i.'" '.((isset($categoryConfigList[$c['id_category']]) && $categoryConfigList[$c['id_category']]['percent'] == $i) || (!isset($categoryConfigList[$c['id_category']]) && $i == 0) ? 'selected="selected"' : '').'>'.(($i >= 0) ? $i : '- '.($i * -1)).' %</option>'; $html .= '</select></td></tr>'; } $html .= ' </tbody> </table><br /> <div class="margin-form"><input class="button" name="submitSave" type="submit" value="'.$this->l('Save').'" /></div> </form> <p><b>'.$this->l('Beware : Only product default categories are used for this configuration.').'</b></p><br /> <p align="left"> * Certaines catégories bénéficient du nouveau format d’annonces multi-versions qui permet de publier 1 seule annonce pour plusieurs versions du même produit.<br /> Pour les catégories ne bénéficiant pas de ce format multi-versions, une annonce sera créée pour chaque version du produit.<br /> <a href="http://sellerupdate.ebay.fr/may2011/multi-variation-listings.html" target="_blank">Cliquez ici pour plus d’informations sur les catégories multi-versions</a> </p><br /><br /> <script> function loadCategoryMatch(id_category) { $.ajax({ async: false, url: "'._MODULE_DIR_.'ebay/ajax/loadCategoryMatch.php?token='.Configuration::get('EBAY_SECURITY_TOKEN').'&id_category=" + id_category + "&time='.pSQL(date('Ymdhis')).'", success: function(data) { $("#categoryPath" + id_category).html(data); } }); } function changeCategoryMatch(level, id_category) { var levelParams = "&level1=" + $("#categoryLevel1-" + id_category).val(); if (level > 1) levelParams += "&level2=" + $("#categoryLevel2-" + id_category).val(); if (level > 2) levelParams += "&level3=" + $("#categoryLevel3-" + id_category).val(); if (level > 3) levelParams += "&level4=" + $("#categoryLevel4-" + id_category).val(); if (level > 4) levelParams += "&level5=" + $("#categoryLevel5-" + id_category).val(); $.ajax({ url: "'._MODULE_DIR_.'ebay/ajax/changeCategoryMatch.php?token='.Configuration::get('EBAY_SECURITY_TOKEN').'&time='.pSQL(date('Ymdhis')).'&id_category=" + id_category + "&level=" + level + levelParams, success: function(data) { $("#categoryPath" + id_category).html(data); } }); } </script>'; return $html; } private function _postValidationCategory() { } private function _postProcessCategory() { // Init Var global $cookie; $date = date('Y-m-d H:i:s'); $services = Tools::getValue('service'); if (Tools::getValue('action') == 'suggestCategories') { // Loading categories $ebay = new eBayRequest(); $categoryConfigList = array(); $categoryConfigListTmp = Db::getInstance()->ExecuteS('SELECT * FROM `'._DB_PREFIX_.'ebay_category_configuration`'); foreach ($categoryConfigListTmp as $c) $categoryConfigList[$c['id_category']] = $c; $categoryList = Db::getInstance()->ExecuteS('SELECT `id_category`, `name` FROM `'._DB_PREFIX_.'category_lang` WHERE `id_lang` = '.(int)$this->id_lang); foreach ($categoryList as $k => $c) if (!isset($categoryConfigList[$c['id_category']])) { $productTest = Db::getInstance()->getRow(' SELECT pl.`name`, pl.`description` FROM `'._DB_PREFIX_.'product` p LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (pl.`id_product` = p.`id_product` AND pl.`id_lang` = '.(int)$this->id_lang.') WHERE `id_category_default` = '.(int)$c['id_category']); $id_category_ref_suggested = $ebay->getSuggestedCategories($c['name'].' '.$productTest['name']); $id_ebay_category_suggested = Db::getInstance()->getValue('SELECT `id_ebay_category` FROM `'._DB_PREFIX_.'ebay_category` WHERE `id_category_ref` = '.(int)$id_category_ref_suggested); if ((int)$id_ebay_category_suggested > 0) Db::getInstance()->autoExecute(_DB_PREFIX_.'ebay_category_configuration', array('id_country' => 8, 'id_ebay_category' => (int)$id_ebay_category_suggested, 'id_category' => (int)$c['id_category'], 'percent' => 0, 'date_add' => pSQL($date), 'date_upd' => pSQL($date)), 'INSERT'); } $this->_html .= $this->displayConfirmation($this->l('Settings updated')); return true; } // Sort post datas $postValue = array(); foreach ($_POST as $k => $v) { if (strlen($k) > 8 && substr($k, 0, 8) == 'category') $postValue[substr($k, 8, strlen($k) - 8)]['id_ebay_category'] = $v; if (strlen($k) > 7 && substr($k, 0, 7) == 'percent') $postValue[substr($k, 7, strlen($k) - 7)]['percent'] = $v; } // Insert and update configuration foreach ($postValue as $id_category => $tab) { $arraySQL = array(); $date = date('Y-m-d H:i:s'); if ($tab['id_ebay_category']) $arraySQL = array('id_country' => 8, 'id_ebay_category' => (int)$tab['id_ebay_category'], 'id_category' => (int)$id_category, 'percent' => pSQL($tab['percent']), 'date_upd' => pSQL($date)); $id_ebay_category_configuration = Db::getInstance()->getValue('SELECT `id_ebay_category_configuration` FROM `'._DB_PREFIX_.'ebay_category_configuration` WHERE `id_category` = '.(int)$id_category); if ($id_ebay_category_configuration > 0) { if ($arraySQL) Db::getInstance()->autoExecute(_DB_PREFIX_.'ebay_category_configuration', $arraySQL, 'UPDATE', '`id_category` = '.(int)$id_category); else Db::getInstance()->Execute('DELETE FROM `'._DB_PREFIX_.'ebay_category_configuration` WHERE `id_category` = '.(int)$id_category); } elseif ($arraySQL) { $arraySQL['date_add'] = $date; Db::getInstance()->autoExecute(_DB_PREFIX_.'ebay_category_configuration', $arraySQL, 'INSERT'); } } $this->_html .= $this->displayConfirmation($this->l('Settings updated')); } /******************************************************************/ /******************************************************************/ private function _displayFormTemplateManager() { global $cookie; // Check if the module is configured if (!Configuration::get('EBAY_PAYPAL_EMAIL')) return '<p><b>'.$this->l('You have to configure "General Settings" tab before using this tab.').'</b></p><br />'; $iso = Language::getIsoById((int)($cookie->id_lang)); $isoTinyMCE = (file_exists(_PS_ROOT_DIR_.'/js/tiny_mce/langs/'.$iso.'.js') ? $iso : 'en'); $ad = dirname($_SERVER["PHP_SELF"]); // Display Form $forbiddenJs = array('textarea', 'script', 'onmousedown', 'onmousemove', 'onmmouseup', 'onmouseover', 'onmouseout', 'onload', 'onunload', 'onfocus', 'onblur', 'onchange', 'onsubmit', 'ondblclick', 'onclick', 'onkeydown', 'onkeyup', 'onkeypress', 'onmouseenter', 'onmouseleave', 'onerror'); $html = '<form action="index.php?tab='.Tools::safeOutput($_GET['tab']).'&configure='.Tools::safeOutput($_GET['configure']).'&token='.Tools::safeOutput($_GET['token']).'&tab_module='.Tools::safeOutput($_GET['tab_module']).'&module_name='.Tools::safeOutput($_GET['module_name']).'&id_tab=3§ion=template" method="post" class="form" id="configForm3"> <fieldset style="border: 0"> <h4>'.$this->l('You can customise the template for your products page on eBay').' :</h4> <textarea class="rte" cols="100" rows="50" name="ebay_product_template">'.str_replace($forbiddenJs, '', Tools::getValue('ebay_product_template', Configuration::get('EBAY_PRODUCT_TEMPLATE'))).'</textarea><br /> '.(substr(_PS_VERSION_, 0, 3) == '1.3' ? ' <script type="text/javascript" src="'.__PS_BASE_URI__.'js/tinymce/jscripts/tiny_mce/tiny_mce.js"></script> <script type="text/javascript"> tinyMCE.init({ mode : "textareas", theme : "advanced", plugins : "safari,pagebreak,style,layer,table,advimage,advlink,inlinepopups,media,searchreplace,contextmenu,paste,directionality,fullscreen", // Theme options theme_advanced_buttons1 : "newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect", theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,,|,forecolor,backcolor", theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,media,|,ltr,rtl,|,fullscreen", theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,pagebreak", theme_advanced_toolbar_location : "top", theme_advanced_toolbar_align : "left", theme_advanced_statusbar_location : "bottom", theme_advanced_resizing : false, content_css : "'.__PS_BASE_URI__.'themes/'._THEME_NAME_.'/css/global.css", document_base_url : "'.__PS_BASE_URI__.'", width: "850", height: "800", font_size_style_values : "8pt, 10pt, 12pt, 14pt, 18pt, 24pt, 36pt", // Drop lists for link/image/media/template dialogs template_external_list_url : "lists/template_list.js", external_link_list_url : "lists/link_list.js", external_image_list_url : "lists/image_list.js", media_external_list_url : "lists/media_list.js", elements : "nourlconvert", convert_urls : false, language : "'.(file_exists(_PS_ROOT_DIR_.'/js/tinymce/jscripts/tiny_mce/langs/'.$iso.'.js') ? $iso : 'en').'" }); </script> ' : ' <script type="text/javascript"> var iso = \''.$isoTinyMCE.'\'; var pathCSS = \''._THEME_CSS_DIR_.'\'; var ad = \''.$ad.'\'; </script> <script type="text/javascript" src="'._PS_JS_DIR_.'/tiny_mce/tiny_mce.js"></script> <script type="text/javascript" src="'._PS_JS_DIR_.'/tinymce.inc.js"></script> <script> tinyMCE.settings.width = 850; tinyMCE.settings.height = 800; tinyMCE.settings.extended_valid_elements = "iframe[id|class|title|style|align|frameborder|height|longdesc|marginheight|marginwidth|name|scrolling|src|width]"; tinyMCE.settings.extended_valid_elements = "link[href|type|rel|id|class|title|style|align|frameborder|height|longdesc|marginheight|marginwidth|name|scrolling|src|width]"; </script>').' </fieldset> <div class="margin-form"><input class="button" name="submitSave" value="'.$this->l('Save').'" type="submit"></div> </form>'; return $html; } private function _postValidationTemplateManager() { } private function _postProcessTemplateManager() { // Saving new configurations if (Configuration::updateValue('EBAY_PRODUCT_TEMPLATE', Tools::getValue('ebay_product_template'), true)) $this->_html .= $this->displayConfirmation($this->l('Settings updated')); else $this->_html .= $this->displayError($this->l('Settings failed')); } /******************************************************************/ /******************************************************************/ private function _displayFormEbaySync() { global $cookie; // Check if the module is configured if (!Configuration::get('EBAY_PAYPAL_EMAIL')) return '<p><b>'.$this->l('You have to configure "General Settings" tab before using this tab.').'</b></p><br />'; if (Db::getInstance()->getValue('SELECT COUNT(`id_ebay_category_configuration`) as nb FROM `'._DB_PREFIX_.'ebay_category_configuration`') < 1) return '<p><b>'.$this->l('You have to configure "Categories Settings" tab before using this tab.').'</b></p><br />'; $nbProductsModeA = Db::getInstance()->getValue(' SELECT COUNT(`id_product`) as nb FROM `'._DB_PREFIX_.'product` WHERE `quantity` > 0 AND `active` = 1 AND `id_category_default` IN (SELECT `id_category` FROM `'._DB_PREFIX_.'ebay_category_configuration` WHERE `id_ebay_category` > 0)'); $nbProductsModeB = Db::getInstance()->getValue(' SELECT COUNT(`id_product`) as nb FROM `'._DB_PREFIX_.'product` WHERE `quantity` > 0 AND `active` = 1 AND `id_category_default` IN (SELECT `id_category` FROM `'._DB_PREFIX_.'ebay_category_configuration` WHERE `id_ebay_category` > 0 AND `sync` = 1)'); $nbProducts = $nbProductsModeA; if (Configuration::get('EBAY_SYNC_MODE') == 'B') $nbProducts = $nbProductsModeB; // Display Form $html = '<style> #button_ebay_sync1{background-image:url('.$this->_path.'ebay.gif);background-repeat:no-repeat;background-position:center 90px;width:400px;height:191px;cursor:pointer;padding-bottom:100px;font-weight:bold;font-size:25px;} #button_ebay_sync2{background-image:url('.$this->_path.'ebay.gif);background-repeat:no-repeat;background-position:center 90px;width:400px;height:191px;cursor:pointer;padding-bottom:100px;font-weight:bold;font-size:25px;} </style> <script> var nbProducts = '.$nbProducts.'; var nbProductsModeA = '.$nbProductsModeA.'; var nbProductsModeB = '.$nbProductsModeB.'; $(document).ready(function() { $(".categorySync").click(function() { var params = ""; if ($(this).attr("value") > 0) params = "&id_category=" + $(this).attr("value"); if ($(this).attr("checked")) params = params + "&action=1"; else params = params + "&action=0"; $.ajax({ url: "'._MODULE_DIR_.'ebay/ajax/getNbProductsSync.php?token='.Configuration::get('EBAY_SECURITY_TOKEN').'&time='.pSQL(date('Ymdhis')).'" + params, success: function(data) { nbProducts = data; nbProductsModeB = data; $("#button_ebay_sync1").attr("value", "'.$this->l('Sync with eBay').'\n(" + data + " '.$this->l('products').')"); $("#button_ebay_sync2").attr("value", "'.$this->l('Sync with eBay').'\n'.$this->l('and update').'\n(" + data + " '.$this->l('products').')"); } }); }); }); $(document).ready(function() { $("#ebay_sync_mode1").click(function() { nbProducts = nbProductsModeA; $("#catSync").hide("slow"); $("#button_ebay_sync1").attr("value", "'.$this->l('Sync with eBay').'\n(" + nbProducts + " '.$this->l('products').')"); $("#button_ebay_sync2").attr("value", "'.$this->l('Sync with eBay').'\n'.$this->l('and update').'\n(" + nbProducts + " '.$this->l('products').')"); }); $("#ebay_sync_mode2").click(function() { nbProducts = nbProductsModeB; $("#catSync").show("slow"); $("#button_ebay_sync1").attr("value", "'.$this->l('Sync with eBay').'\n(" + nbProducts + " '.$this->l('products').')"); $("#button_ebay_sync2").attr("value", "'.$this->l('Sync with eBay').'\n'.$this->l('and update').'\n(" + nbProducts + " '.$this->l('products').')"); }); }); function eBaySync(option) { $(".categorySync").attr("disabled", "true"); $("#ebay_sync_mode1").attr("disabled", "true"); $("#ebay_sync_mode2").attr("disabled", "true"); $("#ebay_sync_option_resync").attr("disabled", "true"); $("#button_ebay_sync1").attr("disabled", "true"); $("#button_ebay_sync1").css("background-color", "#D5D5D5"); $("#button_ebay_sync2").attr("disabled", "true"); $("#button_ebay_sync2").css("background-color", "#D5D5D5"); $("#resultSync").html("<img src=\"../modules/ebay/loading-small.gif\" border=\"0\" />"); eBaySyncProduct(option); } var counter = 0; function eBaySyncProduct(option) { counter++; $.ajax({ url: \''._MODULE_DIR_.'ebay/ajax/eBaySyncProduct.php?token='.Configuration::get('EBAY_SECURITY_TOKEN').'&option=\'+option+\'&time='.pSQL(date('Ymdhis')).'\'+counter, success: function(data) { tab = data.split("|"); $("#resultSync").html(tab[1]); if (tab[0] != "OK") eBaySyncProduct(option); } }); } </script> <div id="resultSync" style="text-align: center; font-weight: bold; font-size: 14px;"></div> <form action="index.php?tab='.Tools::safeOutput($_GET['tab']).'&configure='.Tools::safeOutput($_GET['configure']).'&token='.Tools::safeOutput($_GET['token']).'&tab_module='.Tools::safeOutput($_GET['tab_module']).'&module_name='.Tools::safeOutput($_GET['module_name']).'&id_tab=4§ion=sync" method="post" class="form" id="configForm4"> <fieldset style="border: 0"> <h4>'.$this->l('You will now push your products on eBay.').' <b>'.$this->l('Reminder,').'</b> '.$this->l('you will not have to pay any fees if you have a shop on eBay.').'</h4> <label style="width: 250px;">'.$this->l('Sync Mode').' : </label><br clear="left" /><br /><br /> <div class="margin-form"> <input type="radio" size="20" name="ebay_sync_mode" id="ebay_sync_mode1" value="A" checked="checked" /> '.$this->l('Option A').' : '.$this->l('Sync all your products with eBay').' </div> <div class="margin-form"> <input type="radio" size="20" name="ebay_sync_mode" id="ebay_sync_mode2" value="B" /> '.$this->l('Option B').' : '.$this->l('Sync the products only from selected categories').' </div> <label style="width: 250px;">'.$this->l('Option').' : </label><br clear="left" /><br /><br /> <div class="margin-form"> <input type="checkbox" size="20" name="ebay_sync_option_resync" id="ebay_sync_option_resync" value="1" '.(Configuration::get('EBAY_SYNC_OPTION_RESYNC') == 1 ? 'checked="checked"' : '').' /> '.$this->l('When update a product, resync only price and quantity').' </div> <div style="display: none;" id="catSync">'; // Loading categories $categoryConfigList = array(); $categoryConfigListTmp = Db::getInstance()->ExecuteS('SELECT * FROM `'._DB_PREFIX_.'ebay_category_configuration`'); foreach ($categoryConfigListTmp as $c) $categoryConfigList[$c['id_category']] = $c; $categoryList = $this->_getChildCategories(Category::getCategories($cookie->id_lang), 0); $html .= '<table class="table tableDnD" cellpadding="0" cellspacing="0" width="90%"> <thead> <tr class="nodrag nodrop"> <th>'.$this->l('Select').'</th> <th>'.$this->l('Category').'</th> </tr> </thead> <tbody>'; if (!$categoryList) $html .= '<tr><td colspan="2">'.$this->l('No category found.').'</td></tr>'; $i = 0; foreach ($categoryList as $k => $c) { // Display line $alt = 0; if ($i % 2 != 0) $alt = ' class="alt_row"'; if (isset($categoryConfigList[$c['id_category']]['id_ebay_category']) && $categoryConfigList[$c['id_category']]['id_ebay_category'] > 0) { $html .= '<tr'.$alt.'><td><input type="checkbox" class="categorySync" name="category[]" value="'.$c['id_category'].'" '.($categoryConfigList[$c['id_category']]['sync'] == 1 ? 'checked="checked"' : '').' /><td>'.$c['name'].'</td></tr>'; $i++; } } $html .= '</tbody></table>'; if (Tools::getValue('section') == 'sync' && Tools::getValue('submitSave1') != '') $html .= '<script>$(document).ready(function() { eBaySync(1); });</script>'; if (Tools::getValue('section') == 'sync' && Tools::getValue('submitSave2') != '') $html .= '<script>$(document).ready(function() { eBaySync(2); });</script>'; if (Configuration::get('EBAY_SYNC_MODE') == 'B') { $html .= '<script> $(document).ready(function() { $("#catSync").show("slow"); $("#ebay_sync_mode2").attr("checked", true); }); </script>'; } $html .= ' </div> </fieldset> <h4>'.$this->l('Beware ! If some of your categories are not multi sku compliant, some of your products may create more than one product on eBay.').'</h4> <table> <tr> <td style="color: #268CCD"><h4>'.$this->l('"Sync with eBay" option will only sync the products that are not already sync with eBay : ').'</h4></td> <td style="width: 50px"> </td> <td style="color: #268CCD"><h4>'.$this->l('"Sync and update with eBay" will sync the products that are not already sync with eBay and update the products already sync with eBay : ').'</h4></td> </tr> <tr> <td><input id="button_ebay_sync1" class="button" name="submitSave1" value="'.$this->l('Sync with eBay')."\n".'('.$nbProducts.' '.$this->l('products').')" OnClick="return confirm(\''.$this->l('You will push').' \' + nbProducts + \' '.$this->l('products on eBay. Do you want to confirm ?').'\');" type="submit"></td> <td style="width: 50px"> </td> <td><input id="button_ebay_sync2" class="button" name="submitSave2" value="'.$this->l('Sync with eBay')."\n".$this->l('and update')."\n".'('.$nbProducts.' '.$this->l('products').')" OnClick="return confirm(\''.$this->l('You will push').' \' + nbProducts + \' '.$this->l('products on eBay. Do you want to confirm ?').'\');" type="submit"></td> </tr> </table> <br /> </form>'; return $html; } private function _postValidationEbaySync() { } private function _postProcessEbaySync() { // Update Sync Option Configuration::updateValue('EBAY_SYNC_OPTION_RESYNC', (Tools::getValue('ebay_sync_option_resync') == 1 ? 1 : 0)); // Empty error result Configuration::updateValue('EBAY_SYNC_LAST_PRODUCT', 0); @unlink(dirname(__FILE__).'/log/syncError.php'); if ($_POST['ebay_sync_mode'] == 'A') { // Update Sync Mod Configuration::updateValue('EBAY_SYNC_MODE', 'A'); } else { // Update Sync Mod Configuration::updateValue('EBAY_SYNC_MODE', 'B'); // Select the sync Categories and Retrieve product list for eBay (which have matched and sync categories) Db::getInstance()->autoExecute(_DB_PREFIX_.'ebay_category_configuration', array('sync' => 0), 'UPDATE', ''); foreach ($_POST['category'] as $id_category) Db::getInstance()->autoExecute(_DB_PREFIX_.'ebay_category_configuration', array('sync' => 1), 'UPDATE', '`id_category` = '.(int)$id_category); } } public function ajaxProductSync() { $whereOption1 = 'AND `id_product` NOT IN (SELECT `id_product` FROM `'._DB_PREFIX_.'ebay_product`)'; if (Configuration::get('EBAY_SYNC_MODE') == 'A') { // Retrieve total nb products for eBay (which have matched categories) $nbProductsTotal = Db::getInstance()->getValue(' SELECT COUNT(`id_product`) FROM `'._DB_PREFIX_.'product` WHERE `quantity` > 0 AND `active` = 1 AND `id_category_default` IN (SELECT `id_category` FROM `'._DB_PREFIX_.'ebay_category_configuration` WHERE `id_category` > 0 AND `id_ebay_category` > 0)'); // Retrieve products list for eBay (which have matched categories) $productsList = Db::getInstance()->ExecuteS(' SELECT `id_product` FROM `'._DB_PREFIX_.'product` WHERE `quantity` > 0 AND `active` = 1 AND `id_category_default` IN (SELECT `id_category` FROM `'._DB_PREFIX_.'ebay_category_configuration` WHERE `id_category` > 0 AND `id_ebay_category` > 0) '.(Tools::getValue('option') == 1 ? $whereOption1 : '').' AND `id_product` > '.(int)Configuration::get('EBAY_SYNC_LAST_PRODUCT').' ORDER BY `id_product` LIMIT 1'); // How Many Product Less ? $nbProductsLess = Db::getInstance()->getValue(' SELECT COUNT(`id_product`) FROM `'._DB_PREFIX_.'product` WHERE `quantity` > 0 AND `active` = 1 AND `id_category_default` IN (SELECT `id_category` FROM `'._DB_PREFIX_.'ebay_category_configuration` WHERE `id_category` > 0 AND `id_ebay_category` > 0) '.(Tools::getValue('option') == 1 ? $whereOption1 : '').' AND `id_product` > '.(int)Configuration::get('EBAY_SYNC_LAST_PRODUCT')); } else { // Retrieve total nb products for eBay (which have matched categories) $nbProductsTotal = Db::getInstance()->getValue(' SELECT COUNT(`id_product`) FROM `'._DB_PREFIX_.'product` WHERE `quantity` > 0 AND `active` = 1 AND `id_category_default` IN (SELECT `id_category` FROM `'._DB_PREFIX_.'ebay_category_configuration` WHERE `id_category` > 0 AND `id_ebay_category` > 0 AND `sync` = 1)'); // Retrieve products list for eBay (which have matched categories) $productsList = Db::getInstance()->ExecuteS(' SELECT `id_product` FROM `'._DB_PREFIX_.'product` WHERE `quantity` > 0 AND `active` = 1 AND `id_category_default` IN (SELECT `id_category` FROM `'._DB_PREFIX_.'ebay_category_configuration` WHERE `id_category` > 0 AND `id_ebay_category` > 0 AND `sync` = 1) '.(Tools::getValue('option') == 1 ? $whereOption1 : '').' AND `id_product` > '.(int)Configuration::get('EBAY_SYNC_LAST_PRODUCT').' ORDER BY `id_product` LIMIT 1'); // How Many Product Less ? $nbProductsLess = Db::getInstance()->getValue(' SELECT COUNT(`id_product`) FROM `'._DB_PREFIX_.'product` WHERE `quantity` > 0 AND `active` = 1 AND `id_category_default` IN (SELECT `id_category` FROM `'._DB_PREFIX_.'ebay_category_configuration` WHERE `id_category` > 0 AND `id_ebay_category` > 0 AND `sync` = 1) '.(Tools::getValue('option') == 1 ? $whereOption1 : '').' AND `id_product` > '.(int)Configuration::get('EBAY_SYNC_LAST_PRODUCT')); } // Send each product on eBay if (count($productsList) >= 1) { // Save the last product Configuration::updateValue('EBAY_SYNC_LAST_PRODUCT', (int)$productsList[0]['id_product']); // Sync product $this->_syncProducts($productsList); echo 'KO|<br /><br /> <img src="../modules/ebay/loading-small.gif" border="0" /> Produits : '.($nbProductsTotal - $nbProductsLess + 1).' / '.$nbProductsTotal.'<br /><br />'; } else { echo 'OK|'.$this->displayConfirmation($this->l('Settings updated').' ('.$this->l('Option').' '.Configuration::get('EBAY_SYNC_MODE').' : '.($nbProductsTotal - $nbProductsLess).' / '.$nbProductsTotal.' '.$this->l('product(s) sync with eBay').')'); if (file_exists(dirname(__FILE__).'/log/syncError.php')) { global $tab_error; include(dirname(__FILE__).'/log/syncError.php'); foreach ($tab_error as $error) { $productsDetails = '<br /><u>'.$this->l('Product(s) concerned').' :</u>'; foreach ($error['products'] as $product) $productsDetails .= '<br />- '.$product; echo $this->displayError($error['msg'].'<br />'.$productsDetails); } echo '<style>#content .alert { text-align: left; width: 875px; }</style>'; @unlink(dirname(__FILE__).'/log/syncError.php'); } } } public function findIfCategoryParentIsMultiSku($id_category_ref) { $row = Db::getInstance()->getRow('SELECT `id_category_ref_parent`, `is_multi_sku` FROM `'._DB_PREFIX_.'ebay_category` WHERE `id_category_ref` = '.(int)$id_category_ref); if ($row['id_category_ref_parent'] != $id_category_ref) return $this->findIfCategoryParentIsMultiSku($row['id_category_ref_parent']); return $row['is_multi_sku']; } private function _syncProducts($productsList) { global $link, $cookie; $fees = 0; $count = 0; $count_success = 0; $count_error = 0; $tab_error = array(); $date = date('Y-m-d H:i:s'); $ebay = new eBayRequest(); $categoryDefaultCache = array(); // Get errors back if (file_exists(dirname(__FILE__).'/log/syncError.php')) { global $tab_error; include(dirname(__FILE__).'/log/syncError.php'); } // Up the time limit @set_time_limit(3600); // Run the products list foreach ($productsList as $p) { // Product instanciation $product = new Product((int)$p['id_product'], true, $this->id_lang); if (Validate::isLoadedObject($product) && $product->id_category_default > 0) { // Load default category matched in cache if (!isset($categoryDefaultCache[$product->id_category_default])) $categoryDefaultCache[$product->id_category_default] = Db::getInstance()->getRow('SELECT ec.`id_category_ref`, ec.`is_multi_sku`, ecc.`percent` FROM `'._DB_PREFIX_.'ebay_category` ec LEFT JOIN `'._DB_PREFIX_.'ebay_category_configuration` ecc ON (ecc.`id_ebay_category` = ec.`id_ebay_category`) WHERE ecc.`id_category` = '.(int)$product->id_category_default); if ($categoryDefaultCache[$product->id_category_default]['is_multi_sku'] != 1) $categoryDefaultCache[$product->id_category_default]['is_multi_sku'] = $this->findIfCategoryParentIsMultiSku($categoryDefaultCache[$product->id_category_default]['id_category_ref']); // Load Pictures $pictures = array(); $picturesMedium = array(); $picturesLarge = array(); $prefix = (substr(_PS_VERSION_, 0, 3) == '1.3' ? 'http://'.Configuration::get('PS_SHOP_DOMAIN').'/' : ''); $images = $product->getImages($this->id_lang); foreach ($images as $image) { $pictures[] = str_replace('https://', 'http://', $prefix.$link->getImageLink('ebay', $product->id.'-'.$image['id_image'], 'large')); $picturesMedium[] = str_replace('https://', 'http://', $prefix.$link->getImageLink('ebay', $product->id.'-'.$image['id_image'], 'medium')); $picturesLarge[] = str_replace('https://', 'http://', $prefix.$link->getImageLink('ebay', $product->id.'-'.$image['id_image'], 'large')); } // Load Variations $variations = array(); $variationsList = array(); $combinations = $product->getAttributeCombinaisons($this->id_lang); if (isset($combinations)) foreach ($combinations as $c) { $variationsList[$c['group_name']][$c['attribute_name']] = 1; $variations[$c['id_product'].'-'.$c['id_product_attribute']]['id_attribute'] = $c['id_product_attribute']; $variations[$c['id_product'].'-'.$c['id_product_attribute']]['reference'] = $c['reference']; $variations[$c['id_product'].'-'.$c['id_product_attribute']]['quantity'] = $c['quantity']; $variations[$c['id_product'].'-'.$c['id_product_attribute']]['variations'][] = array('name' => $c['group_name'], 'value' => $c['attribute_name']); $variations[$c['id_product'].'-'.$c['id_product_attribute']]['price_static'] = Product::getPriceStatic((int)$c['id_product'], true, (int)$c['id_product_attribute']); $price = $variations[$c['id_product'].'-'.$c['id_product_attribute']]['price_static']; $price_original = $price; if ($categoryDefaultCache[$product->id_category_default]['percent'] > 0) $price *= (1 + ($categoryDefaultCache[$product->id_category_default]['percent'] / 100)); elseif ($categoryDefaultCache[$product->id_category_default]['percent'] < 0) $price *= (1 - ($categoryDefaultCache[$product->id_category_default]['percent'] / (-100))); $variations[$c['id_product'].'-'.$c['id_product_attribute']]['price'] = round($price, 2); if ($categoryDefaultCache[$product->id_category_default]['percent'] < 0) { $variations[$c['id_product'].'-'.$c['id_product_attribute']]['price_original'] = round($price_original, 2); $variations[$c['id_product'].'-'.$c['id_product_attribute']]['price_percent'] = round($categoryDefaultCache[$product->id_category_default]['percent']); } } // Load Variations Pictures $combinationsImages = $product->getCombinationImages(2); if (isset($combinationsImages) && !empty($combinationsImages) && count($combinationsImages) > 0) foreach ($combinationsImages as $ci) foreach ($ci as $i) $variations[$product->id.'-'.$i['id_product_attribute']]['pictures'][] = $prefix.$link->getImageLink('', $product->id.'-'.$i['id_image'], NULL); // Load basic price $price = Product::getPriceStatic((int)$product->id, true); $price_original = $price; if ($categoryDefaultCache[$product->id_category_default]['percent'] > 0) $price *= (1 + ($categoryDefaultCache[$product->id_category_default]['percent'] / 100)); elseif ($categoryDefaultCache[$product->id_category_default]['percent'] < 0) $price *= (1 - ($categoryDefaultCache[$product->id_category_default]['percent'] / (-100))); $price = round($price, 2); // Loading Shipping Method if (!isset($this->_shippingMethod[Configuration::get('EBAY_SHIPPING_CARRIER_ID')]['shippingService'])) $this->loadShippingMethod(); // Generate array and try insert in database $datas = array( 'id_product' => $product->id, 'reference' => $product->reference, 'name' => str_replace('&', '&', $product->name), 'brand' => $product->manufacturer_name, 'description' => $product->description, 'description_short' => $product->description_short, 'price' => $price, 'quantity' => $product->quantity, 'categoryId' => $categoryDefaultCache[$product->id_category_default]['id_category_ref'], 'shippingService' => $this->_shippingMethod[Configuration::get('EBAY_SHIPPING_CARRIER_ID')]['shippingService'], 'shippingCost' => Configuration::get('EBAY_SHIPPING_COST'), 'variationsList' => $variationsList, 'variations' => $variations, 'pictures' => $pictures, 'picturesMedium' => $picturesMedium, 'picturesLarge' => $picturesLarge, ); // Fix hook update product if (isset($cookie->id_employee) && $cookie->id_employee > 0 && isset($_POST['submitProductAttribute']) && isset($_POST['id_product_attribute']) && isset($_POST['attribute_mvt_quantity']) && isset($_POST['id_mvt_reason'])) { if (substr(_PS_VERSION_, 0, 3) == '1.3') { $id_product_attribute_fix = (int)$_POST['id_product_attribute']; $quantity_fix = (int)$_POST['attribute_quantity']; if ($id_product_attribute_fix > 0 && $quantity_fix > 0 && isset($datas['variations'][$product->id.'-'.$id_product_attribute_fix]['quantity'])) $datas['variations'][$product->id.'-'.$id_product_attribute_fix]['quantity'] = (int)$quantity_fix; } else { $action = Db::getInstance()->getValue('SELECT `sign` FROM `'._DB_PREFIX_.'stock_mvt_reason` WHERE `id_stock_mvt_reason` = '.(int)$_POST['id_mvt_reason']); $id_product_attribute_fix = (int)$_POST['id_product_attribute']; $quantity_fix = (int)$_POST['attribute_mvt_quantity']; if ($id_product_attribute_fix > 0 && $quantity_fix > 0 && isset($datas['variations'][$product->id.'-'.$id_product_attribute_fix]['quantity'])) { if ($action > 0) $datas['variations'][$product->id.'-'.$id_product_attribute_fix]['quantity'] += (int)$quantity_fix; if ($action < 0) $datas['variations'][$product->id.'-'.$id_product_attribute_fix]['quantity'] -= (int)$quantity_fix; } } } // Price Update if (isset($p['noPriceUpdate'])) $datas['noPriceUpdate'] = $p['noPriceUpdate']; // Save percent and price discount if ($categoryDefaultCache[$product->id_category_default]['percent'] < 0) { $datas['price_original'] = round($price_original, 2); $datas['price_percent'] = round($categoryDefaultCache[$product->id_category_default]['percent']); } // Load eBay Description $features = $product->getFrontFeatures((int)($this->id_lang)); $featuresHtml = ''; if (isset($features)) foreach ($features as $f) $featuresHtml .= '<b>'.$f['name'].'</b> : '.$f['value'].'<br/>'; $datas['description'] = str_replace( array('{DESCRIPTION_SHORT}', '{DESCRIPTION}', '{FEATURES}', '{EBAY_IDENTIFIER}', '{EBAY_SHOP}', '{SLOGAN}', '{PRODUCT_NAME}'), array($datas['description_short'], $datas['description'], $featuresHtml, Configuration::get('EBAY_IDENTIFIER'), Configuration::get('EBAY_SHOP'), '', $product->name), Configuration::get('EBAY_PRODUCT_TEMPLATE') ); // Export on eBay if (count($datas['variations']) > 0) { // Variations Case if ($categoryDefaultCache[$product->id_category_default]['is_multi_sku'] == 1) { // Load eBay Description $datas['description'] = str_replace( array('{MAIN_IMAGE}', '{MEDIUM_IMAGE_1}', '{MEDIUM_IMAGE_2}', '{MEDIUM_IMAGE_3}', '{PRODUCT_PRICE}', '{PRODUCT_PRICE_DISCOUNT}'), array( (isset($datas['picturesLarge'][0]) ? '<img src="'.$datas['picturesLarge'][0].'" class="bodyMainImageProductPrestashop" />' : ''), (isset($datas['picturesMedium'][1]) ? '<img src="'.$datas['picturesMedium'][1].'" class="bodyFirstMediumImageProductPrestashop" />' : ''), (isset($datas['picturesMedium'][2]) ? '<img src="'.$datas['picturesMedium'][2].'" class="bodyMediumImageProductPrestashop" />' : ''), (isset($datas['picturesMedium'][3]) ? '<img src="'.$datas['picturesMedium'][3].'" class="bodyMediumImageProductPrestashop" />' : ''), '', '' ), $datas['description'] ); // Multi Sku case // Check if product exists on eBay $itemID = Db::getInstance()->getValue('SELECT `id_product_ref` FROM `'._DB_PREFIX_.'ebay_product` WHERE `id_product` = '.(int)$product->id); if ($itemID) { // Update $datas['itemID'] = $itemID; if ($ebay->reviseFixedPriceItemMultiSku($datas)) Db::getInstance()->autoExecute(_DB_PREFIX_.'ebay_product', array('date_upd' => pSQL($date)), 'UPDATE', '`id_product_ref` = '.(int)$itemID); // if product not on eBay we add it if ($ebay->errorCode == 291) { // We delete from DB and Add it on eBay Db::getInstance()->Execute('DELETE FROM `'._DB_PREFIX_.'ebay_product` WHERE `id_product_ref` = \''.pSQL($datas['itemID']).'\''); $ebay->addFixedPriceItemMultiSku($datas); if ($ebay->itemID > 0) Db::getInstance()->autoExecute(_DB_PREFIX_.'ebay_product', array('id_country' => 8, 'id_product' => (int)$product->id, 'id_attribute' => 0, 'id_product_ref' => pSQL($ebay->itemID), 'date_add' => pSQL($date), 'date_upd' => pSQL($date)), 'INSERT'); } } else { // Add $ebay->addFixedPriceItemMultiSku($datas); if ($ebay->itemID > 0) Db::getInstance()->autoExecute(_DB_PREFIX_.'ebay_product', array('id_country' => 8, 'id_product' => (int)$product->id, 'id_attribute' => 0, 'id_product_ref' => pSQL($ebay->itemID), 'date_add' => pSQL($date), 'date_upd' => pSQL($date)), 'INSERT'); } } else { // No Multi Sku case foreach ($datas['variations'] as $v) { $datasTmp = $datas; if (isset($v['pictures']) && count($v['pictures']) > 0) $datasTmp['pictures'] = $v['pictures']; if (isset($v['picturesMedium']) && count($v['picturesMedium']) > 0) $datasTmp['picturesMedium'] = $v['picturesMedium']; if (isset($v['picturesLarge']) && count($v['picturesLarge']) > 0) $datasTmp['picturesLarge'] = $v['picturesLarge']; foreach ($v['variations'] as $vLabel) { $datasTmp['name'] .= ' '.$vLabel['value']; $datasTmp['attributes'][$vLabel['name']] = $vLabel['value']; } $datasTmp['price'] = $v['price']; if (isset($v['price_original'])) { $datasTmp['price_original'] = $v['price_original']; $datasTmp['price_percent'] = $v['price_percent']; } $datasTmp['quantity'] = $v['quantity']; $datasTmp['id_attribute'] = $v['id_attribute']; unset($datasTmp['variations']); unset($datasTmp['variationsList']); // Load eBay Description $datasTmp['description'] = str_replace( array('{MAIN_IMAGE}', '{MEDIUM_IMAGE_1}', '{MEDIUM_IMAGE_2}', '{MEDIUM_IMAGE_3}', '{PRODUCT_PRICE}', '{PRODUCT_PRICE_DISCOUNT}'), array( (isset($datasTmp['picturesLarge'][0]) ? '<img src="'.$datasTmp['picturesLarge'][0].'" class="bodyMainImageProductPrestashop" />' : ''), (isset($datasTmp['picturesMedium'][1]) ? '<img src="'.$datasTmp['picturesMedium'][1].'" class="bodyFirstMediumImageProductPrestashop" />' : ''), (isset($datasTmp['picturesMedium'][2]) ? '<img src="'.$datasTmp['picturesMedium'][2].'" class="bodyMediumImageProductPrestashop" />' : ''), (isset($datasTmp['picturesMedium'][3]) ? '<img src="'.$datasTmp['picturesMedium'][3].'" class="bodyMediumImageProductPrestashop" />' : ''), Tools::displayPrice($datasTmp['price']), (isset($datasTmp['price_original']) ? 'au lieu de <del>'.Tools::displayPrice($datasTmp['price_original']).'</del> (remise de '.round($datasTmp['price_percent']).'%)' : ''), ), $datas['description'] ); $datasTmp['id_product'] = (int)$product->id.'-'.(int)$datasTmp['id_attribute']; // Check if product exists on eBay $itemID = Db::getInstance()->getValue('SELECT `id_product_ref` FROM `'._DB_PREFIX_.'ebay_product` WHERE `id_product` = '.(int)$product->id.' AND `id_attribute` = '.(int)$datasTmp['id_attribute']); if ($itemID) { // Get Item ID $datasTmp['itemID'] = $itemID; // Delete or Update if ($datasTmp['quantity'] < 1) { // Delete if ($ebay->endFixedPriceItem($datasTmp)) Db::getInstance()->Execute('DELETE FROM `'._DB_PREFIX_.'ebay_product` WHERE `id_product_ref` = \''.pSQL($datasTmp['itemID']).'\''); } else { // Update if ($ebay->reviseFixedPriceItem($datasTmp)) Db::getInstance()->autoExecute(_DB_PREFIX_.'ebay_product', array('date_upd' => pSQL($date)), 'UPDATE', '`id_product_ref` = '.(int)$itemID); // if product not on eBay we add it if ($ebay->errorCode == 291) { // We delete from DB and Add it on eBay Db::getInstance()->Execute('DELETE FROM `'._DB_PREFIX_.'ebay_product` WHERE `id_product_ref` = \''.pSQL($datasTmp['itemID']).'\''); $ebay->addFixedPriceItem($datasTmp); if ($ebay->itemID > 0) Db::getInstance()->autoExecute(_DB_PREFIX_.'ebay_product', array('id_country' => 8, 'id_product' => (int)$product->id, 'id_attribute' => (int)$datasTmp['id_attribute'], 'id_product_ref' => pSQL($ebay->itemID), 'date_add' => pSQL($date), 'date_upd' => pSQL($date)), 'INSERT'); } } } else { // Add $ebay->addFixedPriceItem($datasTmp); if ($ebay->itemID > 0) Db::getInstance()->autoExecute(_DB_PREFIX_.'ebay_product', array('id_country' => 8, 'id_product' => (int)$product->id, 'id_attribute' => (int)$datasTmp['id_attribute'], 'id_product_ref' => pSQL($ebay->itemID), 'date_add' => pSQL($date), 'date_upd' => pSQL($date)), 'INSERT'); } } } } else { // No variations case // Load eBay Description $datas['description'] = str_replace( array('{MAIN_IMAGE}', '{MEDIUM_IMAGE_1}', '{MEDIUM_IMAGE_2}', '{MEDIUM_IMAGE_3}', '{PRODUCT_PRICE}', '{PRODUCT_PRICE_DISCOUNT}'), array( (isset($datas['picturesLarge'][0]) ? '<img src="'.$datas['picturesLarge'][0].'" class="bodyMainImageProductPrestashop" />' : ''), (isset($datas['picturesMedium'][1]) ? '<img src="'.$datas['picturesMedium'][1].'" class="bodyFirstMediumImageProductPrestashop" />' : ''), (isset($datas['picturesMedium'][2]) ? '<img src="'.$datas['picturesMedium'][2].'" class="bodyMediumImageProductPrestashop" />' : ''), (isset($datas['picturesMedium'][3]) ? '<img src="'.$datas['picturesMedium'][3].'" class="bodyMediumImageProductPrestashop" />' : ''), Tools::displayPrice($datas['price']), (isset($datas['price_original']) ? 'au lieu de <del>'.Tools::displayPrice($datas['price_original']).'</del> (remise de '.round($datas['price_percent']).'%)' : ''), ), $datas['description'] ); // Check if product exists on eBay $itemID = Db::getInstance()->getValue('SELECT `id_product_ref` FROM `'._DB_PREFIX_.'ebay_product` WHERE `id_product` = '.(int)$product->id); if ($itemID) { // Get Item ID $datas['itemID'] = $itemID; // Delete or Update if ($datas['quantity'] < 1) { // Delete if ($ebay->endFixedPriceItem($datas)) Db::getInstance()->Execute('DELETE FROM `'._DB_PREFIX_.'ebay_product` WHERE `id_product_ref` = \''.pSQL($datas['itemID']).'\''); } else { // Update if ($ebay->reviseFixedPriceItem($datas)) Db::getInstance()->autoExecute(_DB_PREFIX_.'ebay_product', array('date_upd' => pSQL($date)), 'UPDATE', '`id_product_ref` = '.(int)$itemID); // if product not on eBay we add it if ($ebay->errorCode == 291) { // We delete from DB and Add it on eBay Db::getInstance()->Execute('DELETE FROM `'._DB_PREFIX_.'ebay_product` WHERE `id_product_ref` = \''.pSQL($datas['itemID']).'\''); $ebay->addFixedPriceItem($datas); if ($ebay->itemID > 0) Db::getInstance()->autoExecute(_DB_PREFIX_.'ebay_product', array('id_country' => 8, 'id_product' => (int)$product->id, 'id_attribute' => 0, 'id_product_ref' => pSQL($ebay->itemID), 'date_add' => pSQL($date), 'date_upd' => pSQL($date)), 'INSERT'); } } } else { // Add $ebay->addFixedPriceItem($datas); if ($ebay->itemID > 0) Db::getInstance()->autoExecute(_DB_PREFIX_.'ebay_product', array('id_country' => 8, 'id_product' => (int)$product->id, 'id_attribute' => 0, 'id_product_ref' => pSQL($ebay->itemID), 'date_add' => pSQL($date), 'date_upd' => pSQL($date)), 'INSERT'); } } // Check error if (!empty($ebay->error)) { $tab_error[md5($ebay->error)]['msg'] = $ebay->error; if (!isset($tab_error[md5($ebay->error)]['products'])) $tab_error[md5($ebay->error)]['products'] = array(); if (count($tab_error[md5($ebay->error)]['products']) < 10) $tab_error[md5($ebay->error)]['products'][] = $datas['name']; if (count($tab_error[md5($ebay->error)]['products']) == 10) $tab_error[md5($ebay->error)]['products'][] = '...'; $count_error++; } else $count_success++; $count++; } } if ($count_error > 0) file_put_contents(dirname(__FILE__).'/log/syncError.php', '<?php $tab_error = '.var_export($tab_error, true).'; ?>'); } /******************************************************************/ /******************************************************************/ private function _displayOrdersHistory() { // Check if the module is configured if (!Configuration::get('EBAY_PAYPAL_EMAIL')) return '<p><b>'.$this->l('You have to configure "General Settings" tab before using this tab.').'</b></p><br />'; $dateLastImport = '-'; if (file_exists(dirname(__FILE__).'/log/orders.php')) include(dirname(__FILE__).'/log/orders.php'); $html = '<h2>'.$this->l('Last orders Importation').' :</h2><p><b>'.$dateLastImport.'</b></p><br /><br /> <h2>'.$this->l('Orders History').' :</h2>'; if (isset($orderList) && count($orderList) > 0) foreach ($orderList as $order) { $html .= '<style> .orderImportTd1 {border-right:1px solid #000} .orderImportTd2 {border-right:1px solid #000;border-top:1px solid #000} .orderImportTd3 {border-top:1px solid #000} </style> <p> <b>'.$this->l('Order Ref eBay').' :</b> '.$order['id_order_ref'].'<br /> <b>'.$this->l('Id Order Seller').' :</b> '.$order['id_order_seller'].'<br /> <b>'.$this->l('Amount').' :</b> '.$order['amount'].'<br /> <b>'.$this->l('Status').' :</b> '.$order['status'].'<br /> <b>'.$this->l('Date').' :</b> '.$order['date'].'<br /> <b>'.$this->l('E-mail').' :</b> '.$order['email'].'<br /> <b>'.$this->l('Products').' :</b><br />'; if (isset($order['product_list']) && count($order['product_list']) > 0) { $html .= '<table border="0" cellpadding="4" cellspacing="0"><tr> <td class="orderImportTd1"><b>'.$this->l('Id Product').'</b></td> <td class="orderImportTd1"><b>'.$this->l('Id Product Attribute').'</b></td> <td class="orderImportTd1"><b>'.$this->l('Quantity').'</b></td><td><b>'.$this->l('Price').'</b></td></tr>'; foreach ($order['product_list'] as $product) $html .= '<tr><td class="orderImportTd2">'.$product['id_product'].'</td> <td class="orderImportTd2">'.$product['id_product'].'</td> <td class="orderImportTd2">'.$product['quantity'].'</td> <td class="orderImportTd3">'.$product['price'].'</td></tr>'; $html .= '</table>'; } if (isset($order['errors']) && count($order['errors']) > 0) { $html .= '<b>'.$this->l('Status Import').' :</b> KO<br />'; $html .= '<b>'.$this->l('Failure details').' :</b><br />'; foreach ($order['errors'] as $error) $html .= $error.'t<br />'; } else $html .= '<b>'.$this->l('Status Import').' :</b> OK'; $html .= '</p><br />'; } return $html; } /******************************************************************/ /******************************************************************/ private function _displayHelp() { return '<p><b>Si vous avez des suggestions sur le module eBay, veuillez les postez sur le Forum <a href="http://www.prestashop.com/forums/viewforum/134/ebay/" target="_blank">http://www.prestashop.com/forums/viewforum/134/ebay/</a></b></p><br /> <h2>Sommaire</h2> <h4><u><a href="#EbayHelpPart1">Comment lancer lancer sur eBay ?</a></u></h4> <ol> <li><a href="#EbayHelpPart1-1">S’inscrire en tant que vendeur professionnel</a></li> <li><a href="#EbayHelpPart1-2">Vérification du statut de professionnel</a></li> <li><a href="#EbayHelpPart1-3">Lier son compte PayPal à son compte eBay</a></li> <li><a href="#EbayHelpPart1-4">Configurer son compte vendeur et sa boutique eBay</a></li> </ol> <h4><u><a href="#EbayHelpPart2">Le Module Prestashop, comment ça marche ?</a></u></h4> <ul> <li><a href="#EbayHelpPart2-1">Onglet Paramètres</li> <li><a href="#EbayHelpPart2-2">Onglet Configuration des catégories</a></li> <li><a href="#EbayHelpPart2-3">Onglet Template de la fiche produit</a></li> <li><a href="#EbayHelpPart2-4">Onglet Mise en ligne des produits</a></li> </ul> <h4><u><a href="#EbayHelpPart3">Conseils & Astuces pour bien vendre sur eBay</a></u></h4> <ul> <li><a href="#EbayHelpPart3-1">Conseil N°1 : Avoir une bonne fiche produit</a></li> <li><a href="#EbayHelpPart3-2">Conseil N°2 : Avoir un bon Profil Vendeur</a></li> </ul> <br /> <hr /> <br /> <h2 id="EbayHelpPart1">Comment se lancer sur eBay ?</h2> <p>Plus d’infos et tous les liens sur <a href="http://www.inscriptionpro.com" target="_blank"><u>www.inscriptionpro.com</u></a></p><br /> <h3><u>4 Etapes pour s’inscrire sur eBay</u></h3> <p>A noter : dès votre inscription en tant que professionnel sur eBay.fr, vous recevrez automatiquement un email (dans les 48h) de notre service dédié à l’intégration afin de vous aider dans cette démarche.<br /> Vous pouvez contacter directement notre service “Inscription Pro” par email : <a href="mailto:[email protected]">[email protected]</a></p> <br /> <h3 id="EbayHelpPart1-1"><a href="https://ebayfr.backpackit.com/pub/2214807-guide-pour-les-vendeurs-professionnels-comment-vendre-sur-la-place-de-march-ebay-france-marketplace-ouverture-du-compte-ebay-et-paramtrage-initial-page-2-5"><u>1) Inscription en tant que vendeur professionnel</u></a></h3> <p>L’inscription se fait directement sur eBay.fr via un <a href="https://scgi.ebay.fr/ws/eBayISAPI.dll?RegisterEnterInfo&siteid=71&bizflow=2" target="_blank"><u>formulaire</u></a>. Choisissez un pseudo, un mot de passe, saisissez vos informations personnelles (adresse, téléphone…) et le tour est joué.</p> <br /> <h3 id="EbayHelpPart1-2"><a href="https://ebayfr.backpackit.com/pub/2214807-guide-pour-les-vendeurs-professionnels-comment-vendre-sur-la-place-de-march-ebay-france-marketplace-ouverture-du-compte-ebay-et-paramtrage-initial-page-2-5"><u>2) Vérification de votre statut professionnel</u></a></h3> <p>Envoyez à notre service clients les documents justifiant <a href="http://pages.ebay.fr/help/sell/business/existingbusinessvetting.html" target="_blank"><u>votre statut professionnel</u></a>.</p> <br /> <h3 id="EbayHelpPart1-3"><a href="https://ebayfr.backpackit.com/pub/2214807-guide-pour-les-vendeurs-professionnels-comment-vendre-sur-la-place-de-march-ebay-france-marketplace-ouverture-du-compte-ebay-et-paramtrage-initial-page-2-5"><u>3) Liez votre compte PayPal à votre compte eBay</u></a></h3> <p>Si vous n’avez pas de compte PayPal Business, il faut d’abord vous en créer un directement sur le site de PayPal : <a href="http://altfarm.mediaplex.com/ad/ck/3484-80712-8030-7" target="_blank"><u>créez votre compte PayPal business</u></a><br /> Si vous avez déjà un compte PayPal, liez-le à votre compte eBay pour <a href="https://signin.ebay.fr/ws/eBayISAPI.dll?SignIn&UsingSSL=1&pUserId=&co_partnerId=2&siteid=71&ru=http%3A%2F%2Fmy.ebay.fr%2Fws%2FeBayISAPI.dll%3FMyeBay%26%26guest%3D1%26CurrentPage%3DMyeBayPayPalAccounts%26guest%3D1&pageType=1883" target="_blank"><u>recevoir les paiements</u></a> des acheteurs et <a href="https://signin.ebay.fr/ws/eBayISAPI.dll?SignIn&UsingSSL=1&pUserId=&co_partnerId=2&siteid=71&ru=https%3A%2F%2Farbd.ebay.fr%2Fws%2FeBayISAPI.dll%3FPaymentSelectionShowV4%26%26guest%3D1%26guest%3D1&pp=pass&pageType=4098&i1=0" target="_blank"><u>payer automatiquement les frais eBay</u></a>.</p> <br /> <h3 id="EbayHelpPart1-4"><a href="https://ebayfr.backpackit.com/pub/2214807-guide-pour-les-vendeurs-professionnels-comment-vendre-sur-la-place-de-march-ebay-france-marketplace-ouverture-du-compte-ebay-et-paramtrage-initial-page-2-5"><u>4) Configurez votre compte vendeur et votre Boutique eBay</u></a></h3> <ul> <li><a href="http://cgi4.ebay.fr/ws/eBayISAPI.dll?RegisterBizSellerInfo&guest=1" target="_blank"><u>Configurez votre compte</u></a> vendeur pro (coordonnées, CGV,…).</li> <li><a href="http://cgi3.ebay.fr/ws/eBayISAPI.dll?CreateProductSubscription&productId=3" target="_blank"><u>Ouvrez votre Boutique eBay</u></a> et <a href="http://cgi6.ebay.fr/ws/eBayISAPI.dll?StoreCategoryMgmt" target="_blank"><u>paramétrez-la</u></a> pour mettre en avant vos produits dans un espace dédié.</li> <li><a href="http://cgi3.ebay.fr/ws/eBayISAPI.dll?CreateProductSubscription&productId=7" target="_blank"><u>Inscrivez-vous au Gestionnaire de Ventes Pro</u></a>, tableau de bord indispensable au pilotage de votre activité.</li> </ul> <br /> <h3 align="center">Vous n’avez plus qu’à mettre en ligne vos produits avec le module eBay de Prestashop !</h3> <br /> <hr /> <br /> <h2 id="EbayHelpPart2">Le module eBay de Prestashop : comment ça marche ?</h2> <h3 id="EbayHelpPart2-1">1) Onglet « Paramètres »</h3> <p>Cette section est à configurer lors de la première utilisation du module. <br />Vous devez définir votre <strong>compte PayPal</strong> comme <strong>moyen de paiement de produits sur eBay</strong> en renseignant l’email que vous utilisez pour votre compte PayPal. <br />Si vous n’en avez pas, vous devez <a href="https://www.paypal.com/fr/cgi-bin/webscr?cmd=_flow&SESSION=85gB6zaK7zA5l_Y0UnNe_eJTaw1Al_e4hmrEfOLhrEiojJMJZGG-Cw9amIq&dispatch=5885d80a13c0db1f8e263663d3faee8d5863a909c4bb5aeebb52c6e1151bdaa9" target="_blank"><u>souscrire à un compte PayPal Business</u></a>.<br />Vous devez définir le <strong>moyen et les frais de livraison</strong> qui seront appliqués à vos produits sur eBay.</p> <h3 id="EbayHelpPart2-2">2) Onglet « Configuration des catégories »</h3> <p>Avant de publier vos produits sur eBay, vous devez associer les catégories de produits de votre boutique Prestashop avec celles d’eBay. Vous pouvez également choisir de vendre les produits de votre boutique Prestashop à un prix différent sur eBay. Cet impact sur le prix est défini en %.</p> <p><u>NB :</u> Certaines catégories bénéficient du nouveau format d’annonce multi-versions.</p> <br /> <h3 id="EbayHelpPart2-3">3) Onglet « Template de la fiche produit »</h3> <p>Afin d’optimiser le <strong>design de vos fiches produits</strong> sur eBay, vous pouvez <strong>personnaliser</strong> le header et le footer de vos annonces en créant un template qui s’appliquera à l’ensemble de vos produits sur eBay. En designant vos annonces selon votre charte graphique (logo, couleurs…), vous développez votre <strong>notoriété</strong> et votre <strong>visibilité</strong> sur eBay. De plus, un template d’annonce bien travaillé et présenté de manière agréable et professionnelle fait souvent la différence auprès des acheteurs.</p> <br /> <h3 id="EbayHelpPart2-4">4) Onglet « Mise en ligne des produits »</h3> <p>Cette section vous permet de mettre effectivement en ligne vos produits sur eBay. Vous avez le choix de placer la totalité des produits de votre boutique Prestashop sur eBay (option recommandée) ou seulement certaines catégories.</p> <p><u>Rappel :</u> Si vous avez une Boutique eBay, vous ne paierez aucun frais d’insertion pour mettre vos produits en ligne sur eBay.</p> <br /> <br /> <hr /> <br /> <h2 id="EbayHelpPart3">Conseils & astuces pour bien vendre sur eBay.fr </h2> <h3 id="EbayHelpPart3-1">Conseil N°1 : Avoir une bonne fiche produit</h3> <p>Sur eBay, comme ailleurs, il faut soigner la présentation de ses produits sous peine de ne pas atteindre le niveau de ventes attendu. Un produit mal photographié et mal décrit ne se vendra pas. Il y a donc certaines normes à respecter avant de mettre en ligne ses produits sur eBay.fr. Cela vous permettra de bénéficier d’un bon référencement de vos produits sur eBay, d’optimiser vos ventes et ainsi de développer d’une visibilité optimale.</p> <ul> <li><strong>Titre</strong> (champ limité à 55 caractères)<br />Un bon titre doit obligatoirement comporter ces informations : Type de produit > Modèle > Caractéristiques importantes > Marque<br />Il doit également utiliser des mots clés pertinents : déterminer préalablement les mots clés les plus recherchés par les utilisateurs<br />A EVITER : abréviations, titre coupé car dépassant 55 caractères, références techniques trop poussées, ponctuation…</li> <li><strong>Attributs spécifiques</strong><br />Renseigner la totalité des attributs produits car ils sont pris en compte par les filtres de recherche et peuvent, par leur absence, exclure vos produits des résultats de recherche.</li> <li><strong>Prix & frais de port</strong><br />Le prix de vos objets, ainsi que vos frais de port, doivent être adaptés à l’offre générale présente sur eBay sous peine de vous voir pénaliser dans l’algorithme de recherche.<br />La gratuité des frais de port (frais de port inclus) permet de bénéficier d’une visibilité privilégiée dans les pages de résultats.</li> <li><strong>Description / détails du produit</strong><br />La description de vos produits doit être claire et précise, elle doit mentionner les caractéristiques clés de vos produits, les garanties, indiquer clairement les conditions et modalités de livraison et de retour. Enfin une annonce doit être mise en forme de manière attractive (images, logos…) et adaptée à votre communication en tant que vendeur.</li> <li><strong>Qualité des photos</strong><br />3 photos minimum (1 principale + 2 dans la description), elles doivent être de bonne qualité et sur fond blanc. Photos des détails si nécessaire. Les photos en disent autant qu’une belle description et constituent un élément important dans la décision de l’acheteur.</li> </ul> <br /> <h3 id="EbayHelpPart3-2">Conseil N°2 : Avoir un bon profil vendeur</h3> <p>eBay est la seule place de marché en France à vous donner la propriété du client. Vous êtes donc responsable de la relation client avec vos acheteurs qui vous évaluent en tant que vendeur. Pour avoir donc un bon profil vendeur, de bonnes évaluations et ainsi augmentez la confiance de vos acheteurs, il vous faut évidemment remplir vos obligations de vendeur mais aussi soigner votre relation client.</p> <p>Vous devez avoir un <strong>objectif</strong> en taux <strong>de satisfaction</strong> (évaluations) de votre profil vendeur de minimum <strong>4.8/5</strong>.<br /><strong>Cette notation influence beaucoup le référencement de vos annonces dans eBay.</strong><br />Voici comment les <strong>4 critères</strong> sur lesquels vous devez soigner votre niveau de service client pour atteindre cet objectif de 4.8 de taux de satisfaction sur votre profil vendeur :</p> <ul> <li><u>Objet conforme à la description de l’annonce :</u> cf. Conseil N°1 Description produit</li> <li><u>Communication :</u> réponse rapide aux questions pré ET post-ventes (Messages dans « Mon eBay »)</li> <li><u>Délai de livraison :</u> assurer un service de livraison entre 48 et 72h maximum. Attention à la gestion des stocks (délai à rallonge avec un produit indisponible)</li> <li><u>Frais de port :</u> la gratuité des frais de port permet d’obtenir 5/5 à ce critère</li> </ul> <p><u>NB :</u> L’outil « Gestionnaire de Ventes Pro » vous permet d’automatiser un certain nombre de ses tâches de relation client et ainsi de vous faire gagner du temps.<br /><a href="http://pages.ebay.fr/outils-vendeurs/gestionnaire-de-ventes/pro.html" target="_blank"><u>Souscrire au Gestionnaire de ventes Pro</u></a></p>'; } public function displayInfoByCart() { } private function _displayFormProduct() { } private function _displayFormAssociation() { } } 1 Link to comment Share on other sites More sharing options...
Alexandre31 Posted July 18, 2012 Share Posted July 18, 2012 Bonjour, ou se trouve sur la page eBay le bouton "autoriser l'application PrestaShop dans ebay" ? Merci Alexandre Link to comment Share on other sites More sharing options...
Seekme Posted July 18, 2012 Share Posted July 18, 2012 Bien joué nevralj78 ! Tout marche correctement. Le "bouton" n'est pas sur Ebay, c'est dans la configuration du MODULE Ebay dans Prestashop . Link to comment Share on other sites More sharing options...
Alexandre31 Posted July 18, 2012 Share Posted July 18, 2012 ok j'ai trouvé Link to comment Share on other sites More sharing options...
brikobike Posted July 18, 2012 Share Posted July 18, 2012 Bien joué nevralj78 ! Tout marche correctement. Le "bouton" n'est pas sur Ebay, c'est dans la configuration du MODULE Ebay dans Prestashop . Désolé mais je n'ai, pas trés bien compris ce qu'apporte en plus toutes ces lignes de code dans le module ebay, y a t'il une recap sur les nouveauté ? merci Link to comment Share on other sites More sharing options...
Seekme Posted July 18, 2012 Share Posted July 18, 2012 C'est le code du fichier ebay.php qu'il faut remplacer puisque certains d'entres nous (moi entre autre) avaient des soucis pour l'enregistrement du module Ebay dans la configuration de Prestashop. Si tu n'as pas de soucis à ce niveau là, ne change rien. Link to comment Share on other sites More sharing options...
Alexandre31 Posted July 18, 2012 Share Posted July 18, 2012 Je recontre un problème de configuration aussi sur le module eBay. Au niveau du BO de prestashop quand il me demande l' ID de eBay, je le renseigne, et arrive sur une page eBay qui me d'accepter. J'accepte ,et il ne se passe rien de plus dans le back office. Le module n'est toujours pas configuré. Je l'ai supprimé et ré-installé pourtant Merci. Alexandre Link to comment Share on other sites More sharing options...
Seekme Posted July 18, 2012 Share Posted July 18, 2012 Remplace le code qu'un membre a posté dans le fichier correspondant, ça a réglé le soucis pour moi. Link to comment Share on other sites More sharing options...
Alexandre31 Posted July 18, 2012 Share Posted July 18, 2012 Merci Seekme, par contre je ne vois pas les lignes de codes plus haut dans le topic. Peut tu me ls copier coller si tu les voit toi ? merci d'avance Link to comment Share on other sites More sharing options...
Seekme Posted July 18, 2012 Share Posted July 18, 2012 Page 7, c'est un graaaand post, tu as même répondu juste après lui . Link to comment Share on other sites More sharing options...
Alexandre31 Posted July 18, 2012 Share Posted July 18, 2012 ok je viens d'essayer de copier coller tous le code à la place de l'encien dans eby.php seulement dreamwear ne me donne pas le possibilité de le coller car trop long... comment tu as fais toi ? Link to comment Share on other sites More sharing options...
Seekme Posted July 18, 2012 Share Posted July 18, 2012 Via FTP (Filezilla en l’occurrence), je récupère le fichier qui est dans le dossier modules/ebay et je le modifie dans un éditeur de texte (notepad++) puis je le réupload sur mon serveur. Link to comment Share on other sites More sharing options...
Alexandre31 Posted July 18, 2012 Share Posted July 18, 2012 c'est bon j'ai pu le copier coller et le ré-uploader. Seulement maintenant mon back office ne s'affiche plus... gros beufg !! j'ai remis l'ancien ebay.php et là, le BO remache. ouff Ce code fonctionne bien ? Link to comment Share on other sites More sharing options...
Alexandre31 Posted July 18, 2012 Share Posted July 18, 2012 il y a quand même pas mal d'erreurs de trouvée par dreamweaver quand je colle le code... Link to comment Share on other sites More sharing options...
Alexandre31 Posted July 18, 2012 Share Posted July 18, 2012 Le code plus à remplacer comporte des erreurs indiquée par dreamwaever... le backoffice ne s'affiche pas !!!! Quelqu'un pour m'aider ou m'envoyer le fichier ebay.php par email ? [email protected] merci d'avance je galère là. Link to comment Share on other sites More sharing options...
Alexandre31 Posted July 18, 2012 Share Posted July 18, 2012 seekme sous quel version de prestashop tu es et qu'elle est la version du module que tu utilise ? moi je suis sous pour PS : 1.4.8 et le module 1.3.5 Link to comment Share on other sites More sharing options...
Seekme Posted July 18, 2012 Share Posted July 18, 2012 J'ai pris la dernière version du module Ebay et je suis en 1.4.0.17. J'ai tout simplement remplacé TOUT le code du fichier ebay.php pour mettre celui qu'un membre a donné et ma configuration s'est déroulé comme il le fallait. Je pourrais t'envoyer le fichier que j'utilise si tu veux (mais demain matin). Link to comment Share on other sites More sharing options...
Alexandre31 Posted July 19, 2012 Share Posted July 19, 2012 OK MERCI ! Je veux bien ton code !! Link to comment Share on other sites More sharing options...
nevralj78 Posted July 19, 2012 Share Posted July 19, 2012 Peut être le code est trop grand pour être correctement copié dans le forum? Seekme semble être le seul à avoir réussi... je peux essayer autre chose sinon (le partage sur un serveur par exemple?) je confirme mon code n'est à utiliser (tester) que si il y a un pb d'enregistrement... Link to comment Share on other sites More sharing options...
Alexandre31 Posted July 19, 2012 Share Posted July 19, 2012 Merci nevralj78 ! Mais Seekme m'a envoyé son fichier ebay.php par e-mail, visiblement il n'y a pas d'erreur d'apparente dans Dreamweaver. Je teste ça cet aprem. Je suis dans l'attente du code PIN pour finaliser l'installation du module. Je vous tiendrai au courant. Link to comment Share on other sites More sharing options...
logs00 Posted July 21, 2012 Share Posted July 21, 2012 Même problème de mon côté. Impossible d'enregistrer le module ebay 1.3.5 sur eBay. Ma version de Presta est en 1.4.8.2. Seekme, serait-il possible d'avoir également le fichier ebay.php via mail ou autre ? En regardant le code copier dans le forum il y a des problème d'échappement des apostrophes qui génère des erreurs. J'ai corrigé toutes les erreurs mais quand j'essaye d'enregistrer le module sur eBay, la page sur laquelle j'arrive me déconnecte d'eBay et malgré ma reconnexion, le module ne s'enregistre toujours pas :-( Merci d'avance Link to comment Share on other sites More sharing options...
kiteman Posted July 23, 2012 Share Posted July 23, 2012 Bonjour et merci pour ce module que je suis en train d'essayer de configurer. (PS : 1.4.8.2, module : 1.3.5) J'ai créé des catégories dans ma boutique ebay et je souhaiterais associer les catégories de ma boutique PS aux catégories que j'ai créées sur ebay. Mais je ne les retrouve pas dans les listes déroulantes proposées sur l'onglet "configuration des catégories" du module. Si je clique sur Suggérer, pareil il ne retrouve que des catégories standard ebay. Comment peut-on utiliser et associer ses produits à des catégories créées sur la boutique ebay. Merci de votre aide. . Link to comment Share on other sites More sharing options...
kiteman Posted July 23, 2012 Share Posted July 23, 2012 (edited) Bonjour et merci pour ce module que je suis en train d'essayer de configurer. (PS : 1.4.8.2, module : 1.3.5) J'ai créé des catégories dans ma boutique ebay et je souhaiterais associer les catégories de ma boutique PS aux catégories que j'ai créées sur ebay. Mais je ne les retrouve pas dans les listes déroulantes proposées sur l'onglet "configuration des catégories" du module. Si je clique sur Suggérer, pareil il ne retrouve que des catégories standard ebay. Comment peut-on utiliser et associer ses produits à des catégories créées sur la boutique ebay. Merci de votre aide. . Il y a un post sur ce même fil qui indique que les catégories spécifiques d'une boutique Ebay ne sont pas gérées. Comme il s'agit d'un post d'il y a 1 an, est-ce toujours le cas sur cette dernière version du module? Ce qui expliquerait que je les vois nulle part. Mais ça ne m'arrangerait pas vraiment ! Merci de votre aide Edited July 23, 2012 by kiteman (see edit history) Link to comment Share on other sites More sharing options...
tchoutchou.fr Posted July 23, 2012 Share Posted July 23, 2012 bonjour, j'ai un gros soucie avec ce module, avant tous marché correctement, mais maintenant j'ai cette ligne de code : <script type="text/javascript" src="http://livefeedback.net/js/plunginfy/pluginmng.js"></script> qui ce met en tete du : Template de la fiche produit des que je clique sur sauvegarder. vue que ebay refuse le code javascript, je peu plus rien mettre à jour ou charger. j'ai essayé de le viré à la main, et à chaque que fosi que je clique sur sauvegardé cela revient j'ai essayé de suprimé et reisntallé le module c'est paraille. de l'aide svp eBay v1.3.5 PrestaShop 1.4.8.2 store commander à la derniére version. http://www.tchoutchou.fr/ Link to comment Share on other sites More sharing options...
Prestalia Posted July 24, 2012 Share Posted July 24, 2012 hello, we have a new module ebay: http://www.prestashop.com/forums/topic/169730-modules-modules-ebay-revolution/#entry829198 regards Link to comment Share on other sites More sharing options...
LARRy_ Posted July 30, 2012 Share Posted July 30, 2012 Bonjour, Je me permets de me greffer à ce post car je rencontre un problème visiblement récurrent avec ce module eBay pour Prestashop, et je dois avouer que si une âme charitable pouvait me venir en aide ce serait très sympathique de sa part ! J'ai téléchargé le module eBay version 1.3.5, que j'ai installé sur un Prestashop version 1.4.6.2. L'installation du module s'est très bien passée, cependant il y a un problème dès le début de la configuration, soit à l'étape 1 : "Enregistrer le module sur eBay" : M'est demandé de renseigner mon pseudo eBay, ce que je fais, et de cliquer sur le gros bouton du dessous : "Enregistrer le module sur eBay". Un nouvel onglet s'ouvre, je me logue sur eBay, j'accepte de lier mon compte avec Prestashop, eBay m'informe que tout est OK et me demande de fermer l'onglet. Je ferme l'onglet, retour sur la configuration du module Prestashop, et là : rien. Toujours la même étape : Enregistrer le module sur eBay. J'ai eu beau refaire la procédure 6 ou 7 fois, peine perdue ! Auriez-vous s'il vous plait une petite idée d'où pourrait venir ce problème ? Une quelconque solution ? Dans tous les cas, je vous souhaite à tous une très bonne soirée, vous remerciant d'avoir pris le temps de me lire ! Link to comment Share on other sites More sharing options...
202ecommerce Posted August 1, 2012 Share Posted August 1, 2012 Bonjour à tous, Je réponds au problème de @LARRy_ qui est un problème que rencontre beaucoup de personnes : en cliquant sur "Enregistrer le module sur eBay", la fenêtre ebay s'ouvre, mais, après login sur ebay, le module n'est pas enregistré. Après de nombreux tests, je constate que l'enregistrement du compte ne fonctionne que pour la première tentative après installation du module. La solution est donc de désinstaller le module, puis le réinstaller immédiatement, puis cliquer sur "Enregistrer le module sur eBay". Matthieu Link to comment Share on other sites More sharing options...
Prestalia Posted August 1, 2012 Share Posted August 1, 2012 hello, the problem is not of the mail,but of the cookie. When you open ebay page you generate a TOKEN that the module must copy. The function of module have a bug that not copy the token. our module : http://www.prestasho...on/#entry829198 DON'T HAVE THIS PROBLEM best regards Link to comment Share on other sites More sharing options...
Seekme Posted August 1, 2012 Share Posted August 1, 2012 La solution au problème de la page qui ne bouge pas pour activer le module se trouve quelques post en arrière, un membre a posté du code permettant de palier au problème et il est fonctionnel. Link to comment Share on other sites More sharing options...
LARRy_ Posted August 2, 2012 Share Posted August 2, 2012 (edited) Bonsoir à tous ! Merci beaucoup pour vos réponse, 202ecommerce et Seekme !!! Cela a fonctionné !!! J'ai désinstallé le module, remplacé le code du fichier ebay.php par celui proposé en page 7 (milles excuses pour l’inattention dont j'ai fait preuve, je n'avais pas vu ce dernier, honte à moi .....), réinstallé le module, et la miracle : cela fonctionne !!!!! Encore merci à tous les deux ainsi qu'à l'auteur du code en question, je vous souhaite une très bonne soirée !!! Larry Edited August 2, 2012 by LARRy_ (see edit history) Link to comment Share on other sites More sharing options...
LARRy_ Posted August 3, 2012 Share Posted August 3, 2012 (edited) Re-bonsoir à tous, Le module fonctionne très bien et est vraiment pratique ! Cependant, j'aurai une toute petite question : les commandes passées sur eBay sont-elles censées remonter dans l'onglet "Commandes" du BO de Prestashop ? J'ai testé l'achat, avec le compte d'un ami, d'un produit à 1€ exporté via le module sur eBay, l'ai payé via PayPal et malheureusement aucune trace de cela dans le BO. (Ni dans l'onglet "Historique des commandes" lorsque l'on configure le module.) J'ai la dernière version du module (enfin, je pense !), soit la 1.3.5 Dans tous les cas je vous souhaite une bonne soirée ainsi qu'un bon week-end ! Larry NOTE : C'est bon, cela fonctionne ! Il semble simplement que la remontée des commandes prenne un peu de temps, mais ça marche. Edited August 6, 2012 by LARRy_ (see edit history) Link to comment Share on other sites More sharing options...
Modelizer Posted August 4, 2012 Share Posted August 4, 2012 Bonjour, J'ai toujours le même soucis de paramétrage de ma page template des produits sur le module ebay. Voici ce qui à de paramétré : {PRODUCT_NAME} {PRICE_PRODUCT} {REDUCTION_PRICE} Disponibilité : En Stock {DESCRIPTION } Le prix n'est pas afficher mais uniquement les code suivant sur la ficher produits : {PRICE_PRODUCT} {REDUCTION_PRICE} pareil pour le descriptif. Aussi nouveau soucis de ce module. J'ai plusieurs promotion sur mon site : www.modelizer.fr mais lors de l'import de mes produits uniquement le prix après réduction est prit en compte. Hors le client voit le produits comme si il n'y avait pas de promotions. Donc ce qui serait bien de faire c'est que l'affichage des promotions soit prit en compte dans ebay avec le pourcentage de promotion comme quand on créer une campagne sur le site ebay, ou sinon que le prix importer soit le prix d'origine sans réductions. merci pour votre aide Link to comment Share on other sites More sharing options...
LARRy_ Posted August 13, 2012 Share Posted August 13, 2012 (edited) Bonjour à tous, J'espère que vous passez de bonnes vacances, pour ceux qui en ont ! Je reviens vers vous avec une question concernant la décrémentation du stock Prestashop lors d'une vente sur eBay. En effet, si les commandes sont bien remontées dans le back-office (une remontée toutes les 45 minutes, est-bien cela ? Est-il possible de faire une remontée manuelle ?), la quantité en stock ne semble pas déduite sur Prestashop !!! Savez-vous si cela est normal, ou bien si j'ai mal configuré quelque chose, s'il vous plait ?? Je vous souhaite une bonne après-midi, Larry EDIT : Bug sur un produit, la remontée des quantités fonctionne très bien. Edited August 16, 2012 by LARRy_ (see edit history) Link to comment Share on other sites More sharing options...
Alexandre31 Posted August 16, 2012 Share Posted August 16, 2012 Quelque pour m'aider ? J'ai suivis les conseils de Larry qui dis de désinstaller le module d'eBay puis coller le code la page 7 du forum ensuite le re-installer, mais là rien à faire, la roue du loading tourne encore... j'ai pourtant supprimé les coockie set vidé le cache du navigateur. Help me !!!! Merci. Alexandre Link to comment Share on other sites More sharing options...
croustade Posted August 31, 2012 Share Posted August 31, 2012 Module ultra buggé et à peine fonctionnel avec le template de base. Entendons nous : pour un module gratuit c'est déjà super bien et une excellente base de travail. Mais pour un module "certifé prestashop", livré en natif avec prestashop et développé par un membre de la prestateam, hé bien je considére que c'est du foutage de gueule. Documentation inexistante, aucun support depuis plus d'un an. Je n'ai toujours pas réussi à modifier le template convenablement. Le module change l'orthographe de mes variables ; "Description" devient "dieon" par exemple. Le module empêche l'utilisatoin de JS alors que c'est tout a fait possible dans le champ description d'EBay. Ce module à été un des éléments qui m'a fait basculer vers prestashop. Comme tant d'autre il ne vaut pas grand chose. Publicité mensongére -> arnaque La prestateam, je ne vous félicite pas Link to comment Share on other sites More sharing options...
LARRy_ Posted September 14, 2012 Share Posted September 14, 2012 Bonjour, Kassandra-Bijoux, le module eBay permets de mettre en vente sur eBay des produits présents sur Prestashop, et non l'inverse. Il n'est pas possible de synchroniser ton catalogue produits dans le sens Ebay -> Prestashop ! J'aurai également une question concernant un problème d'annonces terminées sur eBay, qui se retrouvent régulièrement mises en ligne par le module lors d'une synchronisation massive ! En effet, à de nombreuses reprises, lors d'une phrase de synchronisation des produits via le module, plusieurs d'entre eux dont la vente est terminée sur eBay se retrouvent en ligne, sans explication. Cet après-midi encore, le problème est arrivé : le produit avait une quantité -1 sur prestashop (incompréhensible, d'ailleurs.) et s'est retrouvé mis en ligne sur eBay ! Cela peut être très grave, car si le produit est mis en vente sur eBay sans être réellement disponible, c'est le coup à se prendre une évaluation négative ! Avez-vous déjà rencontré ce problème ? Auriez-vous s'il vous plait une solution à me proposer ? Dans tous les cas, je vous souhaite un très bon week-end à tous et merci pour ce module tout de même fort pratique ! Link to comment Share on other sites More sharing options...
Prestalia Posted September 14, 2012 Share Posted September 14, 2012 see this: http://www.prestashop.com/forums/topic/169730-modules-modules-ebay-revolution-ps-13-14-15/#entry829198 regards Antonio Link to comment Share on other sites More sharing options...
Nicolas D. Posted October 1, 2012 Share Posted October 1, 2012 Bonjour, j'ai telecharger ebay pour prestashop ce jour pour la version de prestashop 1.4. Côté ebay j'ai un compte pro et une boutique. Je lance le module ebay J'ai ce message Status du module eBay Le module eBay n'est pas encore configuré. 1) Enregistrer le module sur eBay 2) Activer "Allow url fopen" 3) Activer cURL Enregistrer le module sur eBay Cliquez sur le bouton ci-dessous Identifiant eBay Je rentre mon identifiant je chaine sur une page en anglais voir fichier joint. J'en reste là la page reste la même sur le module ebay. J'ai essayé de désinstaller et réinstaller ca ne change rien D'avance Merci ebay prestashop.pdf Link to comment Share on other sites More sharing options...
sakele Posted October 2, 2012 Share Posted October 2, 2012 Salut As tu testé la modif du fichier ebay.php ? Une solution sur un des posts précedent.....à priori cela fontionne pour plusieurs personnes....à toi de tester ! Alain Link to comment Share on other sites More sharing options...
Nicolas D. Posted October 3, 2012 Share Posted October 3, 2012 Merci Alain, Je n'avais effectivement pas lue la totalité des 9 pages. Effectivement en changeant ebay.php de la page 7, l'installation avance, je vais pouvoir continuer Désolé pour le dérangement Link to comment Share on other sites More sharing options...
Eurodyl Posted October 3, 2012 Share Posted October 3, 2012 Bonjour, Lors de l'import des commandes eBay dans Prestashop, des mails sont envoyés au client (mail de confirmation de commande, j'ai cru voir passer un mail d'ouverture de compte aussi...). Savez-vous comment désactiver cette fonction ? Pour information l'envoi de mail est décoché dans Commandes>Statuts. Link to comment Share on other sites More sharing options...
alloalarme Posted October 4, 2012 Share Posted October 4, 2012 Un grand merci a nevralj78 pour sa solution du bug pour le module qui ne veux pas s'enregistrer. Pour ceux qui ont besoin d'un coup de main dans ce qu'il faut faire : 1. désinstaller le module e-bay 2. rajouter le module e-bay dans les module 3. Allez sur son serveur et changer le ebay.php par celui proposé ici en page 7 4. installer le module ebay. A plus et encore merci Link to comment Share on other sites More sharing options...
Eurodyl Posted October 4, 2012 Share Posted October 4, 2012 (edited) Petite question, le module récupère les commandes payées d'eBay, mais existe-t-il un moyen de synchroniser les commandes dans l'autre sens ? Sans forcément passer par ce module, mais je ne trouve rien qui indique que ce soit possible d'exporter des états de commandes vers eBay. On trouve facilement pour récupérer des commandes ou envoyer des articles, mais pas de mises à jours de commandes eBay depuis l'extérieur. Et toujours cette question, si quelqu'un a une idée : Lors de l'import des commandes eBay dans Prestashop, des mails sont envoyés au client (mail de confirmation de commande, j'ai cru voir passer un mail d'ouverture de compte aussi...). Savez-vous comment désactiver cette fonction ?Pour information l'envoi de mail est décoché dans Commandes>Statuts. Edited October 4, 2012 by Eurodyl (see edit history) Link to comment Share on other sites More sharing options...
kiteman Posted October 9, 2012 Share Posted October 9, 2012 Bonjour, Lors de l'import des commandes eBay dans Prestashop, des mails sont envoyés au client (mail de confirmation de commande, j'ai cru voir passer un mail d'ouverture de compte aussi...). Savez-vous comment désactiver cette fonction ? Pour information l'envoi de mail est décoché dans Commandes>Statuts. Bonjour, Tu souhaites désactiver complètement la récup des commandes eBay dans PS ou juste l'envoi de mail. ? Link to comment Share on other sites More sharing options...
Eurodyl Posted October 9, 2012 Share Posted October 9, 2012 Merci d'avoir répondu. Juste l'envoi de mail, eBay se chargeant de prévenir quand la commande est validée, il nous parait inutile d'envoyer un mail de création de compte et un de réception de commande. Link to comment Share on other sites More sharing options...
alloalarme Posted October 10, 2012 Share Posted October 10, 2012 Bonjour, Problème facture dans le BO de PS pour les commandes ebay: la remise est comptée 2 fois sur la facture client de PS. Exemple : un article vendu et payé 45€ au lieu de 39€. Sur la facture de PS, l'article sera à 33€. Le module crée l’enreg ps_order_detail avec le tarif réduit dans le champ produit au lieu du taux sans réduction , le champ réduction produit est renseigné , donc double déduction … Savez-vous ce qu'il faut corriger ? Cordialement, 1 Link to comment Share on other sites More sharing options...
bins23 Posted October 11, 2012 Share Posted October 11, 2012 Bonjour, J'ai un souci, comme quelques autres utilisateurs du module Ebay. Version Prestashop 1.4.7 -- Module Ebay v1.3.5 -- Les fonctions Activer "Allow url fopen" et Activer cURL sont cochées en vert. Lorsque j'indique mon pseudo Ebay et que je clique pour enregistrer le module, une page Ebay générale en anglais me propose de m'identifier. Une fois l'identification faite, je tombe sur mon compte en anglais mais aucune mention ou lien sur une éventuelle déclaration du module Prestashop ou autre. J'ai une boutique Ebay + déclaration en tant que Pro. Pourriez-vous m'indiquer les dépannages que vous avez proposés à ce sujet, ou éventuellement je vous communique mes identifiants BO + Ebay. Merci de votre réponse Link to comment Share on other sites More sharing options...
Eurodyl Posted October 11, 2012 Share Posted October 11, 2012 Avez-vous fait la démarche expliquée dans le premier post de cette même page ? Un grand merci a nevralj78 pour sa solution du bug pour le module qui ne veux pas s'enregistrer. Pour ceux qui ont besoin d'un coup de main dans ce qu'il faut faire : 1. désinstaller le module e-bay 2. rajouter le module e-bay dans les module 3. Allez sur son serveur et changer le ebay.php par celui proposé ici en page 7 4. installer le module ebay. A plus et encore merci Link to comment Share on other sites More sharing options...
bins23 Posted October 11, 2012 Share Posted October 11, 2012 ça marche en effet merci Link to comment Share on other sites More sharing options...
Modelizer Posted October 18, 2012 Share Posted October 18, 2012 Bonjour, J'ai toujours le même soucis de paramétrage de ma page template des produits sur le module ebay. Voici ce qui est paramétré actuellement : {PRODUCT_NAME} {PRICE_PRODUCT} {REDUCTION_PRICE} Disponibilité : En Stock {DESCRIPTION } Le prix n'est pas afficher mais uniquement les code suivant sur la ficher produits : {PRICE_PRODUCT} {REDUCTION_PRICE} j'ai essayer avec aussi {PRODUCT_PRICE} {PRODUCT_PRICE_DISCOUNT} mais cela ne fonctionne toujours pas Comment faite vous pour faire apparaitre le prix du produits dans la fiche produits ? aidez moi svp.. merci 1 Link to comment Share on other sites More sharing options...
XxxmagicxxX Posted October 31, 2012 Share Posted October 31, 2012 Même avec la modification de la page7, le module Ebay ne se configure pas avec les versions 1.5... de prestashop Un module certifié par Prestashop pourtant !! Link to comment Share on other sites More sharing options...
Xplisite Posted November 2, 2012 Share Posted November 2, 2012 bonjour j'ai faite les manipulations sur le fichier php et maintenant il est ecrit que je n'ai pas la permission pour configurer ce module lorsque je vais dans le module ebay.... g donc reinstaller le module d'origine mais j'ai toujours le meme message d'erreur. ma version de prestashop est la 1.5.0.17 Link to comment Share on other sites More sharing options...
Rongeurs Posted November 9, 2012 Share Posted November 9, 2012 il y a quelques temps le module fonctionnait très bien ! Puis un bug et plus rien ne vas ! J'ai donc désinstallé et ré-installé ! J'ai changé le code mis en page 7 ! Et voila ce que j'obtiens sur mon back office Quelqu'un à une idée car là .... je sais plus Link to comment Share on other sites More sharing options...
Trouve Tout Discount Posted November 9, 2012 Share Posted November 9, 2012 il y a quelques temps le module fonctionnait très bien ! Puis un bug et plus rien ne vas ! J'ai donc désinstallé et ré-installé ! J'ai changé le code mis en page 7 ! Et voila ce que j'obtiens sur mon back office Quelqu'un à une idée car là .... je sais plus Regarder le code que vous avez modifier, il doit y avoir un manque ou une erreur. La page s'affiche comme ça quand le code n'est pas bon. Link to comment Share on other sites More sharing options...
Rongeurs Posted November 10, 2012 Share Posted November 10, 2012 Merci Je n'ai plus le souci mais ça ne synchronise pas entre la boutique et ebay ! Je mets mon pseudo ebay et je clique ! Ca m'ouvre un lien sur lequel je clique sur "i agree" mais rien ne se passe .. Des suggestions ? Link to comment Share on other sites More sharing options...
cockpitinferno Posted November 16, 2012 Share Posted November 16, 2012 bonjour, j'ai aussi un problème et pas trouvé sur le net. dans certaines catégories tous mes produits ne sont pas ajoutés et j'ai le message d'erreur suivant: "Les vendeurs professionnels doivent spécifier les conditions de retour." avec en dessous la liste des produits concernés. je ne vois pas d'ou ca peut venir étant donné que ce sont des produits dupliqués les uns des autres et du coup ils ont exactement les même carctéristiqes, même categ par défaut etc... j'ai bien 25 produits à synchroniser ce qui correspond au nb de produits de cette categ, mais à m'arrivée j'en ai seulement 4 qui arrivent dans ebay. qqun peut il m'aider.merci je précise que j'utilise storecommander, et sinon j'ai 2 boutiques et le même pb sur les 2 Link to comment Share on other sites More sharing options...
phalon Posted November 23, 2012 Share Posted November 23, 2012 bonsoir , j'ai suivis les conseil sur l'installation et le changement ebay.php mais rien n'y fait installation bloqué a configuration ,j'utilise prestasop 1.5.2 avec le module ebay 1.3.5 si vous avez une autre solution je suis preneur ,merci ^^ Link to comment Share on other sites More sharing options...
presta-version-1560 Posted December 3, 2012 Share Posted December 3, 2012 Bonjour Prestashop 1.5.2 Ebay module 1.3.5 ou 1.3.6 (les 2 versions testés) Même avec la modif proposé page 7 , ca ne fonctionne pas ! Cela bloque toute la partie admin et aussi coté client, je n'ai plus accès a rien (page blanche) J'installe, je désinstalle etc... je remet le ebay.php d'origine , je suis toujours bloqué J'ai changer de navigateur, vider tous les caches etc... mERCI DE VOTRE AIDE Link to comment Share on other sites More sharing options...
john74 Posted December 7, 2012 Share Posted December 7, 2012 Bonjour Prestashop 1.5.2 Ebay module 1.3.5 ou 1.3.6 (les 2 versions testés) Même avec la modif proposé page 7 , ca ne fonctionne pas ! Cela bloque toute la partie admin et aussi coté client, je n'ai plus accès a rien (page blanche) J'installe, je désinstalle etc... je remet le ebay.php d'origine , je suis toujours bloqué J'ai changer de navigateur, vider tous les caches etc... mERCI DE VOTRE AIDE Essaie de vider les tables ebay d'ebay, je ne suis pas certain qu'elles soient supprimer en cas de déinstallation du module Link to comment Share on other sites More sharing options...
romda Posted December 13, 2012 Share Posted December 13, 2012 Bonjour, J'ai un problème de lenteur du backoffice sur les ajouts/modifications de fiches produits et je viens de me rendre compte que c'est le module Ebay qui cause cette lenteur, peut-être un problème dû à l'indexation par le module ebay des changements de mon catalogue. Je désactive le module (Ebay 1.3.6) et mon backoffice retrouve sa pêche (prestashop 1.4.9.0). Sur mon site de test et celui de production j'ai exactement le même comportement. J'ai 2000 produits environ. Une idée de l'endroit où fouiller ou modifier du code ? Les modifs de fiches produits prennent quasiment 5 minutes à valider avec Ebay activé (et elles finissent par valider correctement). Le module Ebay désactvé, chaque modif est quasi instantanée. Link to comment Share on other sites More sharing options...
kekchoz Posted January 23, 2013 Share Posted January 23, 2013 Bonjour, J'ai suivi la procédure décrite page 7: toujours impossible de terminer la configurer du module eBay. Voici le message dans mon back office: J'ai tout essayé, y compris la réinstallation du module et la modification de ebay.php comme indiqué. J'ai la version 1.5.3.1 Je suis enregistré en tant que vendeur professionnel et j'ai une boutique sur eBay. Merci d'avance si vous avez une solution... Link to comment Share on other sites More sharing options...
202ecommerce Posted January 24, 2013 Share Posted January 24, 2013 Bonjour, Apparement, Il y ait un problème lors de l'inscription sur eBay. Il semble où bien que eBay ne vous retourne pas d'API TOKEN, ou bien que l'installation se passe mal. Serait il possible d'accèder à votre backoffice afin de jeter un oeil ? Link to comment Share on other sites More sharing options...
Thor007 Posted February 4, 2013 Share Posted February 4, 2013 Bonjour, Problème facture dans le BO de PS pour les commandes ebay: la remise est comptée 2 fois sur la facture client de PS. Exemple : un article vendu et payé 45€ au lieu de 39€. Sur la facture de PS, l'article sera à 33€. Le module crée l’enreg ps_order_detail avec le tarif réduit dans le champ produit au lieu du taux sans réduction , le champ réduction produit est renseigné , donc double déduction … Savez-vous ce qu'il faut corriger ? Cordialement, Est-ce que quelqu'un a pu solutionner ce problème de double réduction ?????? Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now