IdukkiIdukki
Install guides

WooCommerce

Install Idukki on WooCommerce

A WordPress plugin for galleries (block, shortcode, product pages), the cookie-consent gate and the one thing Idukki cannot do from outside your store: saving the gallery visitor id on each order. Catalogue and orders run on Idukki’s side. Early access.

Status

PartWhere it happens
GalleriesThe Idukki widget. The plugin adds the block, the shortcode, the product page gallery and the consent gate.
CatalogueIdukki will pull products with a read-only WooCommerce REST key you save in Idukki; that sync is being finished, so for now the catalogue comes in by CSV or feed (Products, Import). The plugin does not push products.
OrdersWooCommerce’s own webhooks to https://api.idukki.io/webhooks/woocommerce/orders. The plugin can create them for you.
Proven attributionThe plugin stamps _idk_vid on each order at checkout; Idukki reads it from the webhook.
Add to cart in the galleryThe widget adds tagged products to the cart through WooCommerce’s Store API. Variable products open the product page to pick options. Not yet checked on a live store.

Requirements

  • WordPress 6.0 or later, WooCommerce 6.0 or later, PHP 7.4 or later.
  • HPOS (custom order tables) and the Cart and Checkout blocks are supported.
  • Your Business ID (data-bguid) and a default gallery ID (data-guid) from the Idukki embed code.

Install

We share the plugin zip with early-access stores. Upload it in Plugins, Add New, Upload Plugin (or copy it to wp-content/plugins/idukki-woocommerce/), activate Idukki for WooCommerce, and open WooCommerce, Settings, Idukki.

Connect

WooCommerce connects in three independent pieces. Do all three for the full set.

  • Storefront. In WooCommerce, Settings, Idukki, paste the Business ID and a default gallery ID.
  • Orders. Open Order webhook and click Create the order webhook for me. The plugin creates two webhooks (Order created, Order updated) signed with one generated secret, shown once. Add a WooCommerce REST key with Read permission (Settings, Advanced, REST API), then in the Idukki dashboard’s WooCommerce tab enter the store URL shown on screen, the consumer key and the webhook secret.
  • Catalogue. Import the catalogue in Idukki under Products, Import (a WooCommerce product export or a feed URL). Catalogue sync from the read-only key is being finished; once it reaches your account, you save the same key as catalogue credentials in the WooCommerce tab and run a sync instead.

Optional: a store connection key. In the Idukki dashboard open Settings, then the WooCommerce tab under Integrations, and create a key in the Store connection card. Early-access accounts have the tab switched on for them. On WooCommerce the key is used only by the plugin’s Test connection button; nothing else needs it. It is stored in wp_options and shown back only as a masked prefix.

Place galleries

WhereHow
Block editorAdd the Idukki gallery block to posts, pages or block-theme templates. Gallery ID (empty uses the default) and product filter (current product, none, or a product id).
Shortcode[idukki_gallery], [idukki_gallery guid="..."], [idukki_gallery product="none"], [idukki_gallery product="123"]
Product pagesTick Product pages to add a gallery below the product summary on classic templates. On block themes, add the block to the Single Product template.
What every gallery rendershtml
<div data-ugc="idukki" data-bguid="..." data-guid="..." data-platform="woocommerce" filter-pid="<product id>"></div>

The loader is enqueued once, async, only on pages that render a gallery.

With Cookie consent ticked, the loader is never printed by the server. A small script loads it in the browser when the WP Consent API reports statistics consent, now or later. Sites with their own banner can call window.idukkiConsentGranted() instead. Order stamping also waits for statistics consent in this mode.

What data is sent

SenderData
The pluginOnly the connection check (the key, to /webhooks/partner/ping). It adds the visitor id and Business ID to each order as hidden meta.
WooCommerce webhooksThe full REST v3 order, if you create them.
Idukki catalogue syncOnce it is live for your account, reads products with the read-only key you saved in Idukki.
The widget, in the browserSets the idk-vid visitor cookie and sends gallery analytics. Suggested privacy-policy text is added under Settings, Privacy.

How orders are matched to widget activity

At checkout (classic and block checkout) the plugin reads the widget’s visitor id cookie (idk-vid, then idk_vid) and saves it on the order as _idk_vid, with the Business ID as _idk_biz. An order already stamped is never overwritten, and errors are logged rather than blocking checkout. Idukki reads both from the order webhook alongside the customer id and a salted ip and user-agent fingerprint, which is always marked estimated.

Idukki matches each order to widget activity through the visitor id first, then the customer id and the cart id. An order counts as proven only when the same visitor added a product they bought to the cart from the widget beforehand. Orders that only followed a widget view or click land in the influence tiers, and the rest are store orders. The dashboard keeps proven, influenced and store orders in separate columns and never adds them together.

Troubleshooting

SymptomCheck
No galleryBusiness ID and gallery ID (staff see a dashed note where a gallery would be when one is missing), the Cookie consent setting, and blocked idukki-cdn.com requests in the console.
Orders not in IdukkiSettings, Advanced, Webhooks: the Idukki webhooks Active with no failed deliveries. Idukki answers store not registered until the store URL, key and secret are saved; a 401 means the secrets differ.
Orders never provenCheck the order for _idk_vid. It is set only when the shopper’s browser had the visitor cookie and, with Cookie consent on, statistics consent.
Test connection not availableThe store connection release has not reached that API yet. Nothing else depends on it.

Uninstall

Deleting the plugin removes its options, the legacy cron event and the webhooks it created. _idk_vid and _idk_biz stay on past orders as part of those orders. Disconnect the store in the Idukki dashboard separately and revoke any connection key.

Checked against: idukkidev/idukki-woocommerce-plugin/README.md, idukki-serverless-api/src/functions/woocommerce/README.md, idukki-ext/src/cart/adapters/woocommerce.ts. Something here that the product does not do? Tell us and it gets fixed in the doc or the code.

We use cookies

We use essential cookies to run this site and optional analytics cookies to understand how it’s used. You can change your choice anytime in our privacy policy.