Skip to content
Integration · WooCommerce store

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.

Rapitek CRM channels and integrations screen (Turkish interface): cards for email accounts, Meta pages, payment providers, the Claude connector and İYS providers
Channels screen — connection and payment cards

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.

A concrete scenario

Thursday 10:20 — a “price for a bulk order” request came in from the site. Once the connection is in place:

  1. 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. 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. 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. 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. 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. 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.

Choosing a method

Which method, and when?

The method is chosen during discovery, according to how open your server is to the outside and who manages the store.
MethodWhat it is forWhen 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 screenWhen 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 sharedWhen a continuous flow is wanted; the layer that does the writing is written within the project scope
Outgoing webhookEvents in the CRM are delivered to your server signed; the target address is verified and a failed call is retriedWhen something that happens in the CRM needs to trigger the store side
Your agency or your own developerThey can write the connection themselves using the same REST API; we provide the schema, OAuth2 access and the field mapping tableWhen there is already a team managing the site and you want to keep working with that team
What we can say

What we have verified — the good news and the bad

16 / 34
Import jobs that failed, of those measured across the 8 tenants we could access
183
Business objects in the REST API
A single installation
In a live setup a third-party integrator reads and writes records on this API
Plain text
The shipment tracking number is held as a field; no shipping API is called
Implementation

How is the WooCommerce connection put live?

  1. 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. 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. 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. 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.

FAQ

Frequently asked questions about the WooCommerce integration

Is a WooCommerce and CRM integration possible?
Yes — not with an out-of-the-box module, but as an integration project with a defined scope. The connection is built with the REST API, OAuth2, signed outgoing webhooks and import/export. Which of the customer, order and form data flows in which direction and how often is worked out during discovery and shared as a written scope.
Do you have a ready-made plugin in the WordPress plugin directory?
No. We have no plugin published in the WordPress plugin directory and we will not write as if we did. What we have is a documented interface: 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. Alongside it there are OAuth2, signed outgoing webhooks and a four-step import/export wizard. The connection is written on top of these, specific to your installation.
Our site is on our own server and closed to the outside. Is integration still possible?
Yes, only the method changes. On an installation closed to the outside, the flow runs through import/export: customer and order exports taken from the store are imported into the CRM periodically with a template. Because it does not require external access to your server, this is the route we recommend at the start; if access conditions change later, the same scope is moved to an API-based flow.
Can we migrate our customer and order export with CSV?
Yes. A four-step wizard runs: upload, map fields, preview, run. We measured header matching: in one Salesforce lead export 19 of 19 headers matched correctly; in one HubSpot contact export 13 of 17 — two matched incorrectly and “City” did not match at all. The hyphenated “E-posta” header in Turkish exports does not match either. That is why you confirm the mapping one by one on the preview screen. 100,000 rows per job, 25 MB per file; the accepted formats are .csv, .xls and .xlsx.
Will the quote form on our site land in the CRM?
Yes. Your form 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 and is assigned to an owner. We write this not as an out-of-the-box module but as a flow we configure during setup. Which form fields go to which CRM fields is set out in a table during discovery.
Our webhook address is on an internal network. What happens in terms of security?
Outgoing webhook calls are signed; the receiving side verifies the signature and filters out fake notifications. The target address is also verified, so a call to an arbitrary internal network address is prevented. A failed call is retried. Which event goes to which endpoint is defined during setup.
Our agency manages the site. Can they write the connection themselves?
Yes, this is a route we support. Your agency or your own developer can write the connection themselves using Rapitek CRM's REST API; we provide the API documentation, OAuth2 access, the object definitions and the field mapping table. As a separate fact: in one live customer installation a third-party ERP integrator reads and writes records over this same API. This is a single installation, not a list of case studies.
Our retail and wholesale customer is the same company. Do the two lines of business merge on one card?
They do merge. Records are linked to the same company card with a matching key — tax number, email or phone; duplicate cards are cleaned up during setup and the rule stays in the written scope. The wholesale side is read as opportunities and quotes and the retail side as order history, under the same card.
Will our stock work in sync with WooCommerce?
We do not promise real-time stock synchronisation. Authority over the stock record stays in your store and in your warehouse system; a stock mirror fed from the CRM produces two numbers that do not agree in two places. We wrote the reason, and what can be done instead, line by line in the limits section of the integrations page.
Does an order turn into an invoice in the CRM, can we issue e-invoices?
No. The order → invoice → collection chain is built into the product, but we do not think it is right for it to be sold as an automated accounting flow. Rapitek CRM does not issue e-Fatura or e-Arşiv documents and is not a GİB private integrator; fields such as ETTN or GİB status do not exist in the product. Your invoices continue to be issued at your current integrator; the invoice number, date and amount can be carried into the CRM as fields.
What happens to our customer data when the agency changes?
Your CRM data is held in a separate database that belongs to you and is independent of the store; you can export it as Excel/CSV and take it with you whenever you want. Field-level change history is recorded, so it can be seen who changed a field and when. Even if the site technology changes, the customer memory stays with the company.
What does the WooCommerce integration cost?
We do not write a figure on this page, because the fee depends on the scope: the number of records to be migrated, the direction of the flow, its frequency and whether your server can be accessed. After the discovery call we share the scope and the fee in writing. A project-specific integration is a separate line of work outside the plan price; the plan details are on the pricing page.
How long does it take for the WooCommerce connection to go live?
We do not commit to a duration before discovery; after the discovery call we give you a date, not a range. The setup consists of these steps: discovery, configuration, data migration, training and go-live. An import-based store flow is built within this plan; the scope of API-based flows is also clarified in the same discovery.
Where is the customer data migrated from the store held?
Wherever your WooCommerce server is, the CRM side stays in the European Union: the database in Helsinki (Finland), the files you upload in Frankfurt, the database backups in Falkenstein (Germany). We have no component in Türkiye and we do not offer region selection. Under KVKK art. 9 this is a transfer abroad; we establish the legal basis for it together during the contract process. Your CRM data is held in a separate database that belongs to you. The legal assessment here is information, not legal advice.

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.

Made with RapitekGO

We would like to use optional cookies to measure your visit. The site works exactly the same if you decline. Cookie policy