=== Keita Product Cards ===
Contributors: ikeita
Tags: affiliate, amazon, rakuten, yahoo, product-link
Requires at least: 6.4
Tested up to: 7.0
Requires PHP: 8.1
Stable tag: 1.0.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Create beautiful product link cards from Amazon, Rakuten, and Yahoo! Shopping. Intuitive affiliate plugin for any theme, by StoreLab.

== Description ==

StoreLab is a WordPress plugin that displays product links from Amazon, Rakuten Ichiba, and Yahoo! Shopping as beautiful store cards.

**🎁 Powerful features in the free version**

* Product search — Amazon, Rakuten, Yahoo!, and Mercari
* Standard card template
* Works with both Block Editor and shortcodes
* Unlimited custom buttons
* JSON-LD structured data output
* Automatic product data refresh (weekly)
* Clean design that works with any theme
* Setup wizard for first-time users


**📐 Templates**

1. **Standard** — Classic horizontal card (Free)

**🔄 Easy migration**

Migration tools from Pochipp and Rinker are planned. Convert existing data with one click.

== Privacy Policy ==

For details on how this plugin handles data, please see our Privacy Policy: [storelab.jp/privacy-policy](https://storelab.jp/privacy-policy/)

== External services ==

This plugin communicates with the following external services. Please review each service's terms and privacy policy.

= Amazon Creators API =
Used to search and retrieve Amazon product information. Communication occurs when you search for products in the admin screen and, when automatic price updates are enabled, periodically in the background to refresh the prices of products you have added. The plugin sends your search keyword (or the saved ASIN), your Amazon Creators API credentials (used to obtain an access token), and your Associates tracking ID (partner tag). No data is sent from your public site.
Endpoints: creatorsapi.amazon (product search API), creatorsapi.auth.us-west-2.amazoncognito.com (Cognito OAuth), api.amazon.co.jp (LwA OAuth).
* Website: [Amazon Associates](https://affiliate.amazon.co.jp/assoc_credentials/home)
* Terms: [Amazon Associates Program Operating Agreement](https://affiliate.amazon.co.jp/help/operating/agreement)
* Privacy Policy: [Amazon.co.jp Privacy Notice](https://www.amazon.co.jp/gp/help/customer/display.html?nodeId=GX7NJQ4ZB8MHFRNJ)

= Rakuten Ichiba Product Search API =
Used to search Rakuten Ichiba products and refresh their prices. When you search for products in the admin screen — and, when automatic price updates are enabled, periodically in the background to refresh the prices of products you have added — the plugin sends your search keyword (or the saved item code), your Rakuten application ID and access key, and (if configured) your Rakuten affiliate ID to the Rakuten Web Service. Your site URL is also sent as the Origin header, as required by the Rakuten Web Service for application verification. No data is sent from your public site.
Endpoint: openapi.rakuten.co.jp/ichibams/api/IchibaItem/Search/20220601
* Website: [Rakuten Web Service](https://webservice.rakuten.co.jp/)
* Terms: [Rakuten Web Service Terms of Use](https://webservice.rakuten.co.jp/guide/rule)
* Privacy Policy: [Rakuten Privacy Policy](https://privacy.rakuten.co.jp/)

= Yahoo! Shopping Product Search API =
Used to search Yahoo! Shopping products and refresh their prices. When you search for products in the admin screen — and, when automatic price updates are enabled, periodically in the background to refresh the prices of products you have added — the plugin sends your search keyword and your Yahoo! application (Client) ID to the Yahoo! Shopping API. No data is sent from your public site.
Endpoint: shopping.yahooapis.jp/ShoppingWebService/V3/itemSearch
* Website: [Yahoo! Shopping Product Search API](https://developer.yahoo.co.jp/webapi/shopping/item/)
* Terms: [LY Corporation (Yahoo! JAPAN) Terms of Service](https://www.lycorp.co.jp/ja/company/terms/)
* Privacy Policy: [LY Corporation (Yahoo! JAPAN) Privacy Policy](https://privacy.lycorp.co.jp/ja/)

= Product images from store CDNs =
Product cards can display product images directly from the image servers of the store the product was imported from (e.g. m.media-amazon.com, thumbnail.image.rakuten.co.jp, *.yimg.jp). When a visitor views a page containing such a card, their browser requests the image from that store's server, which receives the visitor's IP address and user agent as with any standard image request. No other data is sent. You can avoid this by setting a featured image or a custom image for the product. These requests are covered by the store terms and privacy policies linked above.


= ValueCommerce LinkSwitch =
Used to convert Yahoo! Shopping links into affiliate links. This loads only when you configure a ValueCommerce affiliate ID (vc_pid); in that case the plugin loads the LinkSwitch script (vcdal.js) from aml.valuecommerce.com on your public site (and in the admin preview) so that ValueCommerce can rewrite the links. Link/click information on those pages is then processed by ValueCommerce according to their script.
Endpoint: aml.valuecommerce.com/vcdal.js
* Website: [ValueCommerce](https://www.valuecommerce.ne.jp/)
* Terms: [ValueCommerce Affiliate Terms of Use](https://www.valuecommerce.ne.jp/st_affiliate/terms.html)
* Privacy Policy: [ValueCommerce Privacy Policy](https://www.valuecommerce.co.jp/privacy_policy/)




== Installation ==

1. Install and activate the plugin
2. Register API keys from the admin menu: StoreLab → Settings
3. Create a store card from "Add New"
4. Insert the shortcode `[storelab id="123"]` in a post, or use the block editor

== Frequently Asked Questions ==

= Do I need an Amazon API? =
Product search requires either the Amazon Creators API or the Rakuten API. The Rakuten API is free and has no rate limit.

= Can I migrate from Pochipp or Rinker? =
Migration tools are planned. Shortcode auto-conversion will allow you to continue using existing posts as-is.

= Does it work with any theme? =
Yes, the plugin is theme-agnostic. It has been tested with SWELL, Cocoon, AFFINGER, JIN, Lightning, and other major themes.

= Search Console shows warnings for "Product snippets" / "Merchant listings". Is something broken? =
No. StoreLab outputs JSON-LD structured data (schema.org Product) for cards whose price has been fetched from a store API. Google always lists optional properties it would *like* to see (review, aggregateRating, availability, shippingDetails, hasMerchantReturnPolicy, description) as non-critical warnings — they do not remove your pages from search and are expected for affiliate sites, which cannot truthfully provide merchant-only data such as return policies. Cards without a fetched price output no structured data at all, so they never produce errors. You can add extra properties yourself via the `storelab_jsonld_schema` filter, or turn the output off in Settings → Design → Structured data. Note: prices are baked into cached pages, so freshness also depends on your page-cache TTL, and articles that contain multiple product cards are not eligible for product rich results (a Google limitation for multi-product pages).

= Does structured data conflict with SEO plugins like Yoast or Rank Math? =
It can, if both output Product markup for the same page. StoreLab shows a notice on the settings screen when a known SEO plugin is active. Use Google's Rich Results Test to check whether Product is detected twice, and turn off either side's Product markup if so.

= Which stores and currency are supported? =
StoreLab is built for the three major Japanese stores (Amazon.co.jp, Rakuten Ichiba, Yahoo! Shopping) plus Mercari/custom link buttons. All prices — including structured data — are in JPY.



== Screenshots ==

1. Store card display example (Standard template)
2. Admin screen — product editor
3. Settings screen — API key registration
4. Template selection

== Changelog ==

= 1.0.1 =
* Maintenance release: code cleanup and refinements for the WordPress.org release.

= 1.0.0 =
* Initial release
* Product search — Amazon, Rakuten, Yahoo!, Mercari
* Block Editor and shortcode support
* Unlimited custom buttons
* JSON-LD structured data output
* Automatic product data refresh

== Upgrade Notice ==

= 1.0.1 =
Maintenance release with code cleanup and refinements.

= 1.0.0 =
Initial release.
