Online book store: authors, series, publishing houses
The development of an online book store rests on data, not on layout: the same book must be found in four ways - by author, by series, by publisher and by topic. We make such a store on OpenCart: attributes are placed in fields, pages of authors and series live at separate addresses, prices of suppliers are summarized by ISBN. The search searches by last name and part of the name, not by exact entry. We name the amount after a free audit of your prices — it would have been a guess before him.
ISBN; without it, some of the items are raised by hand
The key to price comparison
25-50
Term
working days from approval of technical specifications
3.9
Duplication of addresses we measured
addresses per product in the tool shop
554
Category page with 100 products
KB of HTML in a measured store
after free data audit, 3-5 business days
Price
50%
Conditions
down payment, 2 rounds of edits, 30 day warranty
Who it's for
Situations where this service delivers results
Scenario 1 of 4
The bookstore works offline, and orders come in Direct
The seller takes a photo of the cover, checks the availability by phone and writes down the address of the branch in a notebook. The store transfers this work to the checkout: the buyer sees that the book is available, chooses a department and pays. The manager receives an order instead of a three-message correspondence.
We'll review your situation in a free audit
Scenario 2 of 4
You are a publisher and sell your catalog next to someone else's
You know your own editions to the page, but partner books come at different prices. It is not the design that wins here, but the summary: the shared ISBN key, the arrangement of attributes by fields, and the rule of what to do with a position that is not in any of the sources in its entirety.
Scenario 3 of 4
The store already exists, but the buyer cannot find the book
A typical picture: the title, author and publisher are one text in the description, so there is nothing to gather the filter from, and the search works according to the exact entry and is silent on any error. This is a problem about data model and search, and it is solved without redesign.
Scenario 4 of 4
Niche bookstore: children's, professional or foreign languages
Here, the buyer comes with a very narrow request — the child's age, specialty, original language, proficiency level. Such requests are closed not by categories, but by attributes and landing pages under the filter, and they should be included in the structure, and not added later.
What's included
Complete list of work and what you get as a result
Catalog by topic and age audience with a filter by language, binding, publisher and year — the buyer himself narrows down thousands of titles to ten
Pages of authors and series with separate addresses with a list of items - the book is most often searched for by last name
Publisher pages with logo and full book list - separate entry for those who collect by publisher
A card with ISBN, pages, format, original language and translator as fields - fields are used to filter, description is not used
Internal search by author, title and part of word with hints as you type
Reprints and bindings with one card with a choice of variant and canonical to the main address — so that the book versions do not compete with each other
Import of prices by ISBN with the layout of attributes by fields — novelties are started by themselves, availability is updated according to the schedule
Covers: separate sizes for the list and for the card, modern formats, delayed loading
Blocks "by the same author" and "from this series" in the card are the main way to the second position in the basket
Payment and delivery: online card, cash on delivery, Nova Poshta, Ukrposhta, self-delivery
What's not included — so there are no surprises at delivery
Writing annotations and editorial reviews
Rights to use descriptions and covers from publishers
Sale of e-books with copy protection
Post-launch advertising
Hosting, domain, acquiring
Free book catalog audit
The bookstore lives on other people's data: descriptions, covers and availability come from publishers and distributors. The audit looks at their condition and how much work is needed to compile them into a catalog in which the book can be found.
What we measure
Data sources and their formatHow many suppliers, in what form they give the price, whether there is an ISBN and whether it is the only key. This answer depends on whether the filling will be automatic or manual.
Completeness of attributesAre author, publisher, series, language, year, binding, and number of pages separate fields. Without it, the filter will not be assembled, and there is nothing to build pages of authors and series.
Dubs and reissuesHow many items are the same book in a different binding. In the tool store we measured, each product was on the sitemap an average of 3.9 times under different category paths.
CoversAre there images for each item, in what resolution are they and how much do they weigh. The cover is the only image of the book and is what makes the category page difficult.
Search statusDoes internal search find a book by author's last name, title part, and typo. Now we check whether it gives a full output - we measure the size of the catalog with it.
Directory speedFirst server response and category page weight. For reference, in the store we measured, a category with 100 products weighed in at 554KB of HTML alone.
What you get
Data document: list of sources, completeness of attributes, evaluation of duplicates and reprints.
The scheme of the future catalog: sections, series, pages of authors and publishers.
Evaluation of filling works: how many items will go automatically, how many will have to be added by hand.
Conversation for 30–40 minutes on the document.
Timeline: 3-5 working days
Why is it free
Because in books, mistakes are not made on the typesetting, but on the data: the supplier's price appears without an ISBN or without authors, and half of the catalog is not filtered after import. You can see this only on real files, not from the wish list.
What's next
After the audit — the amount and term by stages with dates, contract, invoice, report. We work both with the Ukrainian market and with customers from the EU.
Short form: your contact and site URL
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.
Sole proprietor & bank transfer
The contractor is a registered sole proprietor. Payment by invoice with closing documents.
Rights & access — yours
Code, design and materials transfer to you after full payment. Domain, hosting, repository and analytics are registered to you.
Client portal instead of email chains
During the project you get access to a portal: contracts, invoices, acts and project status in one place.
European clients
Among our work — projects for Norway, Bulgaria, Moldova and Spain.
Verifiable numbers
Every case in the portfolio comes with a link to a live site and a technical measurement.
Audit first, then pricing
There is no price list on the site intentionally: the scope of the same work differs multiples between clients.
We say "no" when unsure
If the task isn't ours or the deadline is unrealistic — we tell you upfront.
What affects the price
Why two seemingly identical tasks are priced differently
How many data sources and do they have ISBNsOne price with ISBN is field mapping and update schedule. The four sources where the ISBN is filled in selectively are also the rules for matching by title and author and manual proofing of the tail that did not match.
Completeness of attributesIf the author, publisher, series and binding are already in separate columns, the filter is collected in a day. If all this is in one paragraph in the description, it has to be analyzed by a parser and checked selectively by hand.
Share of reprints and variantsThe "one book - one card with choice of binding" rule is cheap as long as there are two options. When there are five of them and in some parts different translators, a separate job appears: to decide where the line is between a variant and an independent publication.
How many authors, series and publishersEach of these entities is a separate landing page with a description and a link. Two hundred authors and twenty series are collected by the generator; five thousand authors want a template that won't turn into five thousand blank pages.
Where do the covers come from?Finished images in machine form is the preparation of dimensions and format. Covers that need to be pulled link by link or scanned become a separate line of the estimate and a separate term.
SearchThe regular search of the platform is included in the work. Full-text with morphology, fuzzy collation, and hints is a stand-alone revision with an index, and it pays for itself faster in the bookstore than anywhere else.
Process steps
Transparent stages with approval at every step
Total duration:25–50 days
1
Data audit and technical assignment
3-6 working days
We look at the prices as you receive them and fix the model of the book: what is a field, what is an attribute, what is an option. The estimate is calculated from this document and the work is accepted.
2
Directory structure and landing entities
3-5 working days
A tree of sections, a set of attributes for the filter, a list of pages of authors, series and publishers, the canonical rule for publication options. We agree with the design — it is expensive to redo the structure after layout.
3
Design
5-9 working days
Home, category, book card, author page, cart, checkout. Here we fix the target weight of the category page: covers make it the heaviest on the site.
4
Assembly of the store
6-11 business days
Theme layout, catalog and filter, card with edition fields, shopping cart and checkout, admin roles, payment, delivery and return pages.
5
Summary of prices and filling
4-10 working days
Mapping the fields of each source, mapping by ISBN, test filling, comparing the number of cards by two methods, a list of items that did not match and will go hand in hand.
6
Search, payment, delivery, analytics
2-5 working days
Full-text search index with morphology and hints, payment modules, carriers, GTM and GA4 with cart events, JSON-LD Book and Product, sitemap.
7
Testing, transfer, launch
2-4 working days
End-to-end running of the order from the search to the TTN, checking the search for errors in the names, measuring the first answer and weight of the category, going through the administration with your manager.
Did not find your case?
Describe how it works on your side — we will tell you whether “Development of an online book store” 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
OpenCart 4.x - set by default; some of the Ukrainian modules are still available only under 3.x
OpenCart 3.x — when you need a module without assembly under 4.x; the branch is developed less
PHP, MySQL - on a catalog of several thousand names, the indexes have to be reviewed by hand
nginx, HTTP/2, HTTPS — speed removes the technical loss, does not increase the demand for the book
OCFilter — without canonical and robots, the filters produce thousands of almost identical addresses
Full-text search with morphology - works only on well-established names
WebP and deferred loading - the source cover weights from the vendor do not change
Integrations
LiqPay
WayForPay
monobank
postpaid
Nova Poshta
Ukrposhta
self pickup
import of supplier prices
XML feed to marketplaces
Google Tag Manager
GA4
Google Merchant Center
Meta Pixel
Instagram
Own bookstore against the playground and constructor
How this option differs from the alternative
Marketplace / SaaS designerOur approach
The author's page as a landing pagemarketplace: a filter inside someone else's issue. Designer: depends on the tariff, often not availablea separate address with a description, a list of publications and a link
Summary of several prices per ISBNmarketplace: your card requirements. Constructor: there is an import, there is usually no compilation of sourcesthe matching rules are yours, the tail is visible by name
Reprints and bindingsmost often separate cards that compete with each otherone card with options, canonical to the main address
Sales commissionmarketplace: a percentage of each order. Designer: subscription fee, grows with the catalogno, only hosting and acquiring
Contact with the buyermarketplace: the buyer belongs to the marketplacethe database, mailing list and order history are yours
Cases
Tasks and results in numbers — all metrics measured by us
online store of professional tools, catalog of over 6,000 SKUs
Task
Sell the tool to both the retail craftsman and the company with VAT: a catalog with filters by type, detailed cards and a checkout that closes the calculation methods common in Ukraine.
Solution
OpenCart, OCT Showcase theme, nginx. Two language versions, ten payment methods — from LiqPay and monobank to installments and cashless with VAT. JSON-LD OnlineStore with ContactPoint, PostalAddress and SearchAction.
Result
6,486 product pages and 361 categories. Measurement 07/31/2026: First response 671.2ms with 407.8KB HTML. The found defect, for which the case stands right here: the site map contains 25,537 entries for 6,857 unique addresses - each product is present on average 3.9 times under different category paths, and the map itself is generated in 34.2 seconds. In a bookstore, it's the same story: the book belongs to the author, the series, and the publisher.
a store of automatic irrigation systems with a catalog of 300 items
Task
Collect a small technical nomenclature, where the items differ only in diameter and type of thread, so that the buyer reaches the desired part.
Solution
OpenCart 3 on nginx with HTTP/2 and brotli. The directory is expanded to 4 nesting levels, OCFilter in categories, delayed loading of images, canonical on all types of pages.
Result
Measurement 08/01/2026: 300 products in 40 categories - the figure was agreed by two independent methods with a 0% discrepancy. The first response is 235 ms on the median of five measurements, the main one weighs 143.6 KB in HTML and 22.5 KB in brotli. A number that applies directly to books: a category page with 100 products weighs in at 554KB—almost four times the size of the main page—and that's just the markup, no images.
online store of professional cosmetics, catalog of more than 5 thousand SKUs
Task
Maintain a catalog of several thousand items, which is constantly updated.
Solution
OpenCart, one language version, microdata Organization and PostalAddress, the platform's native search.
Result
5,561 products — calculated by regular OpenCart search, 55 pages of 100 plus 61. That is, the search gives a full output, and it can be used to measure the catalog; where he is silent, we honestly mark the size as unmeasured. The first response of 801.2 ms with a light 153.8 KB of HTML is the slow server part. Measured on 07/31/2026. Defects found: /sitemap.xml returns 200 with a body of zero bytes, there are no counters on the main one.
What we need from you
We can't start without this — best to prepare in advance
1Vendor prices are as you receive them — not reformatted "for convenience."
2List of publishing houses with which you work, and terms of availability.
3The solution to show reprints: one card with variants or separate ones.
4Markup rule and discount policy for pre-orders and new items.
5Access to hosting and domain or agree to choose hosting for you.
6One person with the right to approve the directory structure and layouts.
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
We have the same book in hardcover and paperback — are these two products?
Usually one card with a choice of binding: the title, author and abstract are the same, the format and price are different. Separate cards are justified where the edition differs in content - a different translation, an expanded edition, other illustrations. In the remaining cases, the second product creates a duplicate that competes with itself. We measured how it looks in a large directory: in the tool store, 25,537 entries in the sitemap led to only 6,857 addresses.
Is it possible to automatically pull the catalog from the supplier?
Yes, if there is an ISBN in the price, it works as a single key between sources. Then the new position is automatically started, and the availability and price are updated on a schedule. If there is no ISBN or it is filled out selectively, you have to match it by title and author, and the tail will still go hand in hand. Fair boundary: Exchange does not correct accounting. If the availability in the supplier's price list is inaccurate, the site will quickly and accurately show the inaccurate data.
Why separate author and series pages?
Because a book is searched for by the author's last name more often than by the topic, and the author's page answers this query better than the category. The second effect is relinking: from the card of one edition, the reader moves to the rest of the books of the same author, which is both the depth of viewing and the second item in the cart. There is also a limit: the author's page, which has a single book and no description, does not give anything - we do not produce such essences.
How to make the search find a book with an error in the title?
Full-text search with morphology and fuzzy matching, rather than exact-hit search that comes in the platform out of the box. Plus the prompts during typing — they close most of the mistakes even before sending the request. What search won't do: it helps someone who already knows the title or author. For a buyer who is still choosing, categories and a filter work, and both ways must be built.
There are thousands of covers, the category page is slow - what to do?
Prepare separate sizes for the list and for the card, give modern formats and postpone the download of everything below the first screen. The order of the numbers: In the irrigation store we measured on 08/01/2026, the main one weighs 143.6 KB of HTML, and the category with 100 products weighs 554 KB. This is the markup itself, without images. Therefore, it is usually not worth keeping 100 items per page in a bookstore.
How to sell pre-orders for new products?
A separate status of the item with the release date and a warning in the cart that the order will be shipped after this date. You should not mix pre-orders with existing books in one order: either the entire basket is waiting for the latest position, or the order must be divided. We choose the rule before development - it changes the checkout, and it is more expensive to redo it later than to agree on a brief.
And e-books and audio?
This is a different task and is not on this page. Selling a file is shipping links, licensing and copy protection, not warehouse and carrier. Technically, it is possible to sell a file in OpenCart, agreements with the copyright holder about the format and protection are not. If electronic publications are your main direction, tell about it at the very first conversation: it is not the module that changes, but the entire composition of works.
How long does development take?
25–50 working days from approval of technical specifications, seven stages. The main time is spent not on layout, but on data: layout of attributes by fields, summary of sources by ISBN, collection of pages of authors and series. If the prices come in machine form with full attributes, the term is at the lower limit. If there are four sources and their ISBN is selective, the upper one is the longest stage, and the compilation will be the longest stage.
Why is there no price on the page?
Because in books, the value is determined by the data, not the number of screens. A 2,000 title store from one vendor and a 20,000 title store from four look the same, but they work differently. Calling a fork before we've seen your prices is either playing it safe on the upside or promising an amount that you'll have to renegotiate later. Therefore, first a free audit for 3–5 days, then the amount and term by stages.
The answer is a data document: what is an attribute, what will go into the catalog automatically, what will have to be done by hand, and how many pages will come out of it. After it, we name the amount and term by stages. If you don't need the store right now, you will hear it in the first email.
From measured cases6,486 product pages and 361 categories
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.