eBay affiliate links without leaving the editor
If you write about things people buy second hand, cameras, records, parts for old cars, eBay pays better than most affiliate programs and almost nobody links to it properly. EasyBay Pro has been on this site since July 2014 for exactly that job: put your eBay Partner Network campaign ID in once, and every eBay link the plugin makes carries it. The 2.0.0 download here is a fresh implementation for current WordPress, written in the same shape as EasyAzon, because the two plugins solve the same problem for two different shops.
Links need only a campaign ID
Go to Settings, EasyBay Pro, enter the campaign ID and save. From then on there are three ways to make a link. [easybay keyword="vintage camera"] links to a search, [easybay item="123456789012"] links to one item, and [easybay url="..."]text[/easybay] wraps any eBay page you paste. The eBay Link block does the same in the block editor, and a button in the classic editor inserts the shortcode for you. Pasted URLs are checked against eBay’s own hosts; the plugin will not wrap a link to somewhere else.
Each link gets the tracking parameters EPN expects, campid, mkcid, mkevt, toolid and the mkrid rotation ID for the marketplace. Eight marketplaces are supported: eBay US, UK, Germany, Australia, Canada, France, Italy and Spain. Links can be set to rel="nofollow sponsored" and to open in a new tab.
Live listings need your own API keys
The second half is the eBay Listings block, or [easybay_listings keyword="vintage camera" limit="6" columns="3" sort="price"]. It pulls current items for a keyword from eBay’s Browse API and shows image, title, price, shipping and condition in a grid. For that you create an app at developer.ebay.com and paste its App ID and Cert ID into the settings page. The Cert ID field is a password input, the access token is cached in a transient and never printed, and results are cached for the number of hours you set (the default is 6). There is a “Test API connection” button, a “Clear cache” button and a sandbox tick box for sandbox keys.
When listings cannot be fetched, visitors see nothing at all; logged-in editors see a notice. That is on purpose. An empty grid is better than an error on a public page.
For developers
easybay_pro_urlfilters every built linkeasybay_pro_resultssupplies results before any request is made, which is how we tested the grideasybay_pro_itemsfilters the normalised items before rendering
What we did and did not test
No copy of the original code survived, so 2.0.0 is new code written to the original promise rather than a patch of old files. Settings go through the Settings API with sanitising (digits-only campaign ID, bounded cache hours, a marketplace whitelist), keys are readable only by administrators, and remote calls use wp_safe_remote_get with a 15 second timeout. Nothing is sent anywhere except to eBay with your keys. The link builder is fully tested. The listings grid was exercised with a three-item fixture through the results filter, because we had no eBay developer keys in the build session, so the live Browse API path is verified by code review only. Press “Test API connection” after you paste production keys and tell us if it fails. Needs WordPress 6.2 and PHP 7.4 or newer; tested on 7.1.






