Skip to main content
WooCommerce runs on WordPress, and Senderz connects it with a single plugin called Senderz Marketing. Installing that plugin and approving it once wires up both halves of the connection: the store API that syncs your customers, orders and products, and the on-site features that show popups, capture forms, collect checkout consent and track shopper activity.
Running WordPress without a shop? The same plugin covers you, and the setup is shorter. See WordPress. This page is for sites where WooCommerce is active.

What is live today

Fully working. The guided connect, WooCommerce REST key provisioning, customer sync including guest buyers, two years of order history, live order and customer webhooks, product catalog sync, checkout marketing consent for email and SMS, on-site popups, web push, product and cart tracking, back-in-stock requests, registered-user sync, and form capture from seven popular form plugins.Partial. The WhatsApp checkout box renders and records the tick, but only reaches the contact’s WhatsApp subscription through the daily customer sync, and only for a shopper who has an account on the site. See Checkout marketing consent.Known limits. The checkout consent boxes appear on the classic checkout shortcode only. The WooCommerce block checkout is not supported yet. Per-variation SKUs are not imported, so a variable product syncs at the product level. The Cart and checkout activity setting only reports a shopper who has signed in or typed an email address at the checkout.

The plugin

Nothing leaves your site before you connect it. On a fresh install the plugin makes no outbound request of any kind: no storefront script, no tracking beacon, no version ping. Every outbound behaviour is gated on the connection you approve.
If you were running the older Senderz for WooCommerce plugin, install this one over it. Your existing settings carry across and the old plugin is deactivated automatically. Then press Connect to Senderz so the site is linked to your workspace directly.

Before you start

  • A WordPress administrator account that can install plugins and manage WooCommerce.
  • A Senderz account where you are the owner or an admin of the workspace. Viewers, editors and designers cannot connect a store.
  • A public HTTPS site address, for example https://shop.example.com. Senderz refuses private, loopback and local network addresses during the guided connect. A staging or LAN site must use manual setup instead.
  • Pretty permalinks under Settings → Permalinks. Do not use the Plain option, or the WooCommerce REST API will not answer.
  • The WooCommerce REST API reachable and not blocked by a firewall, maintenance mode, security plugin or HTTP basic authentication.

Connect your store

1

Install Senderz Marketing

In WordPress go to Plugins, then Add New, search for Senderz Marketing, and install and activate it. WordPress opens the Senderz screen straight after activation.
2

Open the Senderz screen

With WooCommerce active the plugin lives under Marketing → Senderz Marketing. On a site with no WooCommerce it is its own top-level Senderz Marketing menu item. The old Settings → Senderz link still works if you have it bookmarked.
3

Press Connect to Senderz

You are taken to Senderz to approve the request. Sign in if you are not already.
4

Approve the workspace

The approval screen names your site and the workspace it will join, and lists what the site is allowed to do. Check the workspace is the right one, then press Connect site. If it is wrong, switch workspace first and start again.
5

Both halves connect

You land back in WordPress showing Connected. Because the plugin is running as a logged-in administrator, it creates its own WooCommerce REST key at this point and hands it to Senderz, so you never generate or paste a key. The key appears in WooCommerce → Settings → Advanced → REST API with the description Senderz.
Back in Senderz, open Integrations from the left sidebar. You will see one tile called WooCommerce & WordPress with two rows on it, Store data and Website features. Both should read connected. Open the tile to reach the detail page, which shows the same two rows under Complete your WooCommerce setup.
The tile deliberately covers both halves, because they are one site. The badge follows the worse of the two, so a tile reading Setup incomplete or Needs attention means one half needs work even though the other is fine.

If only one half connects

Both rows on the detail page have their own action, and using one never disturbs the other.
  • Website features disconnected. Install and activate Senderz Marketing, then press Connect to Senderz on its Connection tab.
  • Store data disconnected. The plugin retries the key creation on the next WordPress admin page load, so open any admin page first. If it still does not connect, use one of the alternative routes below.

Alternative connect routes

On the detail page press Connect store data, enter your public store URL and choose Connect with WooCommerce. Your store shows WooCommerce’s own access screen, you approve it, and WooCommerce returns the keys to Senderz directly. Nothing is copied by hand. This route needs HTTPS and pretty permalinks, and it opens a browser popup, so allow popups for Senderz before you start.
In WooCommerce → Settings → Advanced → REST API, choose Add key. Give it a description such as Senderz, pick an administrator as the user, set permissions to Read/Write, and generate it. Copy the ck_ consumer key and cs_ consumer secret into Senderz using Enter API keys manually in the connect dialog. WooCommerce shows the full secret only once.
A staging, local or firewalled site cannot complete the guided approval, because Senderz has to reach it back over public HTTPS. On the plugin’s Connection tab use Manual setup: paste your Workspace ID from Settings → Workspace in Senderz, and an API key created under Settings → API Tokens, then press Save and verify.
Never email a consumer secret or paste it into a support ticket. If one is exposed or lost, revoke that key in WooCommerce, create a new one, and reconnect Senderz.

Where each setting lives

This trips people up, so it is worth stating plainly. Almost everything is configured in Senderz, and the plugin’s WordPress screens mostly show you what is set. The plugin’s Store and Users tabs are read-only mirrors with a Manage in Senderz link. A change you make in Senderz reaches the site within about five minutes while someone is in the WordPress admin, and otherwise on the plugin’s hourly refresh.
Every optional feature starts switched off. Checkout email consent, checkout SMS consent, checkout WhatsApp consent, cart and checkout tracking, back-in-stock requests and registered-user sync are all off until you turn them on. Connecting the store does not silently start collecting anything.

What syncs

1

Customers, including guests

Existing customers import on connect. Senderz reads both WooCommerce’s own customer list and WooCommerce Analytics, then merges them, so guest buyers who never created an account are included. On an older or restricted store where Analytics is unavailable, Senderz falls back to registered customers only, and new guest buyers are picked up afterwards from live order activity.
2

Order history

Up to two years of order history back-fills, capped at 25,000 orders. Historical orders land with their real order dates, so lifetime value, repeat-purchase and dormancy windows are correct from day one. They deliberately do not trigger automations or fire outbound webhooks, so a two-year-old order can never set off an abandoned-cart email.
3

Live orders and customers

Senderz creates four WooCommerce webhooks on connect, for customer created, customer updated, order created and order updated. Reconnecting does not duplicate them, and Sync now checks they are still in place.
4

Product catalog

Products, prices, images, SKUs and categories import and refresh hourly, so product-aware campaigns, coupons and storefront features use current data. Per-variation SKUs are not imported yet, so a variable product syncs at the product level.
5

Ongoing re-sync

Connected stores re-sync customers automatically once a day. You can also force one at any time with Sync now on the tile, or Re-import on the Historical data card after a long disconnection.
The plugin also sends paid orders to Senderz over its own connection, separately from the WooCommerce webhooks. It watches for orders reaching processing and completed, queues them locally, and retries if the send fails. On first run it works back through up to two years and 25,000 paid orders. Both paths carry the same order identity, so an order that arrives twice is counted once. This is why order data can still flow on a store whose native webhooks were never created successfully.

Order status and what it means

WooCommerce order status decides which event Senderz records. An order that is created already in completed is recorded as an order placed, so stores that auto-complete every order still report revenue.
Mapping unpaid statuses to a started checkout is what makes abandonment recovery work with Israeli external payment pages such as Grow, Cardcom and PayPlus, where the shopper leaves your site to pay and the order sits unpaid until they come back.
Every checkout-started event carries the exact pay for this order link for that order, so an abandoned-checkout automation can drop the shopper straight back into paying. The plugin supplies the precise link, which matters if you use a custom or translated checkout page slug. Use {{recoveryUrl}} in the message. You can override the status mapping for your workspace if your store uses custom statuses. Contact support to set that up. The plugin can add up to three separate, unticked consent boxes to the classic checkout: email, SMS and WhatsApp. Turn each one on in Senderz under the Marketing consent card on the integration detail page. For each channel you can set:
toggle
default:"off"
Whether the box appears at checkout at all.
text
Your own wording. Leave it blank to use the translated Senderz default, for example “I agree to receive marketing emails and special offers.” The text sits beside the checkbox, not inside it.
Email and SMS can each file a consenting shopper into a specific Senderz list. Joining a list is not itself consent, so what you may send is still decided by the shopper’s own opt-in.
Every box is unticked by default, as Israeli law requires. A shopper who leaves it unticked is still recorded as a contact but is never sent marketing. Senderz will not let a checkout withdraw consent a shopper gave somewhere else, so an unticked box never unsubscribes anyone.
WhatsApp checkout consent is only partly wired, so read this before you rely on it. The box renders and the tick is recorded on the order, and on the shopper’s account if they have one. Email and SMS ticks reach the contact’s subscription state immediately with the order. A WhatsApp tick does not. It reaches Senderz on the next customer sync, which runs once a day, and only for a shopper with an account. A guest’s WhatsApp tick is stored on the order in WooCommerce but does not update the contact in Senderz today. Use email or SMS at checkout if you need consent captured reliably, and collect WhatsApp opt-in through a popup or the preference centre instead.
WooCommerce core has no standard marketing-consent field on a customer. On import Senderz looks for consent metadata written by Senderz itself, by Mailchimp for WooCommerce, and by other common opt-in plugins, per channel. Where there is no recognised positive signal, the customer imports not subscribed and sending still gates on consent. Imports only ever add consent, never remove it. If your store records consent under an unusual key, support can point Senderz at it for your workspace without a plugin change.

On-site features

Once the site is connected, the plugin loads the Senderz storefront runtime on your pages. It is enqueued through WordPress’s normal script API, and the plugin marks it as do-not-optimise for the common caching and minifying plugins.

Popups and forms

Every popup you publish appears without touching your theme again.

Web push

The plugin serves the service worker browser push needs, from your own domain.
Popups can apply a won discount straight to the shopper’s cart, because the plugin supplies the security token WooCommerce requires for that. See Installing popups on your store for the full install and test walkthrough.

Product and cart tracking

Two things record shopper behaviour, and they behave differently. It is worth knowing which is which when you are checking whether something works.
On as soon as the site is connected. In the browser it reads the product structured data your theme already publishes to record product viewed, watches cart requests to work out product added to cart and product removed from cart, and recognises your cart and checkout pages for cart viewed and checkout started.Activity from a visitor Senderz cannot yet name is held rather than recorded. The moment they identify themselves, usually by subscribing through a popup, the held activity is attached to their contact.
The first cart reading is a baseline, not activity. Anything already in the basket when the page loads was added on an earlier visit, so it is never reported as if it just happened. Only changes after that produce events.
Both feed the Added to cart and Checkout started automation triggers, and the product timeline on each contact.

Back-in-stock requests

Turn on Back in stock requests to show a request form on out-of-stock products. Simple products only. You can set the button label and the marketing opt-in label. The request carries its own unticked marketing opt-in. A shopper who leaves it unticked is still recorded against that product so you can see the demand, but Senderz only sends marketing to people who have opted in, so the back-in-stock message reaches those who ticked it. When the product comes back in stock the request reaches Senderz as a custom event named wordpress.back_in_stock. Use that exact name when building an automation from it.

Registered users

Turn on Sync registered users to send the people who have an account on your site to Senderz as contacts.
Accounts arrive subscribed to nothing. Creating an account is not marketing consent. Only a shopper who ticks the opt-in checkbox you can add to the registration form is ever subscribed, and that checkbox is unticked by default.
Turning sync on starts sending the accounts you already have, in the background. You can also press Sync existing users now on the plugin’s Users tab. Account deletions reach Senderz as a custom event named wordpress.user_deleted.

Capture your existing forms

The plugin turns submissions from the form plugin you already use into Senderz contacts. Supported: Contact Form 7, WPForms, Gravity Forms, Elementor Pro Forms, Fluent Forms, Formidable Forms and Ninja Forms.
1

Open Senderz Marketing, then Forms

Your forms are listed under the plugin they belong to.
2

Tick Capture submissions from this form

Nothing is sent from a form you have not switched on.
3

Map the fields

For each field choose Do not send, Email, Phone, First name, Last name or Marketing consent checkbox. Fields you do not map are never sent.
4

Choose the consent rule

Never subscribe. Capture the contact only is the default. You can instead say the whole form is a marketing opt-in, or that a specific consent checkbox has to be ticked.
If a form is not listed, submit it once. Some form plugins do not expose their fields until a submission exists.
Captured contacts show a consent source of WordPress form on their profile and can start the Created profile and Added to list automation triggers. See Embedded forms for the hosted alternative on non-WordPress pages.

Watch it working

The integration detail page has a Recent data panel that shows, for each event type, when it last arrived and how many arrived today. Counts reset at midnight in your workspace timezone. For WooCommerce it reports checkout started, order placed, ordered product, fulfilled order, refunded order and cancelled order. Use it as your first check whenever something feels wrong. An event type stuck on a dash has never arrived.

Verify the connection

1

Both halves connected

On Integrations, the WooCommerce & WordPress tile shows Store data and Website features both connected.
2

Customers arrived

Open Contacts and find a known WooCommerce customer. Check their consent state looks right and was not assumed.
3

Popups render

Open your storefront in a private browsing window and confirm a published popup appears.
4

Cart activity records

With Cart and checkout activity on, sign in or type an email at the checkout, then add an item. Open that person in Contacts and check the add to cart appears on their timeline. Reaching the checkout should also count a checkout started in Recent data.
5

An order lands

Place a test order and confirm it appears on the contact’s timeline and in Recent data.

Disconnecting

The two halves disconnect separately. Store data. Use Disconnect on the integration detail page. Senderz first removes the WooCommerce webhooks it created, then deletes the stored credential. If webhook removal fails, the only consequence is a few orphaned webhooks in WooCommerce that no longer do anything, and you can delete them by hand. Website features. Press Disconnect on the plugin’s Connection tab, or deactivate the plugin. The plugin stops loading the storefront runtime and stops sending anything. To stop all WooCommerce activity, do both.
Disconnecting does not delete contacts or the store history already in your workspace. Your event mappings are set aside rather than deleted, so reconnecting restores your own choices instead of reverting to defaults.

Troubleshooting

Publish a popup

Build a capture form or game and let the connected plugin serve it.

Build an abandoned-cart flow

Trigger recovery messages from identified cart and checkout activity.

Review consent

Keep checkout, form and imported-customer subscription states compliant.

Create store coupons

Have Senderz create real WooCommerce discount codes for campaigns and rewards.