CoverUp is the textile brand of SIA “Mix Max”. Mix Max makes exhibition stands, flagpoles and large-format print, and we have worked with the company for ten years. CoverUp started during Covid as a side line, and today it has its own seamstresses and machines in Riga, on Augusta Deglava street. That is where pillowcases, suitcase covers, shower curtains, rugs, sports shirts and graduation sashes get their sublimation print. The store has more than 400 ready-made designs, and every product can also be ordered with your own image. On 21 October 2026 we launched the new coverup.lv, rebuilt from scratch on WordPress and WooCommerce.
Two buyers in one store
Most CoverUp products are ready in stock, and when a design runs out, the seamstresses quickly make it again. These items are often bought as a gift or on impulse, so the buyer needs to find a design, understand the size and pay without extra steps.
The other buyer wants a pillowcase with a family photo, a rug with a company logo or team shirts with names. They need to send a file, get a price and approve a visualisation before production. Both buyers have to find their own path in the same store without getting in each other’s way.
We built the previous CoverUp store too. Over the years it had grown to more than 400 products, and sizes, materials and care were written into the descriptions as free text, each one slightly differently. To work out which size fits, a customer had to read the description to the end.
Timing mattered too. The new store went live at the end of October, just before the Christmas season, when gift orders have to be placed by 14 December. The rebuild could not cost either Google positions or orders.
Planning: data first
We started with the old store. Through its public WooCommerce interface we read every product, variation, category, article and legal page and drew up a list: what to move unchanged, what to tidy up and what to turn into a separate field. The structure of the new store came out of that list.
The catalogue kept its 11 product types, while the themed selections (Sale, Good gift, Christmas, Valentine’s Day and Latvian accents) became collections. A product lives in its own category and also appears in a collection, so someone looking for a gift and someone who needs a size L suitcase cover end up at the same product.
Sizes, materials, care and lead time became separate fields. They can be shown on the product page, in the cart and in structured data, and changing a lead time no longer means editing 400 descriptions.
For checkout we chose buying without an account. CoverUp items are often bought as a gift or one at a time, and a password would only slow the order down. The wishlist is stored in the customer’s browser, companies can enter their details for an invoice, and we ask for an address only when a courier is chosen.
The plan covered addresses too. Every product kept its old address, a few old pages lead to the new ones with 301 redirects, and the old domain masko.lv now points to coverup.lv.
Design: printed and sewn in Latvia
The old store was light and quiet: a slider, a product grid and category icons. The new one has a dark background with yellow and red accents, and it is built on what sets CoverUp apart from a reseller of imported goods: everything is printed and sewn in Riga. The homepage opens with a video, and a frame next to the headline swaps in a different product every four seconds. Details from the sewing workshop (a tape measure, scissors and a cutting mat) return in the custom orders section.
The homepage follows the way people choose. First come the product types with the number of designs and the lowest price, for example “Pillowcases, 93 designs, from €12.90”. Then the newest designs, a seasonal selection with an order deadline, collections, the sale, a custom order in three steps, a short company story, FAQ and articles. In a category, products can be filtered by subcategory, size, price, discount and collection, and on a phone the filters open in a separate panel.
Development: our own theme and plugin
The store runs on WordPress and WooCommerce with our own classic PHP theme and no page builder. Pages are assembled from sections whose text and images CoverUp edits in the admin panel without breaking the layout. The store logic lives in a separate plugin, so it can be updated independently of the design. We wrote the code with AI tools, but people designed the structure and ran the checks, and only what we had tested ourselves went onto the live site.
- Size guides
- Ten guides with drawings and measurements in centimetres: for suitcase covers, pillowcases, underwear, sports shirts, rugs, bags, scarves, bottle covers, curtains and sashes. The drawings share one scale, so an S suitcase next to an XL looks exactly as small as it is. The guide rows are linked to the size buttons on the product page.
- Lead time
- Each product can have its own lead time in working days or use a default by product type. It shows on the product page and next to each item in the cart.
- Your own design
- For custom products the buyer drops a file right on the product page: JPG, PNG, PDF, SVG or AI up to 30 MB. For a larger file they can paste a failiem.lv or WeTransfer link. SVG files are checked for scripts, and the files themselves are kept in a protected folder and open only through a signed link from the order.
- Request form
- Larger orders, such as rugs with a logo or team shirts, have a form with product type, quantity, size and file. The request is saved in the admin panel, CoverUp receives an email with every field, and the customer gets a confirmation.
- Checkout and delivery
- Omniva, DPD, Venipak and Unisend parcel lockers in Latvia, Lithuania and Estonia, grouped by city, a courier in Latvia and pickup at the Riga office. Payments go through MakeCommerce with bank links and cards. The top of the checkout shows which step the customer is on.
- Order statuses
- Two new statuses with CoverUp-branded emails: “Shipped” with a tracking number and “Ready for pickup” for orders collected at the office.
- Variation images
- Pillowcases come in square and rectangular shapes. The plugin reads the proportions of the product outline and matches each shape with the right photo from the gallery, so choosing a shape also changes the image. If an image is set for a variation by hand, the plugin leaves it alone.
- Migration
- All 422 products with their variations, the categories, 10 articles and the legal pages were moved with an import script. It pulled technical data, care and lead times out of the free text and sorted them into fields. Product addresses stayed exactly the same.
Open the product pageSo that Google finds the store
Every product has its own meta description with the name, the price and the start of the description. When the sale section has a product with the same name as the regular range, for example a non-standard size suitcase cover, the descriptions differ. The code carries structured data: Product with brand and price, Store with the legal name and opening hours, FAQPage for the homepage and custom order FAQs, and BreadcrumbList on categories and products. After launch Lighthouse gave 100 points for SEO and best practices and 97 for accessibility.
Images are stored as WebP, the main homepage image and video load first, and on pages without the cart or checkout jQuery is deferred so it does not hold up rendering. We set exceptions in the caching plugin so optimisation does not break the store buttons, and the cache clears itself after a theme update.
Server setup and launch
We built and tested the store at a separate test address closed to search engines, so Google never saw two identical stores. The setup is written in code: one command installs the plugins, WooCommerce settings, languages, pages, menus and delivery methods step by step. That is why the test and live environments are configured the same way, and nothing depends on someone remembering to tick the right box.
CoverUp runs on our Hostinger server with PHP 8.3. On 21 October the store moved from the test address to coverup.lv: a one-off script replaced the addresses in the database without breaking WordPress serialised data, the test address stayed closed to search engines, and masko.lv started pointing to the new store with a 301 redirect.
For security we set up a firewall, moved the admin login to a different address, enabled two-step login and removed unused plugins and themes. Part of the protection also lives in our plugin, so it keeps working even if someone switches the security plugin off. Order emails go out through SMTP so they do not land in spam, and cookies are handled by a consent banner with a reject button.
Technical support after launch
For the first weeks after launch we watch the store ourselves. The first fixes went live on launch day, and the next evening we went through the whole store once more. Every fix is written into the plugin as a one-off step that runs by itself after an update, so it is always clear what changed and when. While the store settles in, a bar at the top shows a phone number in case something does not work for a customer.
CoverUp handles everyday content itself. The store’s content editor has her own role and can update products, prices, articles, pages and images with help from Claude. For this role Claude may use only those tools: PHP, files, design, settings and users are off limits, and the restriction is checked in two places. A new product or price can therefore be added without a developer, while the code and the server stay our responsibility. We also offer this kind of monitoring as a separate maintenance and security service.
The next step is languages. English, Russian, Lithuanian and Estonian are already set up in the store and appear in the language menu marked “coming soon”. Until the translations are checked, their addresses lead to the Latvian version with a temporary 302 redirect, and hreflang lists only Latvian. Google does not index half-finished pages, and switching the languages on will not require a rebuild.
What we learned
Ready-made products and your own design need different paths
A buyer wants to get a ready-made product without back-and-forth, while a custom order needs a file, a price and approval. At CoverUp ready-made products go through the cart, custom products through the product page with a file upload, and larger orders through a separate request. Nobody fills in a form meant for the other buyer.
400 products move with code
Moving them by hand produces errors: a variation goes missing, an address changes, an image ends up on the wrong shape. The import script moved every product the same way. When we did find an error, for example sea-themed pillowcases had lost their shape option, we fixed it once for all products.
Open languages when they are ready
We set up five languages at once but opened only one to the public. A half-finished translation in search does more harm than a page that does not exist yet, and a temporary redirect lets the languages be switched on without another rebuild.
What you can repeat in your store
- Keep lead times and sizes in separate fields so they can be shown on the product page and in the cart
- Give ready-made products and custom orders separate paths
- Place the size guide next to the size selector
- Let people buy without an account if they buy rarely or as a gift
- When rebuilding a store, keep product addresses or prepare 301 redirects
- Close the test environment to search engines
- Open languages only once the translations are checked
Check for yourself
Everything you've read about is live. Open coverup.lv and explore these sections yourself.
Frequently asked questions
How much does it cost to build an online store?
An online store starts from €1,490 + VAT: the Start package with checkout without registration, parcel lockers and online payment. For a store with its own theme, size guides, file uploads and data migration from an old store, we price the work by specification. The packages and timelines are on the online store development page, and we covered the costs in more detail in How much does an online store cost.
Can an online store be rebuilt without losing Google positions?
Yes, if product and category addresses stay the same or every old address leads to the matching new one with a 301 redirect. All 422 CoverUp products kept their addresses, and old pages that the new store does not have lead to the closest matching page.
Which parcel lockers and payments can be added?
In the Baltics we usually add Omniva, DPD, Venipak and Unisend parcel lockers, a courier and local pickup. For payments we use MakeCommerce or another provider you have a contract with, with bank links and cards. The store loads the list of parcel lockers automatically and sorts it by city.
Will we be able to edit the store content ourselves?
Yes. You edit products, prices, articles and page text in the WordPress admin panel, and the design does not break. If you like, we also set up secure Claude access where AI can change only content, not code, settings or users.




