private function insertOrUpdateCategories()
 {
     //update existing
     foreach ($this->arrobjCategories as $objCategory) {
         if (isset($this->m_arrstrProductCategories[$objCategory->getSalesforceId()])) {
             $arrmixCategory = $this->m_arrstrProductCategories[$objCategory->getSalesforceId()];
             $objCategory->setName($arrmixCategory['name']);
             $objCategory->setParentSalesforceId($arrmixCategory['parent_category_id']);
             $objCategory->setDescription($arrmixCategory['name']);
             unset($this->m_arrstrProductCategories[$objCategory->getSalesforceId()]);
             $this->objEntityManager->persist($objCategory);
         }
     }
     //Add
     if (is_array($this->m_arrstrProductCategories) && count($this->m_arrstrProductCategories) > 0) {
         foreach ($this->m_arrstrProductCategories as $arrstrData) {
             $objCategory = new Category();
             $objCategory->setName($arrstrData['name']);
             $objCategory->setSalesforceId($arrstrData['id']);
             $objCategory->setParentSalesforceId($arrstrData['parent_category_id']);
             $objCategory->setDescription($arrstrData['name']);
             $this->objEntityManager->persist($objCategory);
         }
     }
     $this->objEntityManager->flush();
     $this->output[] = 'Categories created/updated successfully.';
 }