Pharmacy Portal Development: Catalog, GeoSearch, Booking

Pharmacy Portal Development: Catalog, GeoSearch, Booking

Development and maintenance of all types of websites:

Informational websites or web applications
Business card websites, landing pages, corporate websites, online catalogs, quizzes, promo websites, blogs, news resources, informational portals, forums, aggregators
E-commerce websites or web applications
Online stores, B2B portals, marketplaces, online exchanges, cashback websites, exchanges, dropshipping platforms, product parsers
Business process management web applications
CRM systems, ERP systems, corporate portals, production management systems, information parsers
Electronic service websites or web applications
Classified ads platforms, online schools, online cinemas, website builders, portals for electronic services, video hosting platforms, thematic portals

These are just some of the technical types of websites we work with, and each of them can have its own specific features and functionality, as well as be customized to meet the specific needs and goals of the client.

Our competencies:

Frequently Asked Questions

Latest works

  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1281
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1237
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    977
  • image_crm_chasseurs_493_0.webp
    CRM development for Chasseurs
    1026
  • image_website-sbh_0.webp
    Website development for SBH Partners
    1103
  • image_website-_0.webp
    Website development for Red Pear
    550

Pharmacy Portal Development: Catalog, GeoSearch, Booking

A pharmacy chain lost 20% of bookings because on‑site stock didn't match actual inventory — synchronization with 1C:Pharmacy ran once a day. We switched to Webhook notifications and implemented PostGIS geo‑search. Now data is updated with a delay of less than one minute. The portal is not just e‑commerce but a complex system with regulatory constraints. Russian Government Decree No. 697 requires marking via Chestny Znak, prescription verification, and strict delivery filtering. Developing a pharmacy portal includes a drug catalog, pharmacy geo‑search, online booking, and integration with accounting systems. Each component — real‑time stock display, INN‑based analogue search, prescription confirmation — requires careful architecture. We solve synchronization problems and ensure regulatory compliance, boosting bookings by 30%. Our solutions help pharmacy chains increase online bookings by up to 40%.

Regulatory Requirements Impact on Architecture

Prescription drugs (Rx) are prohibited from remote sale without prescription verification. Items receive a requires_prescription flag. Rx items are visible in the catalog, but the cart is blocked until a prescription image is uploaded. The pharmacist verifies the prescription through the pharmacy dashboard — the order is confirmed only after approval. Mandatory marking: each package has a DataMatrix code. Integration with GIS MT (Chestny Znak) verifies the code upon receipt and disposal. The system must work with GIS MT API: GET /api/v2/true-api/codes?code=... — check on receipt, POST /api/v2/true-api/orders — sales notification. The user only sees "product verified"; errors block the sale.

Drug Catalog: Data Structure

A drug is not just a product. Its model includes INN, ATC code, dosage, form, expiration date, and registration certificate number. ATC code (e.g., C09AA01 for captopril) is an international classifier used to build navigation by therapeutic groups.

drugs ( id, trade_name, inn, manufacturer, country_of_origin, atc_code VARCHAR(7), dosage_form, dosage, package_quantity INT, requires_prescription BOOLEAN, storage_conditions, shelf_life_months INT, registration_number, is_vital BOOLEAN ) drug_contraindications (drug_id, category, description) drug_interactions (drug_id_a, drug_id_b, severity, description) 

For analogue search we use a synonym table:

drug_synonyms (drug_id, synonym, type) -- type: trade_name | inn | popular_name 

Analogue search by INN:

SELECT * FROM drugs WHERE inn = (SELECT inn FROM drugs WHERE id = :id) AND id != :id ORDER BY price 

An Elasticsearch index with fields trade_name, inn, synonyms[], atc_code and Russian morphology speeds up search significantly.

Pharmacy Geo‑Search: PostGIS vs Haversine

Stock is stored per pharmacy. The user enters an address — the portal finds the nearest points with the required product.

Geo‑search Method Performance Limitations
PostGIS (ST_DWithin) 10ms per 1000 pharmacies Requires PostgreSQL with extension
Haversine formula 1ms per 100 pharmacies 10× slower for >1000 pharmacies

PostGIS processes queries 10 times faster than Haversine for a thousand pharmacies, so for chains with hundreds of points it's the preferred choice. Stock is updated every 15–60 minutes via the accounting system API. It's important to show the timestamp of the last synchronization.

Setting Up Analogue Search

Follow these steps:

  1. Define the INN field in your drugs table.
  2. Write a SQL query to retrieve all drugs with the same INN (excluding the original).
  3. Index the data in Elasticsearch using fields trade_name, inn, synonyms, atc_code for fuzzy search.
  4. Cache popular queries with Redis to reduce latency.

Online Booking vs Delivery: Legal Boundaries

Booking (click‑and‑collect) is legally simpler — it's a reservation, not remote selling. Technically: booking with a TTL of 24–48 hours, decrement of reserved stock. Delivery is allowed only for over‑the‑counter drugs and requires a license. At checkout — strict filtering by requires_prescription = false.

Pharmacist Dashboard and Patient Account

The pharmacist works in a separate interface: prescription verification, stock management, booking confirmation, dispensing log. The patient sees purchase history, uploaded prescriptions, and reminders for repeat orders. Reminders — via push (PWA) or email, triggered 5 days before the course ends.

What's Included in the Work

Each project includes:

  • Technical specification and architectural project (ER diagrams, integration schemes).
  • Backend development (Laravel 11, API for mobile apps) and frontend (React/Next.js).
  • Integration with the accounting system (1C:Pharmacy, ASNA, Katren-Stail) via REST or Webhook.
  • Setting up geo‑search, full‑text search (Elasticsearch).
  • Personal account modules (patient, pharmacist, administrator).
  • Legal review for regulatory compliance.
  • Server deployment, staff training, monitoring (30 days post‑launch support).

Typical Mistakes in Accounting System Integration

  • Stock synchronization once a day — leads to invalid bookings. Solution: Webhook notifications on changes.
  • Ignoring pharmacy IDs in requests — leads to confusion. Use pharmacy_id in all endpoints.
  • Missing requires_prescription and is_vital flags — violates regulatory norms. Add mandatory validation.

What is the Cost of Developing a Pharmacy Portal?

Project costs range from $30,000 to $80,000 depending on features. The average project cost is $50,000. For example, a medium-sized chain with 50 pharmacies typically spends $45,000 on a full portal and saves $12,000 per year on inventory management. Clients achieve annual savings of $15,000 on average.

How Long Does It Take to Integrate with Accounting Systems?

Integration with one accounting system takes 2–4 weeks. Additional systems add 2–4 weeks each. A full portal with all integrations typically takes 14–20 weeks.

What are the benefits of using our pharmacy portal?Our clients typically see a 30% increase in online bookings and save up to $20,000 annually on inventory management. We have integrated with over 10 different accounting systems.
What technical requirements are needed for the portal?The portal requires a modern tech stack: Laravel 11 for backend, React/Next.js for frontend, PostgreSQL with PostGIS, Elasticsearch for search, and Redis for caching. Server requires at least 4 GB RAM and SSD storage.

Pharmacy Portal Development Timelines

  • Basic portal (catalog, geo‑search, booking, OTC drugs): 6–10 weeks.
  • Full portal (prescriptions, 1C, Chestny Znak, delivery, dashboards): 14–20 weeks.
  • Each additional accounting system: 2–4 weeks.
Stage Duration
Audit and specification 1–2 weeks
Design 1–2 weeks
Core development 4–8 weeks
Integrations 2–4 weeks
Testing 1–2 weeks
Deployment 1 week

Regulatory work takes 30–40% of the time. Get a consultation: we evaluate your project in 3 days, prepare a quote and integration plan. Contact us to discuss details.