Module ECommerce NG (Magento) FR

From Dolibarr ERP CRM Wiki
Revision as of 11:30, 20 May 2020 by Eldy (talk | contribs) (→‎Fonctionnalités)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Informations

Module name ECommerce NG (Magento)
Editor / Editeur Teclib - www.teclib.com
Download or buy page / Page achat ou téléchargement www.dolistore.com
Status / Statut / Estado Development / Développement
Prerequisites / Prérequis Dolibarr min version 3.9.0+

Prerequisite of Magento: Magento version 1.9.* - 1Gb of allowed memory on the PHP where Magento run may be required   

Last update date / Date mise à jour fiche / Fecha última actualización 2020-05-20
Note / Nota

Fonctionnalités

Intègre une synchronisation entre Dolibarr et une plateforme eCommerce. Le support pour Magento es stable, celui pour WooCommerce est experimental, celui pour Prestashop est un développement non terminé (contributions pour cela bienvenues).

Il s'agit d'un module qui s'installe sur Dolibarr uniquement. L'accès à la plateforme eCommerce est fait par Dolibarr en utilisant les Web services fournis par la plateforme.

Installation

Depuis l'application

  • Télécharger le fichier archive du module (fichier .zip)
  • Aller dans le menu Accueil -> Configuration -> Modules -> Déployer un module externe et soumettez le fichier.
  • Le module est alors visible dans la liste des modules (Accueil -> Configuration -> Modules) et activable.

Manuellement

  • Télécharger le fichier archive du module (fichier .zip)
  • Placer le fichier dans le répertoire racine de dolibarr.
  • Decompressez le fichier, par exemple par la commande
unzip fichiermodule.zip
  • Le module est alors visible dans la liste des modules (Accueil -> Configuration -> Modules) et activable.

Configuration

Pour utiliser ce module, il vous faut d'abord l'activer. Pour cela, après s'être connecté avec un compte administrateur, aller sur la page "Accueil - Configuration - Modules".

Choisissez l'onglet dans lequel apparaît le module puis cliquez sur "Activer".

Le module est alors activé.

Si un pictogramme apparaît à la fin de la ligne du module, cliquez dessus pour accéder à la page de paramétrage spécifique à ce module.

Configuration côté Magento

  • Créer un compte Webservice SOAP/XML RPC depuis l'interface admin System - Webservices - SOAP/XML RPC, par exemple le compte soapuser.
  • Mettre un mot de passe dans le champ API key.

Configuration côté Dolibarr

Aller sur la page de configuration Dolibarr du module Magento.

400px

  • Saisir l'URL des services SOAP Magento.
  • Renseigner le login et l'API key créé à l'étape précédente dans Magento (soapuser).
  • Choisir la catégorie à utiliser pour marquer les tiers issus de Magento ou ceux à pousser sur Magento. Le tiers assigné à cette catégorie seront poussés en temps réel sur Magento.
  • Choisir la catégorie mère dans laquelle sera créée les catégories produits issues de Magento. Les produits créés ou modifiés qui sont assignés à une catégorie ou sous-catégorie de cette dernière seront poussés sur Magento en temps réel.

Utilisation

Synchronisation de Magento vers Dolibarr

Synchronisation de Dolibarr vers Magento

Développement

Le développement de ce module n'est pas inclus dans le repository GIT standard de Dolibarr mais dans un repository dédié de modules gérés par TecLib.


TroubleShooting

A cause de problemes dans Magento, si vous avez un nombre important de catégories de produits, vous constaterez de très mauvaise performance lors du comptage des données à synchroniser ou lors de la synchronisation. Voici une modification qui peut améliorer cela:

Sur Magento 1.9, éditer le fichier app/code/core/Mage/Catalog/Model/Category/Api.php pour ajouter la ligne visible en commentaire

    ...

    /**
     * Convert node to array
     *
     * @param Varien_Data_Tree_Node $node
     * @return array
     */
    protected function _nodeToArray(Varien_Data_Tree_Node $node)
    {
        // Only basic category data
        $result = array();
        $result['category_id'] = $node->getId();
        $result['parent_id']   = $node->getParentId();
        $result['name']        = $node->getName();
        $result['is_active']   = $node->getIsActive();
        $result['position']    = $node->getPosition();
        $result['level']       = $node->getLevel();

	
	/* FIX Add here this new line to add the missing property returned by web service */
        /*********/
	$result['updated_at']  = $node->getUpdatedAt();
        /*********/


        $result['children']    = array();
		
        foreach ($node->getChildren() as $child) {
            $result['children'][] = $this->_nodeToArray($child);
        }

        return $result;
    }

    ...