---
title: "Ruralka, a project that seemed impossible turned into reality"
description: "First contact. At the beginning of 2021 we started the conversations with Rafael Ausejo, the owner of Ruralka, to begin giving shape to his new project ahead of Ruralka’s twentieth anniversary, which fell in 2022: the complete redesign of its"
url: https://artprojectgroup.com/ruralka-a-project-that-seemed-impossible-turned-into-reality
date: 2023-02-20
modified: 2026-10-02
author: "Art Project Group"
image: https://artprojectgroup.com/wp-content/uploads/2022/11/ruralka.webp
categories: ["Cases"]
tags: ["Clients", "Web design", "Web programming", "WooCommerce", "WooCommerce plugins", "WordPress plugins"]
type: post
lang: en-US
---

# Ruralka, a project that seemed impossible turned into reality

[![Ruralka](https://artprojectgroup.com/wp-content/uploads/2023/02/ruralka.webp)](https://artprojectgroup.com/wp-content/uploads/2023/02/ruralka.webp)

#### First contact

At the beginning of 2021 we started the conversations with Rafael Ausejo, the owner of [Ruralka](https://www.ruralka.com), to begin giving shape to his new project ahead of Ruralka’s twentieth anniversary, which fell in 2022: the complete redesign of its brand, of its website and of the customised CRM that his company uses for its internal management.

Rafael was not very clear about how to tackle such a huge task, but he was very clear about one thing, and that is that **APG** had to be part of it, and the utmost confidence he places in us is always something to be grateful for.

The task was no small one, given that both his website and his CRM were developed completely bespoke on Laravel and had undergone countless modifications over the years with no single criterion, had passed through different hands and was dragging along various technical problems that were never completely solved, which made it a genuine poisoned chalice.

After considering the creation of the whole project on WordPress, this option was finally ruled out and in mid-2021 it was decided to redo the CRM from scratch on Laravel and the website on WordPress. For the first, Rafael entrusted the task to our mutual friends at [Gestazion](https://www.gestazion.com), with whom we had previously developed a couple of projects. The design is entrusted, as is the norm with Rafael, to [Studio Adamowich](https://adamowich.com), with whom we had already worked before on other Ruralka projects: [Ruralka On Road](https://ruralkaonroad.com), [V-Strom On Road](https://vstromonroad.com) and the now defunct Moto Guzzi V85 project.

#### The adventure begins

In December 2021 the mammoth task begins of creating a completely renewed, optimized and improved CRM, and a completely new website but keeping the original content almost intact, and all of it without forgetting that Ruralka’s activity would have to be kept absolutely normal until the project was finished.

The process of creating the website has been very complex and laborious, since we have had to work in the wake of the development of the CRM and of the completely customised API that has been developed. The first thing we did, after tackling the layout of the web design proposed by Pablo Adamowich, was to build a small interpreter script in PHP that took care of importing all the news items and images of the blog from the Laravel database to WordPress. This importer had to do its job until the very last day before opening the new website to the public.

Then we tackled the task of making the passwords of the Laravel users compatible with those of WordPress, for which we changed the native MD5 of the hashes of the WordPress databases for the native bcrypt of Laravel, which made the import and the compatibility of the original hashes easier for us. We initially tackled this task with another small script that imported the information directly from the Laravel database, since the customer management would later be integrated into the API that was being developed.

We continued with the task of customising WooCommerce in general and its products in particular in order to adapt them to the not few peculiarities that the project poses for us. Among them the following stand out:

- The products are linked to a list of hotels where the purchased product can be enjoyed.
- The products have a series of custom fields that obtain specific and unique information for each one of them.
- The variable products have had to be turned into fake simple products linked by a set where each one has its own custom description, its own list of hotels, its own custom fields and its own image gallery.
- Virtual products that can be physical depending on the type of product the customer selects. Here the easy thing would have been to create an attribute and product variations, but we could not do it that way as we had to treat them as fake simple products, so we finally added a custom field and, according to the value it takes in the cart, we change the WooCommerce product type: virtual or physical. Besides, one of the two available shipping costs has to be added to the physical products.
- The products can be a gift, for which a series of additional information has to be requested in order to customise it. In the event that the product is virtual, an email address also has to be requested in order to send it. For this we created a customised [plugin for WooCommerce](/woocommerce-plugins) that takes care of managing these new emails.
- The products generate vouchers in real time and send customised and unique emails for each unit of product purchased, which are sent to the buyer and/or to the recipient of the gift. Therefore, if X units of a product have been bought, X unique emails are sent with the voucher generated for each unit and product.
- The emails are completely customised and the image of the product that is included is exclusive and different from its featured image. The first we solve with a plugin from the public repository, the second with completely customised code.
- All the products, including the variations and excluding the variable products, had to generate their own landing pages where specific information and the list of the hotels linked to each one of them had to be shown. For this we developed a specific dynamic template that took care of gathering and displaying the appropriate information in each case. That said, keeping the URLs that were being used until now.

And lastly, a series of completely customised CPTs and taxonomies are created to house all the elements we needed: hotels, wineries, spas, promotions, gift packs, activities, offers, getaways and territorial areas. We also had to create a good number of customised templates to lay out each one of the new CPTs and their taxonomies, and to display all the customised content they have stored in different custom fields that we have had to build according to the needs of each one of them.

Another point we had to tackle was the import of several thousand customer reviews that Ruralka treasured in its own database, so once again we had to build a script that took care of reading and processing that information in order to import it with the new data structure that we needed in the hotels we had created in WordPress. We also had to build a specific dynamic template to make it easier to review the hotels listed on the new website. For the management of the reviews we have used a plugin from the public WordPress repository.

From here on we had to wait for the development of Ruralka Manager, the name the CRM has finally taken, and that of its API to move forward in order to be able to build a [plugin for WordPress](/wordpress-plugins) that takes care of synchronising a good amount of data in real time:

- *Sets, products, hotels, wineries and spas*: Every time a new element is created or any field or image is modified in Ruralka Manager, a webhook is fired that notifies the change to our plugin and, through its API, imports in real time all the information needed to create or update the element in WordPress. A complete daily synchronisation is also carried out through Action Scheduler so as not to affect the general performance of the website and to make sure that no piece of data has been left mislaid.
- *Customers*: As in the previous case, we can create or update the data of the customers of Ruralka Manager, but we also send the data of the new customers from WooCommerce in real time. They are also updated daily through Action Scheduler.
- *Vouchers*: Ruralka Manager generates a series of vouchers for each unit of product purchased. The plugin takes care of generating them via the API and storing them in the order data so that they can be used in the email that are generated with the completed order status.
- *Orders*: We send the WooCommerce orders to Ruralka Manager in real time.
- *Contacts*: We send to Ruralka Manager in real time the email addresses that are signed up to the mailing list.

As if all this work were not enough, we have also had to build a good number of customised elements for Avada Builder, the visual editor of Avada, the premium theme we have used in this project. We have had to take exquisite care with the URLs so as not to modify the previous rankings in any way, and they number in the thousands. We have had to build a good number of data importers for each one of the CPTs not managed from the API, which have taken care of reading the original Laravel information and modifying it to make it compatible with the fields and relationships we have created in WordPress.

#### Mission accomplished

It is therefore not surprising that it has not been until 29 November 2022, eleven months, some dozens of thousands of lines of 100% customised code and almost 400 hours of work after starting the project, that the new website could be opened to the public. These last three months we have been finished off polishing details and solving small problems that have been arising, and as of today we can say that the project is already solid and stable.

Even after all the road travelled there is still a lot of work pending, since we have yet to add the links between products, wineries and spas, to improve the linking of the mailing list with Ruralka Manager and to add the odd feature that has been left behind along the way, but since it is a living project we hope that in future extensions we will finish what we have left and we will add new features.

All in all, we find ourselves before the most important challenge we have faced and the one we are proudest of to date, basically because of the technological challenges we have had to face in order to tackle them.

**Thank you, Rafa, for your confidence!** Now to dream up the next project.
