Payment providers
Connect WooCommerce
Set up WooCommerce tracking, pass the click ID and verify a credited purchase.
This guide connects your customer checkout to Slice. It is separate from the payment method you add in Billing and the bank details publishers add in Payouts.
This provider connection is in beta. Complete a purchase and refund test before relying on it for a live program.
1. Before you start
- Create your business, product and campaign in Slice. An owner or admin can change payment integrations.
- Open Payment providers, select the correct product and choose Test mode first. Each product and mode has its own connection.
- A WordPress/WooCommerce store using classic checkout, and permission to install a plugin and edit the site's script setup.
- For testing, use a staging store with a test payment method. The current Slice helper does not cover Checkout Blocks or headless checkout; those need a separate order-metadata integration.
Choose one reporting path for each sale: a provider webhook connection or your own Conversions API integration. If your site already reports purchases to Slice, review it before enabling a second path; different order identifiers can produce duplicate sales.
2. Connect the provider
In Slice, open WooCommerce and click Connect to prepare this product's webhook URL. Keep the panel open while you configure the provider.
- Download /downloads/slice-for-woocommerce.zip. In WordPress, open Plugins, Add New, Upload Plugin; upload the ZIP and activate it. The helper supports classic checkout. Add slice.js to your site too.
- In WordPress, open WooCommerce, then Settings, then Advanced, then Webhooks, then Add webhook.
- Set the status to Active, the topic to Order updated, paste the URL from Slice as the delivery URL, and choose a secret (6 or more letters and numbers). Add a second webhook for Order created.
- Paste the same secret in Slice.
Select these events. If the provider has friendly event labels, use the matching labels shown in the instructions above:
order.created
order.updatedReturn to Slice, paste the woocommerce webhook secret and click Connect WooCommerce. Saving the secret does not prove checkout attribution works yet.
3. Pass the publisher's click ID
On your website, load slice.js on every landing page. It stores the visitor's sclid in the slice_click_id cookie. Your backend can read that cookie when creating checkout; in the browser, window.Slice.clickId() returns the same value after the script loads.
<script src="https://takeslice.com/slice.js" async></script>Saved with each order by the Slice for WooCommerce plugin. Nothing to code. Keep the existing checkout configuration in the example below and add the attribution field; the snippets show the integration point, not a complete checkout. Only send an ID matching clk_ followed by 32 hexadecimal characters. Omit it if no valid click is available.
1. Add the slice.js script tag to your site.
2. Download /downloads/slice-for-woocommerce.zip.
3. In WordPress: Plugins > Add New > Upload Plugin. Upload the ZIP and activate it.
4. Classic-checkout orders carry slice_click_id in their meta data.
Checkout Blocks and headless checkouts need their own integration.- Download the ZIP below, then use Plugins → Add New → Upload Plugin in WordPress. Upload the ZIP and activate Slice for WooCommerce; do not upload the raw PHP file through the plugin uploader.
- Add slice.js to the storefront too. The plugin copies its valid click-ID cookie into order metadata; it does not create a click by itself.
- Use the same chosen secret for both Order created and Order updated webhooks and in Slice. A WordPress password or REST API consumer key is not that secret.
- WooCommerce sends an unsigned reachability ping when a webhook is enabled. Slice acknowledges that ping without activating tracking or counting a purchase. Signed order deliveries are still required.
4. Test delivery and attribution
- After activation, follow a Slice test link to the staging store and complete a classic-checkout order.
- The order must be paid (processing or completed) and include slice_click_id in meta_data. An unpaid order or setup ping is not a credited sale.
- Check the attributed conversion in Slice, then refund the order and check the subsequent order.updated result.
Connected means credentials were saved. A received event means a delivery reached Slice. Only an attributed conversion proves the sale was credited to a publisher. Use a test link and matching sandbox purchase for the full check; test conversions create no money.
5. Switch to Live
Return to the same product's Payment providers page and choose Live. Create the production connection separately with the production account, endpoint and credentials. Do not reuse a test click for a live purchase. Confirm the production checkout carries attribution before sharing live publisher links.
Troubleshooting
- Plugin upload failed: use the ZIP, not the PHP source. Check the installed plugin is active.
- Delivery fails: confirm the full HTTPS URL from Slice, the chosen secret and Active status. WooCommerce delivery logs are under WooCommerce → Status → Logs.
- No attribution with Checkout Blocks: the current helper uses the classic checkout hook. Your developer must add slice_click_id to order metadata through the appropriate Store API integration.
- Order received but ignored: check its paid status, total and supported currency. A setup ping and an unpaid order are expected to create no conversion.
- No event in Slice: check the provider's delivery log, selected events and full HTTPS URL. Localhost cannot receive external webhooks without a public tunnel.
- No credited conversion: check the click ID, selected product, test/live mode, paid amount and currency. Slice currently supports EUR, USD and GBP.
- Disconnecting a webhook provider does not remove the endpoint from that provider's dashboard. Remove or disable it there too. Stripe endpoint removal is attempted automatically.
Official provider documentation
Provider instructions checked against the references below on 29 October 2026. Provider dashboards can change; the event names and attribution fields above describe what Slice currently handles.