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.

  • Share/Bookmark