• Integrations · SalesDrive /handler/

Integrating an online store with SalesDrive

An order from the site becomes a SalesDrive request with items, delivery and UTM tags, and the status and waybill come back to the site. SalesDrive itself has modules for OpenCart, WooCommerce and Horoshop, so often our work isn't needed there. We step in where there's no module or it can't see your fields: a custom-built site, Next.js, a reworked checkout. We haven't built SalesDrive integrations for clients yet — we build the exchange for your task following the official API documentation.

See how it works
Price
after a free audit
Guarantee
30 days after project sign-off
How an order gets into the CRM
a call to your account's /handler/, with the external number and UTM tags
after a free audit
Price
Guarantee

days after project sign-off

a call to your account's /handler/, with the external number and UTM tags
How an order gets into the CRM
status and waybill — by webhook when a request is created or its status changes
What comes back to the site
city, branch and address for Nova Poshta and Ukrposhta in a request that has already been created
What the API doesn't change
Limit on the SalesDrive order list

calls a minute, 100 an hour, 1000 a day

Timeline

working days after the review

Warranty

calendar days for completed work

Who it's for

Situations where this service delivers results

Scenario 1 of 4

The site is custom-built or on Next.js — there's no module for it

SalesDrive publishes modules for popular platforms and leaves the API for the rest. Then you have to hand orders over as requests yourself: gather items, delivery, payment and tags into the format the CRM expects, and not lose them when something fails.

We'll review your situation in a free audit
What's included

Complete list of work and what you get as a result

  • Passing an order into a SalesDrive request: items, payment, delivery method, comment — the manager doesn't copy anything by hand
  • An external order number in every request: before retrying after a failure the site checks the SalesDrive order list, so a second request for the same order doesn't appear
  • UTM tags and the URL of the page the order came from — in the request fields
  • Delivery data as a separate block for the right carrier: Nova Poshta, Ukrposhta, Meest or Rozetka Delivery
  • The SalesDrive request number stored on the site side — you can see which order went where
  • A SalesDrive webhook receiver: status and waybill come back to the site, into the customer account or an email
  • Scheduled reconciliation through the SalesDrive order list within SalesDrive's limits — it catches a webhook that never arrived
  • Stock from the SalesDrive YML export to the site on a schedule, matched by SKU or id
  • A queue with retries and a transfer log: you can see what was sent, what the CRM replied and what to retry
  • A test on a live order together with your manager, and a short guide
  • A 30-calendar-day warranty on completed work
When this service isn't right

What's not included — so there are no surprises at delivery

  • SalesDrive plans and licenses — the contract with them is yours
  • Setting up the pipeline, statuses, manager permissions and automatic tasks inside SalesDrive
  • Connecting marketplaces that SalesDrive has a built-in integration for
  • Migrating customer and order history from an old CRM — a separate service
  • Telephony setup

Free review: SalesDrive module or a custom exchange

First we find out whether development is needed here at all. SalesDrive has its own modules for OpenCart, WooCommerce and Horoshop, and often it's enough to install and configure them. Writing code only makes sense where the module can't see your fields or there's no module for your platform.

What we measure

  • Platform and module availabilityOpenCart (versions 1.5 to 4.0 according to SalesDrive), WooCommerce, Horoshop — there is a module. A custom-built site, Next.js, a heavily reworked checkout — there isn't one, or it won't pass on everything.
  • Checkout fields versus request fieldsWe compare what your cart collects with what a SalesDrive request accepts: items, payment, delivery, comment, UTM tags, the page the order came from.
  • Delivery servicesNova Poshta, Ukrposhta, Meest and Rozetka Delivery are passed as separate data blocks. We check how the site stores the city and branch: by name or by the carrier's identifier.
  • What needs to come back to the siteOrder status, waybill, stock. Each reverse flow is a separate scenario, and not every store needs it.
  • Product matchingBy SKU or by id, and how options and variants behave. Without this, stock from the CRM lands on the wrong cards.

What you get

  • A verdict: install the SalesDrive module or build a custom exchange — with the reason.
  • A table mapping checkout fields to SalesDrive request fields.
  • A list of the reverse flows worth switching on and those you can skip.
  • An estimate of the work with a timeline, if development really is needed.

Timeline: 2–3 working days

Why is it free

Because the answer is often “install the SalesDrive module and set up the statuses” — and it's better to learn that before paying for code.

What's next

If the module is enough, we write down what exactly to configure in it and stop there. If not, we give an estimate by stage.

Short form: your contact and site URL

We work officially

Contract, act and invoice — for every project, not just large ones.

Trusted by6 brands

Trusted by: Kvant Energy, GYPSUN, Naturel Cosmetics, Pancer Protection, LUGI, BeeTech

Terms fixed in writing8 points
  • 01

    Contract, act and 30-day warranty

    Every project gets a written contract: scope, deadlines, amount, acceptance procedure. After delivery — act and invoice, then 30 calendar days of warranty.

  • 02

    Sole proprietor & bank transfer

    The contractor is a registered sole proprietor. Payment by invoice with closing documents.

  • 03

    Rights & access — yours

    Code, design and materials transfer to you after full payment. Domain, hosting, repository and analytics are registered to you.

  • 04

    Client portal instead of email chains

    During the project you get access to a portal: contracts, invoices, acts and project status in one place.

  • 05

    Sites in nine countries

    Our sites run in nine countries: besides Ukraine — Poland, Germany, Austria, England, Norway, Bulgaria, Moldova and Spain.

  • 06

    Verifiable numbers

    Every case in the portfolio comes with a link to a live site and a technical measurement.

  • 07

    Audit first, then pricing

    There is no price list on the site intentionally: the scope of the same work differs multiples between clients.

  • 08

    We say "no" when unsure

    If the task isn't ours or the deadline is unrealistic — we tell you upfront.

  • 01

    Contract, act and 30-day warranty

    Every project gets a written contract: scope, deadlines, amount, acceptance procedure. After delivery — act and invoice, then 30 calendar days of warranty.

  • 02

    Sole proprietor & bank transfer

    The contractor is a registered sole proprietor. Payment by invoice with closing documents.

  • 03

    Rights & access — yours

    Code, design and materials transfer to you after full payment. Domain, hosting, repository and analytics are registered to you.

  • 04

    Client portal instead of email chains

    During the project you get access to a portal: contracts, invoices, acts and project status in one place.

  • 05

    Sites in nine countries

    Our sites run in nine countries: besides Ukraine — Poland, Germany, Austria, England, Norway, Bulgaria, Moldova and Spain.

  • 06

    Verifiable numbers

    Every case in the portfolio comes with a link to a live site and a technical measurement.

  • 07

    Audit first, then pricing

    There is no price list on the site intentionally: the scope of the same work differs multiples between clients.

  • 08

    We say "no" when unsure

    If the task isn't ours or the deadline is unrealistic — we tell you upfront.

We sign NDAs on request. After completing the work, we delete our access to your services ourselves.

What affects the price

Why two seemingly identical tasks are priced differently

  • Module or custom exchangeIf the SalesDrive module handles the orders and two non-standard fields need finishing, the work is measured in days. If there's no module for the platform, we build the transfer, the reverse flow and stock from scratch — that's the upper end of the timeline.
  • How many delivery servicesEach carrier in a SalesDrive request is a separate block with its own fields. For Nova Poshta it matters how the site stores the city and branch: the carrier's identifier is passed more reliably than the name, and the name has to be matched to the format the CRM expects.
  • Reverse flowReceiving the webhook, storing the status and waybill, showing them to the buyer and scheduled reconciliation form a separate stage. If you don't need it, it drops out of the estimate entirely.
  • Stock and product matchingA catalog without SKUs, or with options where each combination has its own stock, first needs the matching put in order. Otherwise the YML file from the CRM updates the wrong cards.
  • Several sites in one accountEach site gets its own marker in the request and its own webhook with a condition. It doesn't add much work, but it has to be planned before the start.
Process steps

Transparent stages with approval at every step

Total duration:4–12 days

  1. Review: module or development

    2–3 working days, before the estimate

    We look at the platform, checkout, delivery services and what needs to come back to the site. If the SalesDrive module is enough, we stop there. This stage is free and isn't counted in the timeline.

  2. API key, reference lists, field table

    1–2 working days

    Your administrator creates the key. We pull the lists of statuses, payment methods and delivery methods from SalesDrive and map them to the ones on the site. A test request goes through end to end.

  3. Passing orders

    1–3 working days

    A placed order is first written to the site's database, then goes to SalesDrive in the background with the external number, tags and delivery. The request number the CRM returns is stored on the site.

  4. Webhook and the reverse flow

    0–3 working days — switched on if needed

    A receiver for SalesDrive notifications about a new request and status changes: it updates the order and puts the waybill into the customer account or an email. Every few minutes the site reconciles the latest SalesDrive orders through the list so that a webhook that never arrived isn't missed.

  5. Stock from YML

    0–2 working days — switched on if needed

    We enable the YML product export in SalesDrive and pick it up on a schedule. On several products with options we check that the stock landed on the right card.

  6. Live order, log, handover

    2 working days

    We run a real order together with your manager: request in the CRM, status change, waybill on the site. We show what an error looks like in the log and what to do about it.

Did not find your case?

Describe how it works on your side — we will tell you whether “SalesDrive integration” fits and what it means in your situation. No brief and no call: one question, one answer.

Technologies & integrations

What we build on and what it connects to

Stack

  • SalesDrive /handler/ — creates a SalesDrive order with items, delivery, tags and the external number. Limit: the full list of parameters is visible only in the account dashboard.
  • /api/order/update/ — status, manager, waybill, items. Limit: city, branch and address for Nova Poshta and Ukrposhta can't be updated this way.
  • SalesDrive webhooks — a JSON POST on creation or status change. Limit: signature and redelivery aren't documented.
  • /api/order/list/ — reconciling anything missed. Limit: 10 calls a minute, 100 an hour, 1000 a day.
  • YML product export — stock for the site. Limit: between two downloads of the file the stock can lag behind.
  • OpenCart 3 and 4, WooCommerce, Next.js — our side. Limit: there's no module for Next.js and custom-built sites.
  • A queue and a transfer log. Limit: the log holds personal data, so its retention period is limited.

Integrations

  • SalesDrive
  • Nova Poshta
  • Ukrposhta
  • Meest
  • Rozetka Delivery
A custom API exchange versus the ready SalesDrive module

How this option differs from the alternative

When it fitsa custom-built site, Next.js, a checkout with non-standard fields, several sites with separate logic
Startdevelopment in 4–12 working days after the review
Non-standard fieldsevery checkout field mapped to a request field
Failure on the CRM sidethe order stays in the site's database, the queue retries, the error shows in the log
Who maintains itus — after platform or API updates we check the exchange
Cases

Tasks and results in numbers — all metrics measured by us

our own premium theme and module set for OpenCart 4, adapted to the Ukrainian market

Task
Make an OpenCart 4 store with a large catalog load fast and handle out of the box what every Ukrainian store needs: Nova Poshta with waybills, Ukrainian payment systems, decent search and structured data — instead of assembling all of it each time from third-party modules of varying quality.
Solution
A theme for OpenCart 4.1+ on PHP 8.1+ with its own caching layer (APCu for the object cache, OPcache with JIT, nginx fastcgi_cache, scheduled warm-up of top categories) and a fix for the N+1 problem in categories, where native OpenCart issued 200+ COUNT queries. On top of that a Theme Engine with 10 ready design presets and 200+ options, FULLTEXT search with synonyms and autocomplete, back-in-stock notifications with recovery by email and SMS, reviews with AggregateRating markup, a set of JSON-LD schemas (Organization, WebSite, Product, Breadcrumb, Article, FAQ), and a Ukrainian layer: Nova Poshta with automatic waybills, registers and webhooks, Ukrposhta, LiqPay, monobank, WayForPay. Separately, an order-tracking page and a printable invoice protected by a token. Shipped as five archives: a full installer, a marketplace theme and three standalone modules.
Result
An internal test rig on a 14,000-product catalog: native OpenCart 4 returns a cold category in 8–17 seconds, with our theme it is 0.18 s from cache and 0.8 s without it — that is 30–95 times faster. The codebase holds 8,157 PHP files, 718 Twig templates and 726 JavaScript files; the feature list runs to 167 items in 16 sections. Version 1.1.0; the product is being prepared for launch and has not been released publicly yet.
What we need from you

We can't start without this — best to prepare in advance

  1. A SalesDrive administrator on your side: they create the API key and add the webhook — we don't generate the key.
  2. Access to the site and admin panel with rights to install modifications.
  3. A list of the SalesDrive statuses the buyer should see on the site, and those that stay internal.
  4. The delivery services you ship with, and an example order for each.
  5. The product matching rule: SKU or id; how options are set up.
  6. Whether several sites work in one SalesDrive account.

If something is missing — let us know, we'll help you gather it or do it as a separate task.

FAQ

Most frequently asked questions — with concrete answers

SalesDrive has a module for OpenCart. So why would I need development?

Often it isn't needed. According to SalesDrive's own description, the module for OpenCart and ocStore supports versions 1.5 to 4.0, passes on orders and UTM tags, pulls stock levels and updates the status on the site when it's changed in the CRM. Similar modules exist for WooCommerce, and Horoshop connects directly in the settings. Development is needed when there's no module for the platform or the checkout has been reworked so much that the module can't see it. At the review we tell you which of the two cases is yours.

Have you integrated stores with SalesDrive before?

No, not for clients yet, and we won't pass it off as experience. We rely on SalesDrive's official API documentation and on our own work with the hardest part of such an exchange: Nova Poshta waybills and webhooks in our own theme for OpenCart 4. The case below is about that, not about SalesDrive. The neighboring page on KeyCRM describes the same approach for another CRM.

How do you avoid creating two requests for one order?

Every request carries an external number — the order number on the site — and when creating it we ask SalesDrive to return the request number, and we store it next to the order. The riskiest case is when the request was created but the response got lost: the site doesn't blindly create the request again, it first looks for the order among the latest SalesDrive orders in the list. If it finds it, from then on it only updates the request, by its number or by the external number, as the API allows. That way you can see which order is already in the CRM and which is still in the queue.

A buyer changed the branch after checkout. Will the site update it in the CRM?

No, and that's a limit of SalesDrive itself: the API can't change the city, branch or address for Nova Poshta and Ukrposhta in a request that has already been created. Status, manager, waybill and items can be changed. So an address change after checkout is made by the manager in the CRM, and the site only confirms to the buyer that their change request has been received. We state this plainly in the instructions so nobody expects automation where there isn't any.

How does the waybill number get to the site?

By webhook: SalesDrive sends a POST with the SalesDrive order data when it's created or its status changes, and lets you choose which statuses trigger it. The documentation describes neither a message signature nor redelivery, so the receiver checks a secret in the URL and never applies the same update to an order twice, and every few minutes the site reconciles the latest SalesDrive orders through the list. The list is limited to ten calls a minute, so we reconcile in batches.

Will stock on the site be updated from SalesDrive too?

Yes, through the YML product export: it's enabled in the SalesDrive settings, the file updates itself, and the site picks it up on a schedule. Between two downloads of the file the stock on the site can lag behind, so we set the frequency to match your turnover. The most common problem here isn't the exchange but the matching: if some products have no SKUs or options aren't broken out into separate items, the stock lands on the wrong product card.

How much does SalesDrive itself cost?

The SalesDrive plan is set by the service itself, and you sign the contract for it directly with them, without us. Check the current terms at salesdrive.ua. We only charge for our own work on the exchange, and we name the amount after the free review.

What does the timeline depend on — 4 days or 12?

On the stages you actually need. Three are mandatory: the API key and field table (1–2 days), passing orders (1–3 days) and a test on a live order (2 days) — 4–7 working days in total. The webhook with statuses and waybills adds up to 3 days, stock from YML up to 2, and each of them is switched on only if needed; with all the stages it comes to 12. The review isn't part of this timeline: it's separate, takes 2–3 days and is free.

Tell us what your site is built on and what needs to flow between it and SalesDrive.

In reply you get a verdict on whether the SalesDrive module is enough, a field mapping table and, if development really is needed, an estimate by stage with a timeline.

View cases
  • Reply within 2 hours
  • No commitment
  • We work under a contract

There is no price list on the site on purpose: the same work differs several times over between two clients, and a “from” figure explains nothing in that case. First a free audit — we count your pages, duplicates and speed — then we name the sum and the deadline and fix both in the contract.