Changes

m
no edit summary
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 29: Line 38:     
== Configuration côté Magento ==
 
== 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.
+
* 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 ==
 
== Configuration côté Dolibarr ==
 +
 +
Aller sur la page de configuration Dolibarr du module Magento.
    
[[File:Config Magento.png|400px]]
 
[[File:Config Magento.png|400px]]
   −
* Renseigner le login et mot de passe créé à l'étape précédente.
+
* 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 à 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.
 
* 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.
Line 43: Line 56:  
== Synchronisation de Magento vers Dolibarr ==
 
== Synchronisation de Magento vers Dolibarr ==
   −
Synchronizing can done manually from page Synchronizing Site Magento:
+
== Synchronisation de Dolibarr vers Magento ==
 +
 
 +
= Développement =
 +
{{TemplateModTeclibFr}}
 +
 
 +
 
 +
= 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
 +
 
 +
<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();
   −
* 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)
+
* 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)
+
/* FIX Add here this new line to add the missing property returned by web service */
* 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)
+
$result['updated_at']  = $node->getUpdatedAt();
* 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.
     −
== Synchronisation de Dolibarr vers Magento ==
+
        $result['children']    = array();
 +
 +
        foreach ($node->getChildren() as $child) {
 +
            $result['children'][] = $this->_nodeToArray($child);
 +
        }
   −
Synchronizing is done in real time:
+
        return $result;
 +
    }
   −
* ...
+
    ...
   −
= Développement =
+
</syntaxHighlight>
{{TemplateModTeclibFr}}