Skip to content

WooCommerce

WooCommerce is the e-commerce plugin for WordPress. Pinlyx for WooCommerce connects a WooCommerce store to Pinlyx, so the people and the money in your shop reach the same inbox you use for WhatsApp, Telegram, Instagram and email.

Once connected, Pinlyx keeps three things in sync:

What WooCommerce hasWhat it becomes in Pinlyx
CustomersContacts, matched on the WooCommerce customer number, then email, then phone, so nobody is duplicated
OrdersIncome entries on the Finance dashboard, or notes on the buyer’s timeline on plans without Finance
Abandoned cartsA tagged contact and a timeline note with the recovery link, ready for a follow-up you control

The plugin can also print the Pinlyx live chat widget on your storefront, switched on from Pinlyx rather than in your theme. See Live chat on your store.

The plugin runs inside your store and calls Pinlyx; Pinlyx never calls your store. Every request it sends is signed with a secret issued when you connect, and Pinlyx never holds a WooCommerce API key or a password to your site. Two things follow from that:

  • It works for a store behind a firewall, on a staging server or on localhost, as long as the site itself can reach api.crmsolid.com.
  • Nothing is sent before you press Connect. A freshly installed plugin makes no outside request at all.
  1. In wp-admin, open Plugins → Add New, search for Pinlyx for WooCommerce, then install and activate it.

  2. Open WooCommerce → Pinlyx and press Connect.

  3. Your browser opens Pinlyx. Sign in, or create an account, and approve the connection for your store.

  4. You land back on the plugin’s page, connected. The plugin starts sending, beginning with your history.

Right after connecting, the plugin resends up to a year of customers and orders. That is safe to repeat: every write is keyed on the WooCommerce id, so a resend updates instead of duplicating.

Every customer becomes a CRM contact. Matching runs in this order:

  1. The WooCommerce customer number
  2. Email address, case-insensitive
  3. Phone number

Guests, who have no account on your store, are matched on their billing email address or phone number. A shopper who first appears through an order and later registers stays one contact. Fields you have edited in the CRM are never overwritten: the sync only fills in what is still empty.

Contacts the integration creates are tagged (woocommerce by default) and land on the board you choose, so a store’s customers stay filterable and a bad import stays reversible.

On plans with the Finance module, each order becomes an income entry keyed on the WooCommerce order id, which means:

  • Re-sending the same order updates the existing entry rather than adding a second one.
  • A refund or a cancellation corrects the original entry. A cancelled order that had already been paid counts as money given back, not as revenue.
  • A partial refund keeps the entry at the amount you actually kept. WooCommerce leaves the order’s status alone until the whole order is refunded, so a partial refund is read from the refunded total.

Those entries are grouped under a revenue source created for the store and named after it, so shop revenue stays separable from your other income on the Finance dashboard.

On plans without Finance, and whenever Add orders to Finance is off, each order and each change of its status is written as a note on the buyer’s timeline instead, dated when it happened. Turning Finance on later matches the very same contacts.

Paid orders only, on by default, skips orders that are still unpaid (pending payment and on hold) and orders that failed. Processing and completed count as paid. A status a payment plugin invented is judged by whether WooCommerce recorded a paid date, which is the one thing every gateway sets. Refunds always come through, since they correct an entry that already exists.

Drafts, including the checkout drafts the block checkout creates, are never imported. Moving an order to the trash does not remove the income entry it already produced: refund or cancel the order instead, so the ledger is corrected rather than silently short.

Off by default. Turn on Abandoned carts and the plugin reports a cart that goes quiet: the shopper becomes a contact if they left an email address or a phone number, is tagged abandoned-cart, and gets a timeline note with the basket, its value and a link that restores the cart.

Nothing is sent to the shopper automatically. Chasing the cart is a sequence you build and control, and the tag is there so a sequence or a segment can find them. The integration never messages a customer on your behalf.

Turn on Show live chat on the storefront under Integrations → WooCommerce. The plugin picks the setting up the next time it checks in, then prints the Pinlyx chat script on your storefront, and removes it just as directly when you turn the toggle off. There is no snippet to paste into a theme.

Leave the widget selector on automatic and Pinlyx uses the widget registered for your store’s domain, creating one the first time. Pick an existing widget instead if you already run one and want the same conversations, greeting and styling on the shop.

The chat goes away when you turn the toggle off, when you disconnect the store, and when your plan no longer includes live chat.

The integration itself, customer sync and order sync run on every plan, the free one included. Three things attached to it have their own gates, and the panel says so rather than failing quietly:

  • Orders as income entries needs the Finance module. Without it, orders still land on the buyer’s timeline as notes.
  • Live chat on the storefront needs a plan with live chat.
  • Follow-up channels (WhatsApp, Telegram, email sequences) follow their own plan limits.

The switches live in Pinlyx, under Integrations → WooCommerce:

SettingDefaultWhat it does
CustomersOnImport WooCommerce customers as contacts
OrdersOnImport orders and attach them to the buyer
Paid orders onlyOnSkip unpaid and failed orders
Add orders to FinanceOnMirror orders as income entries (needs the Finance module). Off writes timeline notes instead
Abandoned cartsOffTag shoppers who left a cart and note it on their timeline
Tag imported contactswoocommerceTag applied to every contact the integration creates
Add new contacts toDefault pipelineWhich board and column store customers land on
Show live chat on the storefrontOffLet the plugin print the chat widget on your shop

The plugin fetches its configuration every ten minutes, and also reads it back in the answer to every batch of events it sends. So a change you make in Pinlyx reaches the store within ten minutes, sooner on a busy shop. Changes apply from then on; nothing already imported is removed.

Sync now and Full re-sync work the same way: because there is nothing on the store Pinlyx could read by itself, both ask the plugin to resend, and it does so on its next check-in.

What is sent. From customers and orders: name, email address, phone number, company, city and country, the WooCommerce customer number, and the order’s number, totals, currency, tax, discount, coupon code, payment method, product names and quantities, and status changes. From an abandoned cart, only when you have switched that on: the basket, its value, and the address details the shopper had entered. Card details and passwords are never sent, and nothing at all is sent before you connect.

WordPress privacy tools. The plugin registers an exporter and an eraser with WordPress, so Tools → Export Personal Data and Tools → Erase Personal Data include what the plugin keeps on your site, such as the link between a WordPress user and their CRM contact and any abandoned cart rows. It also adds a suggested section to Settings → Privacy that you can adapt for your own policy.

The CRM copy is separate. WooCommerce has no equivalent of a platform relaying privacy requests to installed apps, so an erasure you run in WordPress does not reach Pinlyx on its own, and the plugin deliberately does not delete CRM records for you: a contact usually carries conversations and invoices you may be required to keep. Delete or anonymise the contact in Pinlyx as well when a shopper asks.

The plugin reports a signature or clock error

Section titled “The plugin reports a signature or clock error”

Every request is signed with a timestamp, and Pinlyx rejects one whose clock is more than five minutes away from its own, so that a captured request cannot be replayed later. The fix is the store’s clock, not the plugin: ask your host to keep the server time synchronised.

The plugin sends everything through Action Scheduler, the background queue that ships inside WooCommerce, so a checkout is never held up by Pinlyx. If the queue does not run, nothing is sent. Open WooCommerce → Status → Scheduled Actions: Pinlyx actions sitting in Pending long past their date mean the queue is stalled, usually because WordPress cron is disabled without a real cron job replacing it, or because the site gets too little traffic to trigger it. Failed actions name the reason.

Pinlyx no longer recognises the store: it was disconnected from the CRM side, or another Pinlyx account connected the same store. Press Connect again in WooCommerce → Pinlyx to reconnect; the imported history is kept.

Read the activity log in Integrations → WooCommerce: it records the events the store sent over the last two weeks, with the outcome of each. If the order is not there at all, check whether it is unpaid while Paid orders only is on, whether it is a draft, whether it is older than the year of history the first pass covers, and whether Action Scheduler ran at all.

Revenue does not appear on the Finance dashboard

Section titled “Revenue does not appear on the Finance dashboard”

Either Add orders to Finance is off, or your plan does not include the Finance module. The panel disables the toggle and says so in the second case.

Check that Show live chat on the storefront is on and that your plan includes live chat, then give the plugin up to ten minutes to pick the setting up. If your site serves cached pages, purge the page cache: a visitor can otherwise be served HTML that was generated before the widget was switched on.

A store feeds exactly one Pinlyx account. Connecting it from a second account moves it there, and the first account’s connection is closed with a note saying so.

You can disconnect from either side, and both end the same way:

  • In wp-admin, WooCommerce → Pinlyx → Disconnect. The plugin tells Pinlyx and stops sending.
  • In the panel, Integrations → WooCommerce → Disconnect. The next time the plugin checks in it learns the store was disconnected, stops, and offers to reconnect.

Imported contacts, their tags and every income entry stay in your CRM, and your store’s own data is untouched. Reconnecting the same store to the same account keeps its imported history and counters.