// e-commerce developer · Ukraine · remote · replies < 24h// e-commerce developer · Ukraine
// remote · replies < 24h

Stores built, repaired, and wired to the systems around them.

OpenCart, WooCommerce, custom Laravel. CRM, delivery, payment and marketplace integrations. Most of my work lands on stores that are already live and already taking orders — so every change is measured, staged and reversible.

diagnosis.log — sports-books store, OpenCart 3● resolved
01$ profile category /chess
02page time .......... 2,205 ms
03http 500 / 90 min .. 825
04$ inspect db --largest
05oc_session ......... 89% of database
06# cause: session clean-up never deleted a row
07$ apply fix: session patch + indexes
08page time .......... 292 ms (−87%)
09db errors / day .... 0
24,579 products · 1 working dayfull case →
46projects · 2026
10yphp · e-commerce · APIs
24,579largest catalogue tunedlargest catalogue
01 — what_you_can_order

Seven jobs with a clear start, finish and price.

Fixed-price where the scope is known. Everything else starts with a paid diagnosis, so the estimate is built on facts, not guesses.Fixed-price where the scope is known; everything else starts with a paid diagnosis.

01from $60
Fix what is broken
Checkout errors, HTTP 500s, a plugin dead after an update, a payment that stops half-way. The actual cause, not the first suspect.Checkout errors, HTTP 500s, dead plugins, payments that stop half-way.
6 examples ↓
02from $90
Update it safely
A new design or a newer platform version over the store you already have — content carried over, built on a copy, switched when ready. Module updates the same way.New design or platform version over your store; content carried over, built on a copy.
9 examples ↓
03after diagnosis
Make it fast
Which pages, how many milliseconds, and why. Then the fix, with before/after numbers you can verify yourself.Which pages, how many milliseconds, why — then the fix with before/after numbers.
2 examples ↓
04after diagnosis
Clean up after a hack
Malware and cloaked pages removed, every entry point closed, and a short account of how they got in.Malware and cloaked pages removed, every entry point closed.
4 examples ↓
05from $250
Connect CRM, delivery, marketplaces
KeyCRM, SalesDrive, Nova Poshta, 1C, Rozetka, Prom, Kyivstar SMS, eSputnik. Two-way, scheduled, logged.KeyCRM, SalesDrive, Nova Poshta, 1C, Rozetka, Prom, SMS, eSputnik.
8 examples ↓
06from $150
Import or migrate the catalogue
20,000+ SKUs from Excel, 1C or supplier feeds, variants intact. Or a whole store moved between platforms without losing rankings.20,000+ SKUs from Excel, 1C or feeds; platform moves without losing rankings.
7 examples ↓
07on estimate
Build the store or the system behind it
A new OpenCart or WooCommerce store from spec — or a custom Laravel + React CRM when nothing off the shelf fits.New OpenCart / WooCommerce from spec, or a custom Laravel + React CRM.
23 examples ↓
??
Something not on the list?
describe it →
02.1 — work_by_service

The rest, grouped by what was ordered.

Most clients come through agencies and stay unnamed. What is listed is the kind of store, the platform, and what changed.

full index with filters →
01 · fixFix what is broken6 listed
Décor wholesaleropencartwholesale discounts made automatic for every customer, sale items excluded; invoice layout fixed
Plant nurseryopencartadding products from a phone simplified, winter / spring pre-orders, search by name fixed
Climate equipment storeopencarttechnical SEO: canonical tags, robots meta, noindex on pagination
Contact-form spam, several storesopencart · wordpressreCAPTCHA wired into forms that kept letting spam through
Pizzeriawoocommercedelivery set up for the city and beyond it, with its own rules for each, plus fixes across the site
+ 1 more in the index →
02 · updateUpdate it safely9 listed
Strollers & baby goods makeropencartnew design on a newer OpenCart, rebuilt with the old content carried over
Pet supplies shopokaycmsthe client wanted a new theme that only ran on a newer OkayCMS, so the system was updated first and the store moved onto the theme
Packaging storeopencartnew design built over the existing store and its content
Flooring companywordpressnew design, content taken from the old site and reworked
Lingerie storeopencarta run of improvements first, then the store rebuilt on a new design
+ 4 more in the index →
03 · speedMake it fast2 listed
Sports-books storeopencart 3HTTP 500s traced to 22.8 million stale sessions; category pages up to 7× faster → case
Industrial equipment makerwordpress · own markupLighthouse mobile 59 → 98: images 26.9 MB → 366 KB, icon font cut to the glyphs in use, an unused page builder switched off, and the host's page cache — on for years, disabled by two cookies — put to work
04 · securityClean up after a hack4 listed
Wall-art retaileropencart · aridiuscasino page served only to Googlebot removed; five injectable theme endpoints closed; two footholds cleaned → case
Agency portfolio, 22 storesopencartafter one hack was found, every store the agency maintains checked for SQL injection and intrusion traces; holes reachable without login mapped, fix plan in two waves
Pools, fountains & pet suppliesopencartsame campaign as the wall-art case, found by chance while preparing a dev copy: three shells removed, the theme hole closed in four files on the live site and four on dev
Military-gear storeopencartnight-time intrusion stopped: a foreign admin session and an SQL injection through the page address in the SEO-URL module — sessions killed, passwords reset, the query escaped within half an hour
05 · integrationsCRM, delivery, marketplaces8 listed
Pet supplies shopokaycms · salesdriveongoing support: SalesDrive both ways — orders with variants, discounts and pet profiles out, stock back; order statuses to eSputnik; own modules for customer history and a fortune wheel; loyalty page; sales report by product
Strollers & baby goods makeropencart · rozetkaRozetka price and content feeds, Google Shopping feed limited to items in stock, a recurring XML feed error fixed
Household goods storeopencart · 1csupplier price sync, 1C, monobank part-payment, Prom / Rozetka / Synthetic feeds, broken SEO URLs restored
Craft supplies shopopencart 4 · nova poshtaNova Poshta on the store’s own tables — 9,658 cities, 53,748 branches and lockers — synced nightly, checkout reordered around them
Packaging maker, two storesopencart · telegramone owner, two stores: an order bot that sends the tracking number on dispatch and a reminder ten days later, built on one store and moved to the other; review pages with a rating filter; visible discounts, minimum order, order number on the success page
+ 3 more in the index →
06 · importImport or migrate7 listed
Prom → own store importer — own moduleprom → opencartmoves a Prom storefront’s catalogue onto the store’s own OpenCart site and keeps it in sync; written once, because so many clients needed exactly this move
Universal Import — own moduleopencart 3in development: an import / export module for OpenCart 3 — Excel, YML and supplier feeds, product matching, preview, rollback, scheduled runs, an AI pass for descriptions
Pools, fountains & pet suppliesopencartcatalogue re-imported in two languages with new attributes and H1s; importer extended to filters and landing pages
Fireplace storeopencartsupplier catalogue imported with prices in euros; currency fixed wherever it had fallen back to hryvnia
Ink & supplies storeprom → opencartproducts moved from a Prom storefront to the store’s own site
+ 2 more in the index →
07 · buildBuilt from scratch23 listed
Marketing agency CRMlaravel · reactpayments, invoices, tasks, reports, roles, Telegram — built to a prototype the agency drew; in acceptance testing → casePrinting housewoocommerce · keycrmnew store on a ready theme; one product configurator instead of 40,097 variations; supplier catalogue with branding and print products from KeyCRM, orders back to KeyCRM → case
Tyre fitting & tyre shopwoocommercetheme bought and set up, then a store added: supplier price list parsed (926 items, 46 brands), radius / season / brand filters, pickup checkout, orders and requests to Telegram
Industrial equipment makerwordpress · own markupgenerated markup wired into WordPress as a theme: 21 languages, English primary, prices in €, phone by country, GDPR
Tutoring school CRMlaravel · reacta school that ran on Airtable got its own system: groups and schedules, attendance, payments and balances for students and teachers, tests, certificates, branch admins
+ 18 more in the index →
01 · fixFix what is broken6
Décor wholesaler · opencartwholesale discounts made automatic for every customer, sale items excluded; invoice layout fixed
Plant nursery · opencartadding products from a phone simplified, winter / spring pre-orders, search by name fixed
Climate equipment store · opencarttechnical SEO: canonical tags, robots meta, noindex on pagination
Contact-form spam, several stores · opencart · wordpressreCAPTCHA wired into forms that kept letting spam through
Pizzeria · woocommercedelivery set up for the city and beyond it, with its own rules for each, plus fixes across the site
+ 1 more in the index →
02 · updateUpdate it safely9
Strollers & baby goods maker · opencartnew design on a newer OpenCart, rebuilt with the old content carried over
Pet supplies shop · okaycmsthe client wanted a new theme that only ran on a newer OkayCMS, so the system was updated first and the store moved onto the theme
Packaging store · opencartnew design built over the existing store and its content
Flooring company · wordpressnew design, content taken from the old site and reworked
Lingerie store · opencarta run of improvements first, then the store rebuilt on a new design
+ 4 more in the index →
03 · speedMake it fast2
Sports-books store · opencart 3HTTP 500s traced to 22.8 million stale sessions; category pages up to 7× faster → case
Industrial equipment maker · wordpress · own markupLighthouse mobile 59 → 98: images 26.9 MB → 366 KB, icon font cut to the glyphs in use, an unused page builder switched off, and the host's page cache — on for years, disabled by two cookies — put to work
04 · securityClean up after a hack4
Wall-art retailer · opencart · aridiuscasino page served only to Googlebot removed; five injectable theme endpoints closed; two footholds cleaned → case
Agency portfolio, 22 stores · opencartafter one hack was found, every store the agency maintains checked for SQL injection and intrusion traces; holes reachable without login mapped, fix plan in two waves
Pools, fountains & pet supplies · opencartsame campaign as the wall-art case, found by chance while preparing a dev copy: three shells removed, the theme hole closed in four files on the live site and four on dev
Military-gear store · opencartnight-time intrusion stopped: a foreign admin session and an SQL injection through the page address in the SEO-URL module — sessions killed, passwords reset, the query escaped within half an hour
05 · integrationsCRM, delivery, marketplaces8
Pet supplies shop · okaycms · salesdriveongoing support: SalesDrive both ways — orders with variants, discounts and pet profiles out, stock back; order statuses to eSputnik; own modules for customer history and a fortune wheel; loyalty page; sales report by product
Strollers & baby goods maker · opencart · rozetkaRozetka price and content feeds, Google Shopping feed limited to items in stock, a recurring XML feed error fixed
Household goods store · opencart · 1csupplier price sync, 1C, monobank part-payment, Prom / Rozetka / Synthetic feeds, broken SEO URLs restored
Craft supplies shop · opencart 4 · nova poshtaNova Poshta on the store’s own tables — 9,658 cities, 53,748 branches and lockers — synced nightly, checkout reordered around them
Packaging maker, two stores · opencart · telegramone owner, two stores: an order bot that sends the tracking number on dispatch and a reminder ten days later, built on one store and moved to the other; review pages with a rating filter; visible discounts, minimum order, order number on the success page
+ 3 more in the index →
06 · importImport or migrate7
Prom → own store importer — own module · prom → opencartmoves a Prom storefront’s catalogue onto the store’s own OpenCart site and keeps it in sync; written once, because so many clients needed exactly this move
Universal Import — own module · opencart 3in development: an import / export module for OpenCart 3 — Excel, YML and supplier feeds, product matching, preview, rollback, scheduled runs, an AI pass for descriptions
Pools, fountains & pet supplies · opencartcatalogue re-imported in two languages with new attributes and H1s; importer extended to filters and landing pages
Fireplace store · opencartsupplier catalogue imported with prices in euros; currency fixed wherever it had fallen back to hryvnia
Ink & supplies store · prom → opencartproducts moved from a Prom storefront to the store’s own site
+ 2 more in the index →
07 · buildBuilt from scratch23
Marketing agency CRM · laravel · reactpayments, invoices, tasks, reports, roles, Telegram — built to a prototype the agency drew; in acceptance testing → casePrinting house · woocommerce · keycrmnew store on a ready theme; one product configurator instead of 40,097 variations; supplier catalogue with branding and print products from KeyCRM, orders back to KeyCRM → case
Tyre fitting & tyre shop · woocommercetheme bought and set up, then a store added: supplier price list parsed (926 items, 46 brands), radius / season / brand filters, pickup checkout, orders and requests to Telegram
Industrial equipment maker · wordpress · own markupgenerated markup wired into WordPress as a theme: 21 languages, English primary, prices in €, phone by country, GDPR
Tutoring school CRM · laravel · reacta school that ran on Airtable got its own system: groups and schedules, attendance, payments and balances for students and teachers, tests, certificates, branch admins
+ 18 more in the index →
stack --list
OpenCart 3WooCommerceWordPressOkayCMSPHP 8LaravelReactTypeScriptNestJSMySQL / MariaDBPostgreSQLAstronginxDockerGitHub ActionsKeyCRMSalesDriveNova Poshta1CRozetkaPromKyivstar SMSeSputnik
  • OpenCart 3
  • WooCommerce
  • WordPress
  • PHP 8
  • Laravel
  • React
  • NestJS
  • MySQL
  • PostgreSQL
  • Docker
  • KeyCRM
  • SalesDrive
  • Nova Poshta
  • 1C
  • Rozetka
  • Prom
  • eSputnik
03 — process

Scope and price before the work, not after.

step 1 · same day
Diagnosis
You describe the problem. I look at the store and come back with what is actually wrong — usually not what the previous developer said.You describe the problem; I look and come back with what is actually wrong.
step 2 · in writing
Estimate
A fixed price and a date before anything is touched. If the job turns out bigger than it looked, you hear it now, not at the invoice.Fixed price and date before anything is touched. Surprises now, not at the invoice.
step 3 · staged
The work
On a staging copy where possible, with a backup always. At the end a short note: what changed, why, and how to check it yourself.Staging where possible, backup always, and a short note at the end: what changed and how to check it.
04 — contact

Tell me what is wrong with your store.

Or what you would like it to do next. A reply within one working day — with questions, or with a price.