Connect a WooCommerce store with the Senderz Marketing plugin in one approval, then sync customers, orders, products, checkout consent and on-site activity.
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.
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.
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.
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.
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.
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.
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.
Enter API keys manually
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.
Manual plugin setup for an unreachable site
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.
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.
Setting
Where you change it
Checkout marketing consent boxes, their wording, and the list each one joins
Senderz, Marketing consent card
Cart and checkout activity tracking
Senderz, Site activity card
Back-in-stock requests and their labels
Senderz, Site activity card
Registered-user sync and the registration opt-in
Senderz, Site activity card
The list every synced customer joins
Senderz, Customer sync list card
Which forms are captured and which field is the email, phone or name
WordPress, Senderz Marketing → Forms
Site address override, for example www versus non-www
WordPress, Senderz Marketing → Advanced
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.
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.
WooCommerce order status decides which event Senderz records.
WooCommerce status
Senderz event
pending, on-hold, failed
Checkout started
processing
Order placed
completed
Order fulfilled
cancelled
Order cancelled
refunded
Order refunded
checkout-draft, draft, trash
Nothing is recorded
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:
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.
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.
Two things record shopper behaviour, and they behave differently. It is worth knowing which is which when you are checking whether something works.
Storefront runtime
Cart and checkout activity
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.
Off until you turn it on in the Site activity card. Your site sends add to cart, remove
from cart and quantity changes to Senderz directly, along with the shopper’s email address,
which makes it the reliable path for a known shopper.It only fires for a shopper who has signed in or typed an email address at the checkout.
Nothing is sent for anyone else. The address is held in your site’s own WooCommerce session,
never in a cookie a third-party script could read.
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.
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.
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.
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.
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.
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.
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.
A popup or feature you just set up does not work, and only on WordPress
A caching or optimisation plugin has cached its own copy of the Senderz runtime and is serving a frozen version. The giveaway is that cart and checkout pages behave correctly while product and category pages do not, because most optimisers exclude cart and checkout by default. Purge the optimiser’s cache once. Current plugin versions mark the runtime as do-not-optimise, so this only affects a site that cached it before upgrading.
Nothing appears on the site at all
Confirm the plugin’s Connection tab reads Connected and that you have a published popup whose targeting matches the page. If you connected Senderz with a different address, for example www versus non-www, set the right one under Senderz Marketing → Advanced → Site address.
Couldn’t reach the WooCommerce REST API, or a 404
Enable pretty permalinks, save the permalinks page once, and confirm the WooCommerce REST API is not blocked by a security plugin, firewall or maintenance mode.
The store URL is rejected
Enter the full public HTTPS address where WordPress is installed. Remove admin paths such as /wp-admin and any query string. Private, local network and loopback addresses are refused on purpose. Use manual setup for a staging or local site.
Website features connected, store data not
Open any WordPress admin page so the plugin can retry creating its REST key. If it still does not connect, use the WooCommerce approval screen or enter API keys manually.
Store data connected, website features not
Install and activate Senderz Marketing, then press Connect to Senderz on its Connection tab and approve the same workspace. Connecting one half never replaces the other.
A security plugin blocks the connection
Allow WooCommerce REST requests and the WooCommerce authorisation endpoint. Turn off maintenance mode and HTTP basic authentication while you connect.
WooCommerce rejects the API keys
Confirm the consumer key starts with ck_, the secret starts with cs_, the key is active, and permissions are Read/Write. Re-copy them with no stray spaces.
The approval window is blocked or closes early
Allow popups for Senderz, start again, sign in to WordPress first, and keep the window open until it returns you to Senderz.
A form is missing from the Forms tab
Submit it once. Some form plugins do not expose their fields until there has been a submission.
The checkout consent box does not appear
Confirm the channel is switched on in the Marketing consent card, and that your theme uses the classic checkout shortcode. The WooCommerce block checkout is not supported yet.
No cart activity appears
Turn on Cart and checkout activity, then identify the shopper by signing in or entering an email at checkout, because that setting only reports a known shopper. Remember the first cart reading of a page load is a baseline, so add or remove something after the page has settled.
Existing customers are missing
Press Sync now, or Re-import on the Historical data card. Confirm the REST key owner can manage WooCommerce, so Senderz can read the WooCommerce Analytics customer list that includes guests.
A setting changed in Senderz has not reached the site
Open any WordPress admin page. Settings refresh about every five minutes there, and hourly otherwise.
Duplicate messages go out
Disable the equivalent campaign in the previous email, popup or review plugin before recreating that journey in Senderz.