Importing ShareASale Datafeeds into Drupal Part 2

Okay, there is an issue using Node Import to import ShareASale datafeeds.

Either the datafeed itself or the import process makes characters like “&” come up as character codes. I have had the same issue before with xml files, but now is not the time to investigate, just to fix the issue.

My solution, though a little hacky, was to create a page in Drupal with the import format set to “php code” and then paste code to clean these characters.

The three tables to focus on are:

  • term_data
  • node
  • node_revisions

Here is the code:

<?php $deletes = array ( “&” => “&”, “’” => “'”, “>” => “>”); foreach($deletes as $remove=>$replace){ $cleantagquery = “UPDATE {term_data} SET name=REPLACE(name,’$remove’,’$replace’)”; db_query($cleantagquery); $cleantitlequery = “UPDATE {node} SET title=REPLACE(title,’$remove’,’$replace’) WHERE type = ‘store’”; db_query($cleantitlequery); $cleanrevtitlequery = “UPDATE {node_revisions} SET title=REPLACE(title,’$remove’,’$replace’)”; db_query($cleanrevtitlequery); $cleanrevbodyquery = “UPDATE {node_revisions} SET body=REPLACE(body,’$remove’,’$replace’)”; db_query($cleanrevbodyquery); } if(mysql_error()){ echo mysql_error(); }else{ echo “Done!”; }

?>

Of course, Wordpress just changed the character entities back to the character, but you get the idea.