Difference between revisions of "Module ECommerce NG (Magento) FR"

From Dolibarr ERP CRM Wiki
Jump to navigation Jump to search
m
Tag: 2017 source edit
 
(20 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 +
<!-- BEGIN interlang links -->
 +
<!-- Do NOT edit this section
 +
    Links below are automatically managed by PolyglotBot
 +
    You can edit links on the English source page : Module_ECommerce_NG_(Magento) -->
 +
[[en:Module_ECommerce_NG_(Magento)]]
 +
<!-- END interlang links -->
 +
 
[[Category:Modules complémentaires]]
 
[[Category:Modules complémentaires]]
 
[[Category:Magento]]
 
[[Category:Magento]]
 
[[Category:Teclib]]
 
[[Category:Teclib]]
 +
[[Category:E-commerce]]
 
{{TemplateDocDev}}
 
{{TemplateDocDev}}
 
{{TemplateDocUtil}}
 
{{TemplateDocUtil}}
<keywords content="Magento, Dolibarr, synchro, synchronisation, interface" />
+
<seo metak="Magento, Dolibarr, synchro, synchronisation, interface" />
 
= Informations =
 
= Informations =
 
{{TemplateModuleInfo
 
{{TemplateModuleInfo
|modulename=Magento
+
|modulename=ECommerce NG (Magento)
 
|editor=Teclib
 
|editor=Teclib
 
|web=[http://www.teclib.com www.teclib.com]
 
|web=[http://www.teclib.com www.teclib.com]
Line 13: Line 21:
 
|status=development
 
|status=development
 
|prerequisites=
 
|prerequisites=
|minversion=3.8.0+
+
|minversion=3.9.0+
Magento version 1.9+
+
Prerequisite of Magento: Magento version 1.9.* - 1Gb of allowed memory on the PHP where Magento run may be required
 
|note=
 
|note=
 
}}
 
}}
  
 
= Fonctionnalités =
 
= Fonctionnalités =
Intègre une synchronisation Magento - Dolibarr.
+
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. L'accès à Magento est fait par Dolibarr en utilisant les Web services par défaut de Magento.
+
 
 +
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 =
 
= Installation =
Line 47: Line 56:
 
== Synchronisation de Magento vers Dolibarr ==
 
== Synchronisation de Magento vers Dolibarr ==
  
Synchronizing can be done manually from page '''Synchronizing Site ...''':
+
== Synchronisation de Dolibarr vers Magento ==
 +
 
 +
= Développement =
 +
{{TemplateModTeclibFr}}
 +
 
  
* Categories created/modified into Magento => Created into Dolibarr as sub-categories of the parent category used for Mangeto categories (defined into module setup) (Table llx_ecommerce_category is mainained to keep link of dolibarr id and remote magento id)
+
= TroubleShooting =
* Products created/modified into Magento => Created into Dolibarr with categories (Table llx_ecommerce_product is mainained to keep link of dolibarr id and remote magento id)
+
A cause de problèmes 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:
* Thirdparties and contact/addresses created/modified into Magento => Created into Dolibarr  (Table llx_ecommerce_societe and llx_ecommerce_socpeople is mainained to keep link of dolibarr id and remote magento id)
 
* Orders created/modified into Magento => Created into Dolibarr (Table llx_ecommerce_commande is mainained to keep link of dolibarr id and remote magento id)
 
* Creating a shipment in Magento is changing status of Order from "pending" to "processing". Because it is changing status or order, it is synchronized
 
* Invoices created/modified into Magento => TODO
 
  
TODO Add job/script to automate this.
+
Sur Magento 1.9, éditer le fichier '''app/code/core/Mage/Catalog/Model/Category/Api.php''' pour ajouter la ligne visible en commentaire
  
== Synchronisation de Dolibarr vers Magento ==
+
<syntaxHighlight lang="php">
 +
 
 +
    ...
 +
 
 +
    /**
 +
    * 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);
 +
        }
  
Synchronizing is done in real time:
+
        return $result;
 +
    }
  
* Categories created/modified into Dolibarr => Created into Magento if category is inside the parent category defined into setup.
+
    ...
* Products created/modified into Dolibarr => Created into Magento if product has a category inside parent category of Magento product (defined into setup too).
 
* Thirdparties and contact/addresses into Dolibarr are not synchronized to Magento.
 
* Orders created into Dolibarr => They are not pushed to Magento. Orders updates are done on Magento only if order was created by a Magento to Dolibarr synchronization.
 
* Shipments created into Dolibarr => They are not pushed to Magento except if source order was coming from Magento.
 
* Invoice created into Dolibarr => They are not pushed to Magento except if source order was coming from Magento.
 
* Stocks
 
  
= Développement =
+
</syntaxHighlight>
{{TemplateModTeclibFr}}
 

Latest revision as of 11:31, 14 June 2022

Informations

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

Dolibarr min version: See on Dolistore    Dolibarr max version: See on Dolistore

Last update date / Date mise à jour fiche / Fecha última actualización 2022-06-14
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

  • Avec un compte ayant le profil "administrateur", aller dans le menu Accueil - Configuration - Modules - Déployer un module externe.
  • Soumettez le fichier zip. Le module sera déployé est prêt pour l'étape suivante d'activation.

Manuellement

Si la méthode précédente a été désactivée par votre hébergeur, en voici une autre:

  • 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 Cog circle.svg apparaît sur la vignette ou à 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 problèmes 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;
    }

    ...