Every buyer who comes from your WooCommerce store finds a matching record in the CRM.
Orders, payments and delivery run in WooCommerce; the buyer, the quote request and the wholesale customer are recorded in the CRM. We build the connection ourselves, with the REST API, OAuth2, signed webhooks and import.
A store on your own server: flexible, but nobody owns it
If your WooCommerce installation was set up by an agency, grew over the years through plugins and no longer has a single owner inside the company, that flexibility looks like this on the sales side:
- Customer data sits in the store database, quote requests in a form plugin, correspondence in a mailbox. None of the three knows the others.
- A “price for a bulk order” request from the site lands in a shared mailbox; who will handle it is unclear, and the ones left unanswered are never seen.
- The same company both buys retail from the site and negotiates wholesale; that the two belong to the same customer comes together on no screen at all.
- Store reports describe the order, not the customer: who bought a second time, who returned an item, who complained — none of it sits together.
- When the agency changes, or when a plugin goes un-updated, historical data is put at risk; nobody holds a copy that has been taken outside.
This picture is not a store-software problem, it is an ownership problem. What the CRM does is not to replace the store; it is to move the customer side somewhere independent of the store, somewhere you own.
How is the connection built — and why is it not a WordPress plugin?
There is no out-of-the-box module for WooCommerce, and we will not say there is. The connection is built as an integration project whose scope is determined in the discovery call, using the REST API, OAuth2, webhooks and import/export. We have no plugin published in the WordPress plugin directory either; we cannot say “install it from the plugin store”.
Rapitek is not an e-commerce platform. Products, prices, stock, cart, payment and shipping stay on the WooCommerce side. What the CRM adds is the customer side: the buyer's record, the quote request, the communication history, repeat sales and the wholesale line.
The connection is built with three tools:
- REST API — the product ships out of the box with 183 business objects, and each one is published in the REST API with its own data and schema endpoint; you can read the field structure from outside with describe. Access is authorised with OAuth2, no user password is shared; multiple operations and bulk writes are supported.
- Outgoing webhook — events in the CRM are delivered to your system signed; a failed call is retried and the target address is verified.
- Import — a four-step wizard: upload, map fields, preview, run. 100,000 rows per job, 25 MB per file, more than 75 objects. Export is done in the same module; because we have not measured its limits, we do not put a figure here.
We will not overstate field mapping: of the 34 import jobs we measured across the 8 tenants we could access, 16 failed, and the hyphenated “E-posta” header in Turkish exports does not map automatically. We do not make a statement such as “zero data loss guaranteed”. That is why we run the first migration ourselves during setup and confirm the mapping together on the preview screen.
The proof that this connection is not a bluff is in the product's own use: today, in one live customer installation, a third-party ERP integrator reads and writes records over this same REST API. We give no names, because we do not have permission to publish the customer's or the integrator's name; what we are saying is a measured fact. This is a single installation, not a list of case studies.
We set out our general approach on the integrations page, and how the same framework looks on a hosted store on the Shopify integration page.
Thursday 10:20 — a “price for a bulk order” request came in from the site. Once the connection is in place:
-
1
The request lands in a record, not in a mailbox
The form on your site is connected to the CRM's REST API or to a signed webhook; the incoming record lands on the list as a lead with its source tagged. It does not get lost in a shared mailbox.
-
2
The owner is clear, and what went unanswered is visible
The record is assigned to a person and open requests stay on the list. The question “who answered this?” is answered on the screen, not around the team.
-
3
The same company's retail history is visible
If the requester has bought from the site before, the matching key links them to the existing card. You go into the wholesale negotiation knowing the history.
-
4
The quote process runs tied to the record
An opportunity is opened, a price list is chosen, the quote comes out as a PDF and the approval process runs. Quote → order conversion is a ready-made action in the product.
-
5
Outgoing mail leaves the individual's inbox
If your Gmail account is connected with OAuth, outgoing mail is sent from inside the CRM and tied to the same record; the connection covers sending and calendar sync, and inbox reading is switched off. Outlook and Microsoft 365 connections are not live. Generic IMAP/SMTP is not supported either.
-
6
Historical data stays with you
Customer data sits in a separate database of your own, independent of the store, and is exported whenever you want. When the agency changes, the customer memory does not go with it.
Flows that can be built between WooCommerce and Rapitek CRM
Migrating the customer and order export
A CSV/Excel export taken from WooCommerce is imported into the CRM with the four-step wizard; you confirm the mapping on the preview screen. We run the first migration ourselves as part of the setup.
Connecting the site forms to the CRM
Quote, dealership and contact forms are connected via the REST API or a signed webhook; the incoming record lands as a lead with its source tagged. This is a flow we configure during setup.
Retail and wholesale merging on the same card
If the company buying from the site and the one negotiating wholesale are the same, the records are merged with a matching key; duplicate cards are cleaned up during setup.
Quote, approval and price list
A wholesale request runs as an opportunity: price list, quote PDF template (ready in Turkish and English) and approval process. The administrator edits the template themselves.
Signed and verified outgoing notification
An event in the CRM goes to your server as a signed webhook; the receiving side verifies the signature and filters out fake notifications, the target address is verified and a failed call is retried.
Data ownership and export
Your CRM data is held in a separate database that belongs to you and is exported as Excel/CSV whenever you want. Field-level change history is recorded.
Which method, and when?
| Method | What it is for | When it is preferred |
|---|---|---|
| Import (Data Hub) | The CSV/Excel export is imported in four steps; a suggestion is offered for header matching — 19/19 and 13/17 on the headers of the two exports we measured — and you confirm the mapping on screen | When there is no external access to the server, or when periodic freshness is enough |
| REST API (183 business objects, each with its own endpoint) | An event on the store side is written into the CRM as a record; each object has its own data and schema endpoint, access is authorised with OAuth2 and no user password is shared | When a continuous flow is wanted; the layer that does the writing is written within the project scope |
| Outgoing webhook | Events in the CRM are delivered to your server signed; the target address is verified and a failed call is retried | When something that happens in the CRM needs to trigger the store side |
| Your agency or your own developer | They can write the connection themselves using the same REST API; we provide the schema, OAuth2 access and the field mapping table | When there is already a team managing the site and you want to keep working with that team |
What we have verified — the good news and the bad
How is the WooCommerce connection put live?
-
1
Discovery
Who manages your store, how open is the server to the outside, which form plugin is in use, and in what format can historical data be exported? We recommend that your agency is in this call.
-
2
Scope, field mapping and method
The matching key, the direction of the flow, its frequency and the duplicate-record rule are put in writing. The field mapping table, the scope and the fee, if there is one, are shared in writing before work starts.
-
3
Configuration and test migration
Fields, channel lists, the form connection and permissions are set up; a test migration is run with a sample export. Header matching is verified one by one at the preview step.
-
4
Team training and go-live
Team training and close follow-up in the first week. The date of this step is set during discovery; we do not commit to a duration before discovery.
Our limits: what we do not promise on this page
Some of the first things that come to mind in an e-commerce context are not our job. We turn six of them down by name:
- We do not promise stock synchronisation. We do not say “your stock will be in sync with the store”; authority over the stock record stays in WooCommerce and in your warehouse system.
- We do not say that the order → invoice → collection chain will flow on its own. The chain is built into the product, but we do not think it is right for it to be sold as an automated accounting flow.
- We do not promise production and MRP automation. The bill of materials and the production line definition exist in the product; we cannot describe work order execution with a reference today.
- We do not do shipment tracking. The tracking number is a plain text field in the product; no shipping service is called and shipment status is not read by the CRM.
- We are not a solution installed from the plugin directory. We have no plugin published in the WordPress plugin directory; the connection is work that we build.
- Rapitek is not an e-commerce platform. The storefront, product management, payment and returns stay in WooCommerce; the CRM takes the customer side.
We wrote the reason for the first three, and “what can be done instead”, line by line in one place: the three things we do not promise. We do not repeat it here, so that we do not end up making two different statements in two places.
We do not overstate data migration either: of the 34 import jobs we measured across the 8 tenants we could access, 16 failed. We do not make a statement such as “zero data loss guaranteed”; instead we go through the preview step together and run the first migration ourselves as part of the setup.
Data location: your data is held in the European Union — the database in Helsinki (Finland), files in Frankfurt, backups in Falkenstein (Germany). We have no component in Türkiye and we have no region selection feature. Under KVKK art. 9 this is a transfer abroad; we establish your legal basis for the transfer together during the contract process. The details are on the security page and in the KVKK information notice.
Certification: we do not hold an ISO 27001 or SOC 2 certificate, and we will not claim one until we do. We fill in your corporate security assessment forms and describe the architecture in writing.
We write the figure on the pricing page, not on this one
The scope of the WooCommerce connection, and its fee if there is one, are worked out in the discovery call and shared in writing. Plan prices we keep in a single place — so that you do not read a different figure in two places.
Three plans, the scope table and separately priced items on a single page.
Frequently asked questions about the WooCommerce integration
Is a WooCommerce and CRM integration possible?
Do you have a ready-made plugin in the WordPress plugin directory?
Our site is on our own server and closed to the outside. Is integration still possible?
Can we migrate our customer and order export with CSV?
Will the quote form on our site land in the CRM?
Our webhook address is on an internal network. What happens in terms of security?
Our agency manages the site. Can they write the connection themselves?
Our retail and wholesale customer is the same company. Do the two lines of business merge on one card?
Will our stock work in sync with WooCommerce?
Does an order turn into an invoice in the CRM, can we issue e-invoices?
What happens to our customer data when the agency changes?
What does the WooCommerce integration cost?
How long does it take for the WooCommerce connection to go live?
Where is the customer data migrated from the store held?
Let's clarify your WooCommerce flow in 30 minutes
In the demo call, let's talk through how your customer export and your site forms will connect to the CRM, over your own installation; let's choose the method and the scope together.
The scope of the setup, and its fee if there is one, are worked out in the discovery call and shared in writing.
