#web_development #eCommerce_development #api_integration #sales #shipment_service

Project Description

Wine Awesomeness is a wine-lover community where users collect wine from all over the world and share their opinions about its tastes. It is constantly replenished with new wine collections, from the Wine Awesomeness community, which can be ordered for yourself, or as a gift for someone.  

Becoming a customer of the store, there is an opportunity to create your own wine cellar, for the collection of your favorite wine. You can look at the recipes you can make for a certain wine. Also, when buying a subscription, users can select 3 or 6 bottles once a month, every two months, or every three months. 

Project summary

Magento Full Stack developer, designer
eCommerce, sales
eCommerce development, API integrations
Business goals:
To create convenient functions for the site of the wine products community. 
Applied technologies:
PHP, MySQL, Magento

Business Challenge

Our client is engaged in extreme sports, and he enjoys having a nice time while consuming quality wines. He has a goal of sharing his wine collection with people, who also would like to spend time nicely while drinking wine. Our main goal is to create the most convenient features for users of the Wine Awesomeness community.

We need to give them full transparency of understanding how to participate in the community and make orders for the desired product without any difficulties. As well as having your own wine cellar in your profile, users can save the notes for themselves and other people about wines, rate the wine from 1 to 5, and add the feedback. In addition, they have the ability to see detailed information about the wine, read recipes, look at other people’s reviews, and decide if it makes sense to order it.


After discussing all the details of the project, we proceeded to develop all the required functions that included:
1. Wine cellar

We have created a personal wine cellar for users, where they can see the list of ordered products and search for them. Users who have a personal cellar and have the same ordered wine can see the feedback that has been published for this exact wine.

Users without a personal cellar and unordered current wine can’t see the feedback. In addition, they can add/delete/rate wines and add comments. Also, they can see a detailed description, other users’ rating, the composition of wine, and recipes with this wine that can be prepared.

There is an opportunity to register a new profile on the site with the help of the form and add the wines to the wine cellar in several ways: for example, by the order number or shipping address.

The system finds the wines tied with this order or shipping address (except the ones that already exist in the cellar). Then the user can add them all or just a few ones to the cellar. Besides, if some wine isn’t available in stock, it still will be displayed in the cellar. In this case, the “Buy More” button will be replaced with the “Notify Me” button, and now it works without reloading the page (AJAX).

2. Pronimbus integration

This is a shipment service. Our customer uses it to ship wines for buyers. The following elements of the client’s business logic are implemented within the framework of integration. They can send new orders in Pronimbus and have the ability to change the shipping address or cancel orders if Pronimbus hasn’t sent it yet. In case If an order has been canceled, they need to return the money to the buyer to his payment card.

We are getting reports of shipments from the service about sent orders (status and tracking information) by Pronimbus API and pulling it into Magento. After that, the buyers will get notifications about orders and how to track them. In addition, there is the ability to get information about remaining orders, because Pronimbus is also a warehouse system. It should be possible to run them manually from the admin panel and also automatically, several times a day at a certain time.

3. Extended Klaviyo integration

Klaviyo is a marketing platform. They have a module for integration with Magento. We have expanded this functionality according to the client’s requirements. Specifically, tracking of some events was added: for example, when we inform a buyer about the arrival of the commodity to the warehouse (“Stock Alerts” is what is done with the “Notify Me” button), the relevant information is sent to Klavio, which is then used for marketing campaigns.

4. Subscribe Pro

The store is integrated with the “Subscribe Pro” subscription service. But it didn’t work well, so we fixed this. Some functions did not work at all, some were performing for an unacceptable length of time. We made refactoring and optimization of code related to subscriptions. Also, the “Subscribe Pro” service allows users to create payment profiles of buyers. In the buyer’s panel, there is a corresponding section «Payment Methods», where you can manage your cards.

Besides convenience for the client (once entered, credit card data and further during the order making just choose which card you want to pay), it is also security, and this data is saved in the database of “Subscribe Pro”, not in Magento. We also did refactoring of this part.

5. Address Book (Amazon-style and Subscribe Pro integration).

The client liked the design and how it works with the address book in Amazon. We made and added the ability to delete an address, make the address default (billing and delivery) without opening (AJAX). But the main feature is to make an integration of the address book with “Subscribe Pro”.

To be more precise, the aim is to make it impossible to delete an address if it is linked with active subscriptions. In this case, there will be a notification “There’s an active subscription linked to this card. Add a new payment method here or deactivate your subscription here before you remove this card.”

If the default billing address needs to be changed, then it’s necessary to propose to update existing payment profiles too. The buyer chooses which ones.

And in the same way, if they want to change the default shipping address,  there is also a suggestion to change it in subscriptions.

6. Order Import

Our client started a business in dropshipping. He has partners who are ready to sell his wines through their websites. For this purpose, we have developed the possibility of importing orders and exports of shipments.

Everyday partners upload CSV files with their orders to the FTP to a specific directory. Every hour we check this directory and create orders in Magento. Also, we have made it possible to upload CSV files and execute importing manually in the Magento admin panel.

As soon as we receive the shipments on these orders from Pronimbus, we save them to a CSV file and send them to the partner company via email.  If the partner has an FTP, then we upload the file to their FTP server.

Delivered Results

During the period of development of 6 months, we developed all the required functions and received good feedback from the customer. All functions worked stable, and before the project was handed over to the customer, we had attentively checked all the developed functionality for the presence of bugs.

Also, a big part of the code was redesigned as a part of the optimization and bug fixing that we had gotten from previous developers. The site has become faster, stable, and we still support it. The client was satisfied by how fast all functions worked.

Subscription Answer
We use cookies to give you the best possible experience on our website. If you continue without changing your settings, we presume that you accept receiving all of the cookies on our site read more.