Skip to content

FAQ & troubleshooting

Common questions, and what to check for each connection-test error. If your question isn't here, get in touch through the contact form on the blog.

The basics

Is it free?

Yes. Pukulink is free and distributed under GPLv2 or later. It is not a limited edition of a paid plugin — everything described on this site is included.

Does it work outside Japan — Amazon.com, eBay and so on?

Not today. Pukulink currently talks to Amazon.co.jp, Rakuten Ichiba and Yahoo! Shopping (Japan), through Amazon Associates JP, Rakuten Affiliate, ValueCommerce and Moshimo Affiliate. Other Amazon regions, eBay, Walmart and AliExpress are not supported yet.

You do not have to write in Japanese, and your readers do not have to be in Japan — but for now the money has to come from Japanese affiliate programmes for the plugin to be useful.

It is meant to go wider eventually. The plugin is built as a shared core plus one adapter per marketplace, and it is fully internationalised, so adding a marketplace is a contained job rather than a rewrite. The Amazon Creators API supports switching marketplace, so other Amazon regions are the likely first step; eBay and similar would be new adapters after that.

There is no timeline, and nothing here should be read as a commitment — a solid Japanese release comes first. If a particular marketplace would make you a user, mention it on the blog; requests are what set the order.

Where do I install it from?

Search for Pukulink under Plugins > Add New in the WordPress admin. It is distributed through the WordPress.org plugin directory, so updates are announced in your admin as usual. If you prefer a ZIP, use the download page.

What language is the interface in?

Pukulink follows your WordPress site language (Settings > General > Site Language). English is the source language, and a Japanese translation is distributed through translate.wordpress.org.

The site language also affects the front end: card wording such as “Amazon price:”, “Read reviews” and the “prices and availability are as of…” note is translated alongside the admin screens. Button labels are separate — you can rewrite those freely under Settings > Pukulink > Display & Design.

Can I use it with only the Block Editor?

Yes. Add the block from the inserter's “+”, or type /pukulink (searching for “product link” also finds it). The Classic Editor is a stated strength, but the Block Editor is not an afterthought.

Do I have to configure all three marketplaces?

No. Rakuten alone, or Yahoo! alone, works. Buttons for marketplaces you did not configure are simply not shown. To try one first, Yahoo! Shopping is the easiest — its Client ID is issued immediately with no review.

The buttons appear, but I'm earning nothing.

A missing affiliate ID is the most common cause. For Rakuten Ichiba and Yahoo! Shopping, the API credentials alone are enough to search products and render cards, so buttons show up even when the affiliate ID (Rakuten Affiliate ID, or ValueCommerce sid / pid) is blank. In that state the button links to the plain store URL and no commission is attributed.

Since v2.6.5 the settings screen warns about this. Check that every enabled marketplace has its affiliate ID under Settings > Pukulink > API settings.

Can I migrate from another product-link plugin?

Pukulink does not reinterpret other plugins' shortcodes. If you switch, search and insert the products again. That is a deliberate decision to avoid mismatched product codes.

Does it work from the mobile admin?

Yes. On a phone the search modal goes full-screen, and you can search and insert from there.

Leaving, and moving house

What happens to my posts if I deactivate the plugin?

The shortcodes show up as plain text. If you want them to keep rendering as something, add this to your theme's functions.php and they degrade to minimal text links.

// Keep [pukulink] rendering as a minimal link after Pukulink is deactivated
add_shortcode( 'pukulink', function ( $atts ) {
	$a   = shortcode_atts( array( 't' => '', 'rurl' => '', 'yurl' => '', 'asin' => '' ), $atts, 'pukulink' );
	$url = $a['rurl'] ? $a['rurl'] : ( $a['yurl'] ? $a['yurl'] : ( $a['asin'] ? 'https://www.amazon.co.jp/dp/' . rawurlencode( $a['asin'] ) : '' ) );
	if ( '' === $url || '' === $a['t'] ) {
		return esc_html( $a['t'] );
	}
	return '<a href="' . esc_url( $url ) . '" target="_blank" rel="nofollow noopener">' . esc_html( $a['t'] ) . '</a>';
} );
add_shortcode( 'pukulink_draft', '__return_empty_string' );
What exactly is stored inside a post?

A shortcode, and nothing else. Its contents are the product name, product codes (ASIN / Rakuten itemCode / JAN code), the bare product URLs, the price and the fetch date. No plugin-specific HTML and no affiliate IDs are written into the post.

[pukulink shop="rakuten" t="Product name" kw="search keyword" img="https://..." pr="1980"
  rate="4.5" rv="12" rcode="shop:10000001" rurl="https://item.rakuten.co.jp/..."
  tp="standard" amz="1" rk="1" yh="1" pr_show="0" d="2026-07-07"]

Some attributes appear only when you set a per-card override.

  • pr_show — price display (1 = show, 0 = hide; absent means follow the site setting)
  • imgs — extra gallery image URLs (|-separated, up to 4)
  • gallery_show — gallery display (1 = always show, 0 = always hide; absent means follow the site setting)

Affiliate URLs are assembled at display time, so changing an ID or a design updates every post at once.

Can I back up or take my data out?

Yes — the export on the Report tab writes settings, the product registry, insertion history, click totals and price history to JSON. Secrets such as Client Secrets are excluded.

Price updates

When do prices update?

WP-Cron runs hourly and gradually refreshes products displayed within the last 30 days whose cache period (24 hours by default) has expired. To stay inside each API's rate limit — roughly one request per second — it never fetches everything at once.

Can I hide prices?

Yes, two ways.

  • Site-wide: under Display & Design > Price display, switch off “show prices”, “show the fetch date” and “show the note” independently. The change applies to every saved post at once — nothing needs re-inserting.
  • Per card: the insert preview's Price display control offers “follow the site setting / show / hide”, so you can override just the cards that need it.

Hiding a price does not affect fetching, automatic updates or structured data. Switch it back to “show” and the current price appears.

If you display Amazon prices, leaving the fetch date on is the safer reading of the Associates Programme Operating Agreement.

Prices aren't updating.

Check in this order.

  1. Is the site quiet? WP-Cron only fires when someone loads a page. Schedule wp-cron.php with your server's cron (example).
  2. Is it a Yahoo! item? Yahoo! Shopping only auto-updates items with a JAN code. Without one, the price captured at insertion stays.
  3. Has the product been displayed recently? Only products shown in the last 30 days are updated (registration is dropped after 90 days without a view).
  4. Does the connection test pass? Expired API credentials stop updates.
Can I find products whose price can no longer be fetched?

Yes — Product health on the Report tab lists them, with a one-click search for the posts using each one.

Connection-test errors

Amazon

SymptomWhat to do
Authentication failsCheck for leading or trailing spaces in the Client ID / Client Secret, and that the credentials version (3.3 / 2.3) matches what was issued.
It says you are not eligibleCheck your current eligibility in Associates Central. Amazon buttons still work as keyword search links, and the API is retried automatically every six hours.
You entered legacy PA-API keysPA-API v5 was retired on 15 May 2026. Access Key / Secret Key pairs do not work. Issue a Creators API Client ID and Client Secret instead.

Amazon setup steps →

Rakuten Ichiba

SymptomWhat to do
Authentication or allowed-website verification failsCheck three things: the Application ID, the access key (pk_…), and the allowed website registered with Rakuten Web Service. A missing allowed-website registration is by far the most common cause.
An error about the legacy APIThe access key is missing. The legacy API ended on 17 August 2026, and Rakuten search and price updates do not work without a key. Follow the Rakuten setup steps to register a new-specification application.
Request limit reachedWait a second or more and retry.

Rakuten setup steps →

Yahoo! Shopping

SymptomWhat to do
Authentication or authorisation failsCheck the Client ID issued by the Developer Network and the state of the application.
Temporarily rate limitedWait a second or more and retry.
No commissionsThe ValueCommerce sid / pid are missing or have the wrong number of digits. Re-copy them from a MyLink code.

Yahoo! Shopping setup steps →

Tracking and privacy

What does click tracking record?

Only “which post, which marketplace's button, and when”. Nothing that identifies a person is stored. If you enable Google Analytics (gtag) events, that click is also sent to GA. See the privacy page.

Are my API keys ever sent to the developer?

No. Credentials such as Client Secrets are never sent to a server operated by the plugin developer, or anywhere other than the relevant service. Every destination is disclosed on the privacy page.

Known limits

The per-marketplace and per-template tables live in “What it can and can't do” on the features page. Listed here are the ones that trip people up in practice.

Differences between marketplaces

  • Amazon product search needs API eligibility. The conditions were tightened in November 2025; the guideline is around 10 qualifying sales in the last 30 days. A new account probably cannot search yet, and Amazon buttons fall back to search links.
  • Amazon search needs three things: the Creators API Client ID, the Client Secret and an Associate ID. Without the Associate ID (or a Moshimo a_id), the Amazon button does not appear at all.
  • Amazon shows no star rating or review count, because the Creators API does not return them (you do get a “Read reviews” link). Rakuten and Yahoo! are the reverse.
  • Yahoo! Shopping only auto-updates prices for items with a JAN code. Without one, the price captured at insertion stays.
  • Yahoo! Shopping does not support the image gallery, because its API returns a single image.
  • Favourite-store search is Rakuten and Yahoo! only — Amazon has no store concept.

Tracking and reports

  • Click tracking is approximate: repeat clicks from the same connection, post and store count once per minute, only published posts are tracked, and JavaScript must run.
  • Reports cover this month and last month, top 50 rows each.
  • Price history is recorded but has no screen yet (data collection for a future price-trend chart).
  • Insertion history keeps the latest 50 items.

Other

  • Each API is rate limited to roughly one request per second, so price updates happen gradually every hour.
  • On low-traffic sites WP-Cron struggles to run and price updates lag.
  • Deactivating the plugin leaves shortcodes visible as plain text.
  • Using the Classic Editor requires the Classic Editor plugin (it is no longer part of WordPress core).
  • Multisite has not been tested.
  • v2.0.0 is an independent plugin with no compatibility code for the pre-2.0 version. Old cards, settings, history and click totals are not carried over.

Did that solve it?

If you hit a bug that isn't listed here, it helps a lot to include your WordPress version, PHP version, which editor you use, and the error message.