Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
f571756
Module ECommerceNg: Fix the field 'price_level' NOT NULL at NULL in t…
kkhelifa-opendsi Jun 16, 2017
1613673
Merge branch 'master' of github.com:TECLIB/dolibarr
kkhelifa-opendsi Jun 16, 2017
89443a5
Update README.md
philippe-opendsi Jun 26, 2017
651599b
Update README.md
philippe-opendsi Jun 26, 2017
9890c4b
Merge branch 'master' of github.com:TECLIB/dolibarr
kkhelifa-opendsi Oct 19, 2017
9a61d12
Modification mentions support
philippe-opendsi Oct 30, 2017
2f0c67b
- Ajout OAuth2 pour Wordpress
kkhelifa-opendsi Nov 10, 2017
5633a3f
Merge branch 'master' of github.com:OPEN-DSI/ecommerceng
kkhelifa-opendsi Nov 10, 2017
6dfc9fe
Mise a jour du changelog
kkhelifa-opendsi Nov 10, 2017
d422b9a
Update eCommerceSynchro.class.php
eldy Nov 11, 2017
cc60da2
Comment code i am no sure
eldy Nov 11, 2017
0489e63
Update eCommerceSynchro.class.php
eldy Nov 11, 2017
b57cabd
tva_assuj to 1 by default
eldy Nov 11, 2017
7fb2130
Restore ECOMMERCENG_THIRDPARTY_UNIQUE_ON to decide what is unique key…
eldy Nov 11, 2017
693355e
Update eCommerceSynchro.class.php
eldy Nov 11, 2017
86be89a
Restore ability to get price base type from remote ecommerce instead …
eldy Nov 11, 2017
673f19b
Module ECommerceNG: Corrections mineures
kkhelifa-opendsi Dec 11, 2017
d5e0a5d
Merge branch 'master' of github.com:OPEN-DSI/ecommerceng
kkhelifa-opendsi Dec 11, 2017
1ea8f78
Update ChangeLog.md
kkhelifa-opendsi Dec 15, 2017
717c95c
Module ECommerceNG:
kkhelifa-opendsi Dec 15, 2017
0b20872
Merge branch 'master' of github.com:OPEN-DSI/ecommerceng
kkhelifa-opendsi Dec 15, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 21 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,21 @@
Repository with Teclib modules for Dolibarr ERP CRM
Use it at you onwn risk
Open-DSI does not provide support for the use, installation or bug fixing for this software. For this you have to acquire a time credit on our online shop.
https://www.open-dsi.fr/boutique/
You can also consult our company for any installation, configuration or development services.
Forker Repository of Teclib modules for Dolibarr ERP CRM
Only use to maintain ecommerceng module for Woocommerce
Before any use, please refer to the wiki to check the available functionnality
https://wiki.dolibarr.org/index.php/Module_woocommerce_EN
and read the document in
htdocs/ecommerceng/doc/

Utilisation à vos risques et périls.
Open-DSI ne fournit pas de support à l’utilisation, à l'installation ni de correction de bugs pour ce logiciel. Pour cela vous devrez faire l’acquisition d’un crédit temps sur notre boutique en ligne.
https://www.open-dsi.fr/boutique/
Vous pouvez également nous consulter pour toute prestation d’installation, configuration ou développement.
Dépôt forké depuis celui de Teclib
Utilisé pour maintenir et publier le module ecommerceng pour WooCommerce
Avant toute utilisation, merci de prendre connaissance du wiki pour vérifier si le module répond en l'état à vos besoins
https://wiki.dolibarr.org/index.php/Module_woocommerce_EN
et lire la documentaion disponible dans
htdocs/ecommerceng/doc/
55 changes: 55 additions & 0 deletions htdocs/ecommerceng/ChangeLog.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,60 @@
# ChangeLog

## 4.0.3.0

- Enregistre la société pour les clients anonymes pour chaque site et non dans l'option ECOMMERCENG_USE_THIS_THIRDPARTY_FOR_NONLOGGED_CUSTOMER
- Correction de la quantités des éléments lié au site pour la fiche du site (en non pour tous les sites)
- Ajout d'une option ECOMMERCENG_NO_COUNT_UPDATE pour ne pas récupérer les quantités à mettre à jour et afficher tous les boutons de synchronisation sur la fiche du site.
- Correction de la recherche de correspondance lors de la synchro des catégories
- Correction de la récupération des produits et de ses variantes
- Correction de la recherche de la ref du produits dans Dolibarr lors de la synchro
- Ne re-télécharge pas les informations du client pour recupérer les adresses du clients lors de la synchro des sociétés
- Lors de la synchro des contacts, rempli le nom si vide par "\[nom non renseigné\]" ou "Pas de nom/prénom renseigné" en fonction des cas
- Similaire pour les nom des tiers
- Ajout de l'option ECOMMERCENG_WOOCOMMERCE_ORDER_PROCESSING_STATUS_TO_DRAFT pour ne forcer les commandes woocommerce au statut "En cours" redescende au statut "Brouillon" dans Dolibarr
- Les commandes woocommerce au statut "Remboursées" redescende au statut "Annulée" dans Dolibarr
- Definie la description d'une ligne de produit vide par "L'api n'a pas pu récupérer la description du produit"
- Cherche la societe du contact d'une commande par son adresse mail si fourni pour les commandes anonymes
- Correction de la recherche d'un contact par ses informations
- Correction d'une partie de la gestion des erreurs
- Les logs bas niveaux woocommerce sont au niveau DEBUG et plus au niveau INFO
- Corrections mineures

## 4.0.2.0

- D'un champ complémetaire oublié pour la fiche d'un produit d'un site woocommerce
- Affiche du lien de test sur les parametres du site que si l'adresse du site est renseigné
- Ajout de la description de l'erreur lors du fonctionnement de l'OAuth 2
- Corrections mineures

## 4.0.1.0

- Ajout OAuth2 pour Wordpress
- Mise en commun du type de prix renvoyé par la boutique (HT / TTC)
- Lien de test en fonction du type du site
- Creation de champ complémentaire à l'ajout d'un site Woocommerce
- Ajout de la gestion des classes de TVA Woocommerce pour les produits + Dictionnaire
- Ajout des fonctions de recherche, insert et update à la classe eCommerceDict
- Ajout et modification de traductions
- Corrections du decodage de la reponse de l'API Woocommerce
- Ajout de la synchronisation du produit lors de l'ajout de la catégorie mère "E-Commerce" (Trigger)
- Ne synchronise pas le produit lorsque l'on envèle la catégorie mère "E-Commerce" (Trigger)
- Creation du produit sur le site depuis dolibarr (Trigger)
- Correction du statut réel de la commande lors de la synchro de Dolibarr vers E-Commerce (Trigger)
- Ajout test connection a l'appel de la fonction connect de la classe remote access de Woocommerce
- Correction de la gestion des dates lors des fonctions ToUpdate de Woocommerce
- Modification gestion des tiers (avec recherche doublon par email, nom, ...) et distinctions entreprise/particulier
- Modification gestion des contacts/adresses avec recherche doublon
- Modification gestion des catégories avec recherche doublon
- Modification de mise a jour du prix du produit
- Ajout de gestion des extrafields sur les produits et commandes
- Ajout de la synchro methode de paiment sur la commande dans la synchro E-Commerce vers Dolibarr
- Ajout ECOMMERCENG_WOOCOMMERCE_FORCE_ORDER_STATUS_TO_DRAFT pour forcer le statut de la commande en brouillon lors de la synchro Woocommerce vers Dolibarr- Ajout de la possibilité d'ignorer les commandes anonyme avec la variable ECOMMERCENG_PASS_ORDER_FOR_NONLOGGED_CUSTOMER
- Ajout synchronisation des images avec E-commerce (possibilité de l'activer avec la variable ECOMMERCENG_ENABLE_SYNCHRO_IMAGES) (Necessite paramétrage OAuth2 pour l'envoi des images vers Woocommerce)
- Ajout envoie PDF facture / expedition à la génération du PDF sur la commande Woocommerce via Wordpress (Necessite paramétrage OAuth2) (l'activer avec la variable ECOMMERCENG_ENABLE_SEND_FILE_TO_ORDER)
- Ajout synchro des catégories de Woocommerce vers Dolibarr
- Corrections diverses

## 3.9.1.0

- Add option ECOMMERCENG_THIRDPARTY_UNIQUE_ON to search existing thirdparties from email instead of name.
Expand Down
135 changes: 135 additions & 0 deletions htdocs/ecommerceng/admin/class/data/eCommerceDict.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,141 @@ public function getAll()
return $lines;
}

/**
* Get all lines from database match with keys (array(field=>array(value, type)))
* @param array $keys Keys for the search array(field_name=>array('value'=>value, 'type'=>type) (type (optionnel: string, like, date)
* @return array
*/
public function search($keys)
{
$lines = array();

$sql = "SELECT * FROM `".$this->table."`";
if (is_array($keys) && count($keys) > 0) {
$fields = array();
foreach ($keys as $field => $value) {
switch ($value['type']) {
case 'string':
$key = "= '".$this->db->escape($value['value'])."'";
break;
case 'like':
$key = "LIKE '".$this->db->escape($value['value'])."'";
break;
case 'date':
$key = "= '".$this->db->idate($value['value'])."'";
break;
default:
$key = '= '.$this->db->escape($value['value']);
break;
}
$fields[] = $field.' '.$key;
}
$sql .= " WHERE ".implode(' AND ', $fields);
}

$result = $this->db->query($sql);
if ($result) {
while ($obj = $this->db->fetch_array($result)) {
$lines[] = $obj;
}
}

return $lines;
}

/**
* Update all lines from database match with keys
* @param array $values Values for the search array(field_name=>array('value'=>value, 'type'=>type) (type (optionnel: string, date)
* @param array $keys Keys for the search array(field_name=>array('value'=>value, 'type'=>type) (type (optionnel: string, like, date)
* @return boolean
*/
public function update($values, $keys)
{
$sql = "UPDATE `".$this->table."` SET ";
if (is_array($values) && count($values) > 0) {
$fields = array();
foreach ($values as $field => $value) {
switch ($value['type']) {
case 'string':
$key = "= '" . $this->db->escape($value['value']) . "'";
break;
case 'date':
$key = "= '" . $this->db->idate($value['value']) . "'";
break;
default:
$key = '= ' . $this->db->escape($value['value']);
break;
}
$fields[] = $field . ' ' . $key;
}
$sql .= implode(' AND ', $fields);
}
if (is_array($keys) && count($keys) > 0) {
$fields = array();
foreach ($keys as $field => $value) {
switch ($value['type']) {
case 'string':
$key = "= '" . $this->db->escape($value['value']) . "'";
break;
case 'like':
$key = "LIKE '" . $this->db->escape($value['value']) . "'";
break;
case 'date':
$key = "= '" . $this->db->idate($value['value']) . "'";
break;
default:
$key = '= ' . $this->db->escape($value['value']);
break;
}
$fields[] = $field . ' ' . $key;
}
$sql .= " WHERE " . implode(' AND ', $fields);
}

$result = $this->db->query($sql);
if ($result) {
return true;
}

return false;
}

/**
* Insert line to database
* @param array $fields Fields for insert
* @param array $values Values for the insert array(field_name=>array('value'=>value, 'type'=>type) (type (optionnel: string, date)
* @return boolean
*/
public function insert($fields, $values)
{
$values_list = array();
if (is_array($values) && count($values) > 0) {
foreach ($fields as $field) {
if (isset($values[$field])) {
switch ($values[$field]['type']) {
case 'string':
$values_list[] = "'" . $this->db->escape($values[$field]['value']) . "'";
break;
case 'date':
$values_list[] = "'" . $this->db->idate($values[$field]['value']) . "'";
break;
default:
$values_list[] = $this->db->escape($values[$field]['value']);
break;
}
}
}
}

$sql = "INSERT INTO `".$this->table."` (".implode(', ', $fields).") VALUES(".implode(', ', $values_list).")";
$result = $this->db->query($sql);
if ($result) {
return true;
}

return false;
}

/**
* Get the value of ECOMMERCE_COMPANY_ANONYMOUS from db
* @return int > 0 if OK, 0 if KO
Expand Down
Loading