Kategorien
Blog Software Web Wordpress

WordPress Plugin: Amazon Reloaded – No Images

This is a short english version of My german post about a work-around for a issue with the plugin. Today I have noted, there are no more picture urls. Only a broken icon and the url is a ‚add-to-wishlist‘-link. I found no easy-to-use alternative, so I do a little research and debugging and found, the xml-response has a new element named ‚ItemLinks‘. This element also has childs ‚URL‘.

The plugin-code takes all elements named ‚URL‘ and uses them as picture-links. Since the author will not longer support the plugin, you have to fix it for yourself or wait for a dev, who changes the code and submit to the wordpress svn. Maybe I will do. For the moment, follow this steps to make it work again. In the file:

/wp-content/plugins/amazon-reloaded-for-wordpress/amazon-reloaded-for-wordpress.php

you have to add these lines after the line 82:

...
$detailPageUrl = $this->getFirstElementValueForTagName($item, 'DetailPageURL');

// New lines to make image urls working
$itemlinks = $item->getElementsByTagName('ItemLinks')->item(0);
$itemlinks->parentNode->removeChild($itemlinks);

$imageUrls = array();
...

This removes the new ‚ItemLinks‘ element from the xml-response. So the plugin can find pictures and work as expected. While reading the amazon webservice documentation, they use a different url. To reflect the new url, you have to change:

http://ecs.amazonaws.com

to:

http://webservices.amazon.com

This can be done with a small change to the last 2 functions in the php-file. At the end, change the url’s in both functions like this:

function getAmazonProductSearchRequestUrl($terms, $index) {
  $settings = $this->getSettings();
  $url = "http://webservices.amazon.{$settings['amazon-locale']}/onca/xml?";
  $url .= 'Service=AWSECommerceService&';
  $url .= 'Version=2011-08-01&';
  $url .= 'AssociateTag=' . urlencode( $settings[ 'amazon-associates-id'] ) . '&';
  $url .= "AWSAccessKeyId={$settings['amazon-api-key']}&";
  $url .= 'Operation=ItemSearch&';
  $url .= 'Keywords='.urlencode(str_replace(' ', '%20', $terms)).'&';
  $url .= 'SearchIndex='.urlencode($index).'&';
  $url .= 'ResponseGroup=Small,Images';
  return $url;
}

function getAmazonHelpRequestUrl() {
  $settings = $this->getSettings();
  return 'http://webservices.amazon.'.$settings['amazon-locale'].'/onca/xml?Service=AWSECommerceService&AWSAccessKeyId='.$settings['amazon-api-key'].'&Operation=BrowseNodeLookup&BrowseNodeId=163357';
}

I have packed a changed version of this plugin. You can grab it here and simply unpack it over the old version. You must overwrite the old files.

Von Thoms

Der Autor dieses schönen Blogs. Immer am Start, wenn es neue Gadgets zu testen gilt oder sonderbare Geschichten zu erzählen sind. Geschätzt und gefragt wenn es um neuste technische Geräte geht.
Im Beruf der Berater für Internet und Commerce. Aus Dresden. Aber auch früher in Berlin und Österreich zu Hause.