From a506179f00c9e5c6a309d6083e1b109e6ba680ae Mon Sep 17 00:00:00 2001 From: EWake Date: Mon, 10 Dec 2018 11:27:19 +0100 Subject: [PATCH 1/7] Fixed ECommerceWoocommerceCreateRemoteCategoryParentNotFound when parent category is already synch --- ...eCommerceRemoteAccessWoocommerce.class.php | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/class/data/woocommerce/eCommerceRemoteAccessWoocommerce.class.php b/class/data/woocommerce/eCommerceRemoteAccessWoocommerce.class.php index ed0642a..9337541 100644 --- a/class/data/woocommerce/eCommerceRemoteAccessWoocommerce.class.php +++ b/class/data/woocommerce/eCommerceRemoteAccessWoocommerce.class.php @@ -2579,10 +2579,26 @@ public function createRemoteCategories($batch) if (isset($cats_id_remote_id[$categoryData['parent']])) { $group[$key]['parent'] = $cats_id_remote_id[$categoryData['parent']]['remote_id']; } elseif ($categoryData['parent'] > 0) { - $this->errors[] = $langs->trans('ECommerceWoocommerceCreateRemoteCategoryParentNotCreated', $this->site->name, $categoryData['name'], $categoryData['slug']); - dol_syslog(__METHOD__ . - ': Error:' . $langs->trans('ECommerceWoocommerceCreateRemoteCategoryParentNotCreated', $this->site->name, $categoryData['name'], $categoryData['slug']), LOG_ERR); - return false; + $sql="SELECT remote_id FROM ".MAIN_DB_PREFIX."ecommerce_category WHERE fk_category =".$categoryData['parent']; + $resql=$this->db->query($sql); + if ($resql) { + if ($this->db->num_rows($resql)==1) { + $obj = $this->db->fetch_object($resql); + $group[$key]['parent'] = $obj->remote_id; + } else { + + $this->errors[] = $langs->trans('ECommerceWoocommerceCreateRemoteCategoryParentNotFound', $this->site->name, $categoryData['name'], $categoryData['slug']); + dol_syslog(__METHOD__ . + ': Error:' . $langs->trans('ECommerceWoocommerceCreateRemoteCategoryParentNotFound', $this->site->name, $categoryData['name'], $categoryData['slug']), LOG_ERR); + return false; + } + } else { + + $this->errors[] = $langs->trans('ECommerceWoocommerceCreateRemoteCategoryParentNotCreated', $this->site->name, $categoryData['name'], $categoryData['slug']); + dol_syslog(__METHOD__ . + ': Error:' . $langs->trans('ECommerceWoocommerceCreateRemoteCategoryParentNotCreated', $this->site->name, $categoryData['name'], $categoryData['slug']), LOG_ERR); + return false; + } } } From bd19dd6f78d027cc71a5c580e3e7d8c01e2b81b9 Mon Sep 17 00:00:00 2001 From: EWake Date: Mon, 10 Dec 2018 14:14:47 +0100 Subject: [PATCH 2/7] Renamed old method run_trigger into runTrigger --- core/triggers/interface_90_modECommerceng_ECommerceng.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/triggers/interface_90_modECommerceng_ECommerceng.class.php b/core/triggers/interface_90_modECommerceng_ECommerceng.class.php index e7f5018..b28f25e 100644 --- a/core/triggers/interface_90_modECommerceng_ECommerceng.class.php +++ b/core/triggers/interface_90_modECommerceng_ECommerceng.class.php @@ -94,7 +94,7 @@ function getVersion() * @param Conf $conf Objet conf * @return int <0 if fatal error, 0 si nothing done, >0 if ok */ - function run_trigger($action,$object,$user,$langs,$conf) + function runTrigger($action,$object,$user,$langs,$conf) { $error=0; From e3e0f0b40b8b5e7b02077244414059a921ebbf02 Mon Sep 17 00:00:00 2001 From: EWake Date: Mon, 10 Dec 2018 14:38:36 +0100 Subject: [PATCH 3/7] Fixed db->num_rows, return > 1 even if there is only one match on db --- class/data/eCommerceCategory.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/class/data/eCommerceCategory.class.php b/class/data/eCommerceCategory.class.php index 4383c71..c113ba9 100644 --- a/class/data/eCommerceCategory.class.php +++ b/class/data/eCommerceCategory.class.php @@ -452,7 +452,7 @@ public function fetchByRemoteId($remoteId, $siteId) if ($resql) { - if ($this->db->num_rows($resql) == 1) + if ($this->db->num_rows($resql)) { $obj = $this->db->fetch_object($resql); @@ -502,7 +502,7 @@ public function fetchByFKCategory($fKCategory, $siteId) if ($resql) { - if ($this->db->num_rows($resql) == 1) + if ($this->db->num_rows($resql)) { $obj = $this->db->fetch_object($resql); $resCall = $this->fetchByRemoteId($obj->remote_id, $siteId); From dd785a01a71858ee1e93fbbf51d463479e8a1751 Mon Sep 17 00:00:00 2001 From: EWake Date: Mon, 10 Dec 2018 23:21:09 +0100 Subject: [PATCH 4/7] Added default publish status in product synch from Dolibarr to Wordpress --- .../woocommerce/eCommerceRemoteAccessWoocommerce.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/class/data/woocommerce/eCommerceRemoteAccessWoocommerce.class.php b/class/data/woocommerce/eCommerceRemoteAccessWoocommerce.class.php index 9337541..2ea7263 100644 --- a/class/data/woocommerce/eCommerceRemoteAccessWoocommerce.class.php +++ b/class/data/woocommerce/eCommerceRemoteAccessWoocommerce.class.php @@ -1885,7 +1885,7 @@ public function updateRemoteProduct($remote_id, $object) } } if ($productStatusSynchDirection == 'dtoe' || $productStatusSynchDirection == 'all') { - $productData['status'] = (!empty($status) ? $status : ''); + $productData['status'] = (!empty($status) ? $status : 'publish'); } // Synch extrafields <=> metadatas @@ -2499,7 +2499,7 @@ public function createRemoteProduct($object) } } if ($productStatusSynchDirection == 'dtoe' || $productStatusSynchDirection == 'all') { - $productData['status'] = (!empty($status) ? $status : ''); + $productData['status'] = (!empty($status) ? $status : 'publish'); } // Synch extrafields <=> metadatas From acce8ed27efef8ac2458420f0c3a2c5b61f0662d Mon Sep 17 00:00:00 2001 From: EWake Date: Tue, 11 Dec 2018 11:28:34 +0100 Subject: [PATCH 5/7] Fixed eCommerceCategory->rowid during category synch update --- class/business/eCommerceSynchro.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/class/business/eCommerceSynchro.class.php b/class/business/eCommerceSynchro.class.php index 3bfcb27..04b095a 100644 --- a/class/business/eCommerceSynchro.class.php +++ b/class/business/eCommerceSynchro.class.php @@ -917,7 +917,7 @@ public function synchCategory($toNb=0) // Search if category link already exist $synchExists = $this->eCommerceCategory->fetchByRemoteId($categoryArray['category_id'], $this->eCommerceSite->id); if ($synchExists > 0) { - $eCommerceCatExists = $dBCategorie->fetch($this->eCommerceCategory->fk_category); + $eCommerceCatExists = $dBCategorie->fetch($this->eCommerceCategory->rowid); } else { $eCommerceCatExists = -1; // Search if already exist From 5a8560d51bdef0f8d5dd83454da30a4c37c786c9 Mon Sep 17 00:00:00 2001 From: EWake Date: Sat, 22 Dec 2018 15:12:13 +0100 Subject: [PATCH 6/7] Restored eCommerceCategory->fk_category during category synch update --- class/business/eCommerceSynchro.class.php | 2 +- site.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/class/business/eCommerceSynchro.class.php b/class/business/eCommerceSynchro.class.php index 04b095a..3bfcb27 100644 --- a/class/business/eCommerceSynchro.class.php +++ b/class/business/eCommerceSynchro.class.php @@ -917,7 +917,7 @@ public function synchCategory($toNb=0) // Search if category link already exist $synchExists = $this->eCommerceCategory->fetchByRemoteId($categoryArray['category_id'], $this->eCommerceSite->id); if ($synchExists > 0) { - $eCommerceCatExists = $dBCategorie->fetch($this->eCommerceCategory->rowid); + $eCommerceCatExists = $dBCategorie->fetch($this->eCommerceCategory->fk_category); } else { $eCommerceCatExists = -1; // Search if already exist diff --git a/site.php b/site.php index 561f211..c355210 100644 --- a/site.php +++ b/site.php @@ -291,10 +291,10 @@ if ($user->rights->ecommerceng->write) $synchRights = true; // Set permission ok for .tpl - if (count($synchro->success)) + if (@count($synchro->success)) $success = $synchro->success; - if (count($synchro->errors)) + if (@count($synchro->errors)) $errors = $synchro->errors; } catch (Exception $e) From a53082033591c36309fc1c475c54851a7260c14d Mon Sep 17 00:00:00 2001 From: EWake Date: Sat, 22 Dec 2018 15:55:29 +0100 Subject: [PATCH 7/7] Added synchDtoECategory and synchDtoEProduct methods to synchAll cron job --- class/business/eCommerceUtils.class.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/class/business/eCommerceUtils.class.php b/class/business/eCommerceUtils.class.php index 3f3f5e2..8c65fcf 100755 --- a/class/business/eCommerceUtils.class.php +++ b/class/business/eCommerceUtils.class.php @@ -101,6 +101,9 @@ public function synchAll($toNb=0) if ($result >= 0) $result=$synchro->synchSociete($toNb); if ($result >= 0) $result=$synchro->synchCommande($toNb); if ($result >= 0) $result=$synchro->synchFacture($toNb); + + if ($result >= 0) $result=$synchro->synchDtoECategory($toNb); + if ($result >= 0) $result=$synchro->synchDtoEProduct($toNb); } if ($error || $result < 0)