Features
From finding a product to inserting it, keeping its price current and seeing what readers clicked — everything Pukulink does, in order.
- Search and insertOpen the modal, find it, check it, place it
- Cross-store product linkingThe feature that makes Pukulink different
- Automatic price updatesA little at a time via WP-Cron, within rate limits
- Product image gallerySwipeable extra photos (optional, off by default)
- Template galleryAll six, rendered live
- Classic and Block editorsBoth save the same shortcode
- Favourite stores & sale labelsShop-scoped search and sale badges
- Click tracking and reportsPer-store counts and GA4 events
- Customisation and operationsColours, wording, export, connection tests
- What it can and can't doPer-store and per-template tables
Search and insert
The Add Pukulink button in the Classic Editor and the Pukulink block in the Block Editor open the same search modal. From that point on, the two editors behave identically.
- Search. Type a keyword and switch between the Amazon, Rakuten Ichiba and Yahoo! Shopping tabs. For Rakuten and Yahoo! you can also restrict the search to one of your saved favourite stores.
- Check the preview. Pick a template and flip between desktop, tablet and phone widths. Each store button in the preview opens the real product page or search results in a new tab so you can verify it.
- Insert. A shortcode goes into the post. You are returned to the results list, so the next product is right there.
Cross-store product linking
This is the part that makes Pukulink different. Across Amazon, Rakuten Ichiba and Yahoo! Shopping, only the items you have confirmed to be the same product are linked into one card, and the card shows each store's price. You do not have to link all three.
Bound by product code, not by guesswork
Matching on product names alone confuses model variants, capacities, bundles and resold listings. If a reader clicks your Amazon button and lands on a different item, they stop trusting the article — not just the link.
So Pukulink drops the guessing and gives you an explicit link action instead. From the insert preview you search another store, and when you are sure it is the same product you press Link. The product code — ASIN, Rakuten itemCode or JAN code — is what gets saved on the card.
Because the binding is a product code:
- Readers always land on that exact product page. No search-results detour, no wandering off to something else.
- Each store's price updates independently. “¥42,800 on Amazon, ¥43,500 on Rakuten” side by side, so the reader can choose.
- You can change it later. Links can be edited or removed from a card that is already published.
How to link
- Pick a product; the insert preview opens. Press + Link an item from another store.
- Choose a store other than the one you started in and search by product name (for Rakuten and Yahoo! you can narrow to a favourite store).
- Press Link on the result you have confirmed is the same product.
- Back in the preview, check the per-store items and prices, then insert.
What linking stores
| Store | Key used for price updates | Automatic price updates |
|---|---|---|
| Amazon | ASIN | Yes |
| Rakuten Ichiba | itemCode | Yes |
| Yahoo! Shopping | JAN code (+ store ID) | Only for items that have a JAN code |
What happens to stores you didn't link
Not nothing. Their buttons become links to that store's search results for the keyword you searched with. Instead of asserting which item is the right one, Pukulink hands the reader the marketplace's own results and lets them pick.
- Rakuten Ichiba:
search.rakuten.co.jp/search/mall/keyword/ - Yahoo! Shopping:
shopping.yahoo.co.jp/search?p=keyword - Amazon: the keyword search results page
Your affiliate ID is applied to search links too, so a purchase made from there still earns. Mixing direct links and search links on one card is completely fine — publish with one store linked, then link the others later to tighten it up.
Using the search link as a filtered search
Search links use a short search keyword, not the card's long product title, and you can edit that keyword freely in the Search keyword field of the insert preview. The title displayed on the card does not change.
So even if you found the item by searching “wireless headphones”, setting the field to WH-1000XM6 means unlinked stores land on results filtered by model number. For products where resold or compatible items crowd the top of the results, adding the model, capacity or colour saves your reader a lot of squinting.
Linking costs you effort per product; adjusting the search keyword costs one edit and covers every remaining store. Link the hero product, and let a well-chosen keyword handle the rest is a perfectly reasonable way to work. Leave the field empty and it falls back to searching by product name.
Automatic price updates and fetch dates
Prices are refreshed by product code, a little at a time, on an hourly WP-Cron run (24-hour cache by default). Each marketplace API allows roughly one request per second, so updates are spread out rather than fired off in a burst.
Cards show which store the price came from and when it was fetched — “Rakuten Ichiba price: ¥43,500 (as of 2026/7/30)”. Readers can see how current the figure is, which makes price movement far less awkward.
You can also show no prices at all
Prices are not mandatory. There are two levels: a site-wide default and a per-card override.
Site-wide default
Under Display & Design, the Price display group has three independent switches (all on by default).
| Setting | When switched off |
|---|---|
| Show prices | The price rows disappear. You get a clean card with the title, image and buttons. |
| Show the price fetch date | The “(as of 2026/7/30)” part disappears. |
| Show the “prices and availability are as of…” note | The note at the bottom of the card disappears. |
There are plenty of reasons to hide prices — volatile products, articles meant to stay readable for years, a lighter card. Whichever it is, the change applies to every saved post at once. Nothing needs re-inserting.
Per-card override
The Price display control in the insert preview decides how that one card behaves.
| Option | Behaviour |
|---|---|
| Follow the site setting | Default. Behaves as configured site-wide. |
| Show | Shows the price on this card even when the site setting is off. |
| Hide | Hides the price on this card even when the site setting is on (the “prices and availability…” note goes too). |
Useful for “prices on by default, but not for this one volatile item”, or “prices off by default, except in this comparison article”. Hiding a price does not affect fetching, automatic updates or structured data — switch it back to Show later and the current price appears.
Text Link and Comparison Buttons never display prices, so the control does not appear for them.
A separate Reviews setting controls the star rating and the review link. Note that star ratings only appear for Rakuten Ichiba and Yahoo! Shopping items — the Amazon Creators API does not return review scores, so Amazon gets a “Read reviews” link instead (see the per-store table).
wp-cron.php with your server's own cron makes it reliable. On Xserver this is the “Cron設定” panel.
Product registry and health checks
Displayed products enter a product registry, and only products shown in the last 30 days are eligible for updates (registration is dropped after 90 days without a view). The plugin does not keep hammering APIs for products nobody sees.
Products whose price can no longer be fetched — possibly discontinued — are listed in the report screen, with a one-click search for the posts that use them.
Product image gallery
When a product has several photos, the card image can be swiped through — good for showing angles or included accessories. It is off by default and is meant to be switched on only where you want it.
Requirements
Convenient, but with a list of conditions worth reading first.
| Item | Support |
|---|---|
| Amazon | Yes — extra images are fetched |
| Rakuten Ichiba | Yes — extra images are fetched (lower resolution than Amazon's) |
| Yahoo! Shopping | No. The API does not return multiple images, so galleries are unavailable for Yahoo! items |
| Templates | Standard, Large Card and Modern only (Compact, Text Link and Comparison Buttons show no image) |
| Number of images | Main image + up to 4 |
Two levels of opt-in
So post content doesn't bloat, you choose which products get a gallery.
- Turn on Product image gallery under Display & Design (the site-wide default; off initially).
- Tick Include extra photos in the insert preview — it only appears for products that actually have extra images. Only ticked products get their extra image URLs saved into the post.
As with prices, each card can override the site setting with Follow site setting / Always show / Always hide. Try the gallery on one product while the site setting stays off, or exclude a single product while it is on.
What it doesn't do
- No lightbox. Tapping an image follows the link to the product page.
- No thumbnail strip and no autoplay slideshow.
- Images cannot have individual link targets — they all go to the same product page.
- Depending on what the Amazon API returns, extra images sometimes cannot be fetched. The card then shows the single main image as before.
- The arrows are drawn by JavaScript. Without JavaScript there are no arrows, but swiping and keyboard navigation still work.
Template gallery
Six templates, so you can match the place in the article. Everything below is rendered with the plugin's own CSS (product names and prices are samples). All six support dark mode, following the reader's device setting by default.
Standard
Image left, information right. The default choice for a product mentioned mid-article.
Large Card
Vertical, with a big image. For the one product an article is really about.
Modern
Rounder corners, more breathing room. Switches between vertical and horizontal layouts based on card width, and each store's button colour is set independently.
Compact
Title, price and buttons in one band. For when you don't want to interrupt the prose.
Text Link
Pick one store to link to, and edit the displayed wording in the insert preview.
Comparison Buttons
Store buttons only — designed to sit inside a comparison table cell without breaking the layout. Choose filled or outlined, and horizontal or stacked.
Classic and Block editors
Pukulink supports both editors, with the Classic Editor as a stated strength. Neither is dropped. Both save the same [pukulink ...] shortcode, so switching editors later leaves your posts intact.
Classic Editor
- An Add Pukulink button with the Pukuo icon appears in the media button row above the editor.
- In the Visual tab, the shortcode renders as a product card placeholder rather than raw text (you can switch it back to plain shortcodes in the settings). The placeholder also shows which template will be used.
- It works in both Visual and Text modes, on desktop and on a phone.
Block Editor
- Add the Pukulink block from the inserter, or type
/pukulink(searching for “product link” finds it too). - The same search modal also opens from the Pukuo icon in the toolbar of any selected block.
- Inserted cards become a Pukulink Card block and render as the real card in the editor. Edit card in the toolbar reopens the picker.
AI markers (Classic Editor, Visual tab)
Leave [pukulink_draft keyword="product name"] in an AI-written draft and the Classic Editor's Visual tab highlights it. Press the pencil button, pick from the search results, and the marker becomes a product card. Markers left in a published post are invisible to readers. Example prompts to give your AI are on the plugin's Help tab.
When a post has several markers, confirming one moves you straight to the next. Progress is shown as “AI markers: 2 of 5”, and Skip this marker passes over anything you don't want to handle now (skipped markers stay in the body for later). You choose and confirm each product yourself; nothing is inserted in bulk.
Favourite stores and sale labels
Favourite-store search
For when you want to feature products from one particular Rakuten Ichiba or Yahoo! Shopping seller. On the Favourite stores tab, paste the store URL (or store code) and press Verify and save — the store name is confirmed against the official API before anything is stored.
- Rakuten Ichiba:
https://www.rakuten.co.jp/scope/or justscope - Yahoo! Shopping:
https://store.shopping.yahoo.co.jp/STORE-ID/or the store ID
Once saved, the search screen gains a Search in selector for switching between all stores and each favourite.
Sale labels
Rakuten's “days with 5 and 0” and Yahoo!'s “days with 5” label themselves automatically on the relevant dates. Fixed-period events such as Rakuten Super SALE or an Amazon time sale are registered by hand with a date range, and never show outside it.
[Rakuten] Days with 5 and 0: bonus points! [Yahoo!] Days with 5: bonus points!
Click tracking and reports
Button clicks are recorded per marketplace. The Report tab shows this month and last month as post × store × clicks (top 50 rows per month). For long-term trends, enable event sending to Google Analytics (gtag) and follow it there.
What gets recorded is only “which post, which store's button, and when”. Nothing that identifies a person is stored. See the privacy page for details.
Product health
A product whose price can no longer be fetched may have been discontinued. The report screen lists them and lets you search, in one click, for the posts that use them — so old links can be found and fixed.
Customisation and operations
Button appearance
Background colour, text colour, label wording and corner radius are all set in the admin, and changes apply across every saved post at once. Filled buttons default to white text for all stores, and the normal templates and the Modern template can be tuned separately.
Marketplace order
Set the display order of Amazon, Rakuten Ichiba and Yahoo! Shopping. It applies to both the button order and the price order in every template — handy for putting your best-converting store first.
Card colour scheme (dark mode)
The default is “follow the device or browser setting”. Choose “always dark” only if your site is permanently dark-themed.
Product image gallery
Switched on and off under Display & Design (off by default). Even when on, only products where you ticked “Include extra photos” in the insert preview are affected. See Product image gallery.
Structured data (JSON-LD)
Cards can output schema.org JSON-LD (off by default): product name, image, and one offer per store with price, currency and the bare product URL. Affiliate links are not included, and marketplace review scores are deliberately not emitted as aggregateRating.
Output covers Standard, Compact, Large Card and Modern. Text Link and Comparison Buttons produce none.
Moshimo Affiliate
Besides Amazon, Rakuten Ichiba and Yahoo! Shopping links can be routed through Moshimo Affiliate. Paste a Moshimo “Easy Link” code, press Import IDs from the code, and the per-store a_id / p_id / pc_id / pl_id fields fill themselves in (the pasted code itself is not saved).
Connection tests and export
Each API can be tested from the settings screen, and errors are worded to tell you what to fix. If Rakuten Ichiba or Yahoo! Shopping is enabled without an affiliate ID, you get a warning — the buttons would still appear, but they would link to the plain store URL and earn nothing, which is easy to miss. Settings, the product registry, insertion history, click totals and price history export to JSON (secrets such as Client Secrets are excluded).
What it can and can't do
Three marketplaces are supported, but each API exposes different information, so the features differ too. Here it is up front, rather than as a surprise later.
By marketplace
| Capability | Amazon | Rakuten | Yahoo! |
|---|---|---|---|
| Product search | Yes (eligibility required) | Yes | Yes |
| Automatic price updates | Yes | Yes | Only items with a JAN code |
| Star rating & review count | No | Yes | Yes |
| Link to the reviews page | Yes | No | No |
| Product image gallery | Yes | Yes | No |
| Favourite-store search | No — Amazon has no store concept | Yes | Yes |
| Automatic sale labels | No — manual only | Yes (days with 5 and 0) | Yes (days with 5) |
| Via Moshimo Affiliate | Yes | Yes | Yes |
Amazon has no star rating because the Creators API does not return review scores. Instead you get a “Read reviews” link to Amazon's review page. Rakuten and Yahoo! are the reverse: star ratings, but no review-page link.
Ratings and review links come from the main item — the store you searched first. So a card whose main item is on Amazon shows only the review link, and a card based on Rakuten or Yahoo! shows only the star rating. (Linking Amazon as a secondary store does not add the review link.) If you want stars, start the search in Rakuten or Yahoo!.
Yahoo! Shopping is the most constrained of the three: items without a JAN code keep showing the price captured at insertion (common for handmade goods and bundles), and galleries are unavailable.
By template
| Standard | Large | Modern | Compact | Text | Buttons | |
|---|---|---|---|---|---|---|
| Product image | Yes | Yes | Yes | No | No | No |
| Image gallery | Yes | Yes | Yes | No | No | No |
| Rating / reviews | Yes | Yes | Yes | No | No | No |
| Price | Yes | Yes | Yes | Yes | No | No |
| Sale label | Yes | Yes | Yes | No | No | No |
| Structured data | Yes | Yes | Yes | Yes | No | No |
| Pukulink credit | Yes | Yes | Yes | No | No | No |
Differences between the editors
Searching, inserting and editing products work the same in both editors. Only two things differ.
- AI markers are Classic Editor (Visual tab) only. The Block Editor has no marker highlighting or pencil-button confirmation for
[pukulink_draft](nor does the Text tab). - The “card display in the editor” toggle is Classic Editor only. The Block Editor always renders the card.
Deliberately left out
Some things are absent on purpose. Here they are, with the reasoning.
| Not included | Why |
|---|---|
| Automatic cross-store matching (binding product codes mechanically) | It confuses model variants, capacities, bundles and resold listings. This is not “doing nothing”, though: unlinked stores automatically get a keyword search link (see the note below). |
| AI auto-confirming products | Same reason. AI markers automate moving to the next candidate; selection and confirmation stay with you. |
| A central product library | Pre-registration is friction for people who cover a different product each time. The design embeds data in the post instead. |
| Revenue (conversion) tracking | The affiliate networks do not open conversion data to individual developers. Click tracking is the honest limit. |
| Importing the exported JSON | Export only. Restoring is assumed to be a manual job. |
| Automatic migration from other plugins | To avoid mismatched product codes. If you switch, search and insert again. |
| Marketplace review scores in structured data | So another site's ratings are not mistaken for your own. |
If you insert a product found on Amazon and never link Rakuten, the Rakuten button still works. It opens Rakuten Ichiba's search results for your keyword. That part is automatic.
What the plugin will not do is decide that a particular Rakuten item is the same product as that Amazon item. Because product codes are never bound behind your back, a reader is never dropped onto the wrong product page. Either you decide (by linking) or the reader does (by choosing from the results).
Operational things worth knowing
- Click tracking is approximate. Repeat clicks from the same connection, post and store count once per minute; only published posts are tracked; JavaScript is required. Read it as a trend.
- Reports cover this month and last month, top 50 rows each. Use Google Analytics for longer horizons.
- Price history is recorded but has no screen yet. It is data collection for a future price-trend chart.
- The product health report shows up to 20 items per section.
- Insertion history keeps the latest 50 items. Older products need a fresh search.
- One linked item per marketplace, per card.
See something you'd use?
Pukulink v2.6.5 is free, and one marketplace is enough to get value out of it.