Anton Kolodnitskiy

User account for dealers for a B2B Company website

At first glance, They seem to look like online stores, having the same features - goods, orders, personal accounts, and so on. But if you look closely, B2B sites have their own important/separate features, which we talk about in another article. 

We are often approached with requests to implement such websites - to make them functional,  easy to use and aesthetically pleasing. Websites we are proud to show off!

We have everything required for high-quality implementation of such projects

  1. Experience - integration and MVP (minimum value product) first, then everything else, one after the other. We have tried implementing a couple features concurrently, but we didn’t like the result.
    Usually, one feature depends on others, and if changes are made to one,the others would require modifications too.

  2. Corrosive managers - they will find out all the features of your business.

  3. Experienced programmers - certified by Bitrix. “well-trained”.

  4. Bitrix integration specialists- integration of portals with management systems, accounting and payroll systems, etc.

Not to say that the design and production of B2B personal accounts is a very emotional one and requires a lot of creativity, but patience and attention to detail are the most important here. Almost always, behind such projects is a large-scale established business, without new social networks. So, to understand that our work will bring real benefit is worth a lot. 

And an added bonus, usually such projects do not involve long conversations "on design", this is an advantage :)

In this article, we will talk about such a project - a personal profile/account page for GRASS dealers. Real business, a clear task, good implementation!

A little background

Our client is GRASS - A large manufacturer of auto chemicals and cleaning products:

  • 36,000 tons of finished products per year;

  • 130 items of professional car care products and 94 products for professional cleaning;

  • Products are sold in more than 20 countries around the world, dealers operate in all major cities of Russia.

All car washes where I take my car have GRASS posters. However, I never meet car detailers like the ones on their websites. I have always wondered why ...

Source of data -  the grass.su website, to which the product catalogue was uploaded once, a few years ago. The purchase procedure was designed, targeting the retail purchaser.

Tasks:

  1. To Integrate the website with 1C (goods, orders, implementation of plans by dealers);

  2. To Implement a personal account for dealers (order history, background information, plan tracking);

  3. To Implement a new ordering process adapted for dealers (they have special conditions of purchase and delivery).

1C in this article refers to a group of software developed by 1C enterprise. A few of them include 1C: Bitrix, 1C: Trade management, 1C: Accounting, 1C: Document flow, 1C: Salary and Personnel Management.
These programs are popular in the Russian business sphere and widely adopted.


Our solution

Limited iteration scope

We have a strong opinion that large projects should be broken down into stages. The first step is to launch only something without which the site (personal account in our case) will simply not make sense.

Iterative approach

After each iteration -there's a ready-to-use product

Often, on our side, as in this case, we set fixed deadlines, which cannot be moved. This made the client calm, knowing that everything was under control. What was important, then, was to start on time.When creating a personal account on a dealer website for GRASS, the situation was just like this. 

Here, I would like to say a special thank you to the project manager from our client, Assistant General Director for General Issues, Dmitry Malykhin, who fully supported the idea of ​​a reasonable simplification of the functionality. In response, we signed a “blood promise” to hand over the implementation for testing on time.


Required functionality

MVP (Minimal Viable Product)

MVP - Minimum Viable Product


The MVP included:

  1. Integration with 1C (accounting, websites, personnel management, etc):

    1. Uploading goods to the site;

    2. Uploading several types of prices to the site (prices for retailers and those for dealers);

    3. uploading orders from the website into 1C (only dealers' orders should be uploaded, orders from "retail" are not needed in 1C);

    4. Uploading "offline" orders from 1C (Orders which were placed via phone call to the manager should also be reflected on the site);

    5. Uploading information about mutual settlements from 1C (information about the fulfilment of plans, debt, bonuses, shipments, etc.).

  2. The process of placing an order for a dealer:

    1. Add a Widget for adding bulk items to the cart.

    2. Checkout with a choice of legal entity and warehouse. The choice of warehouse affects the total order amount.

    3. Ability to choose payment terms, which in turn determine order value. Moreover, in 1C and on the website, the terms of payment and the order itself must go through two separate accounts.

  3. Dealer's personal account:

    1. Order history with filters, basic information and the ability to download an invoice.

    2. Order page with all detailed information.

    3. List of payment profiles of the company.

    4. Fulfilment of plans - complete information about the fulfilment of plans and statistics on mutual settlements.

    5. Region and About the company - information sections.

 

Integration with 1C systems

Integration with the accounting system is always the most painful part of such projects. It literally feels as though you and the 1C specialists from the customer's side are digging many tunnels towards each other. It seems that there is a technical specification, and what to do is understandable, but joyful "meetings" without a dozen iterations of edits are rare. Usually, you get two tunnels, and you often have to look for each other in them.

Successful integration with 1C

Representation of a Successful integration with 1C.


We've got a lot of tricks on integrations and we know how to make the process easier:

  1. Describe everything in detail in the Technical Specification. Yes, we know, it sounds cliche, but many problems can be avoided by simply decoding the phrase "Organize an order exchange with 1C". 

    1. Should “ALL” orders go to 1C? 

    2. How should additional order data be transferred?

    3. What should be the mechanism to withdraw a 1C account? 

    4. Do we need to upload "offline" orders on the site? 

We ask a lot of tedious questions and fix everything. And then we save tens and hundreds of hours of work of programmers and 1C-issues.

  1. Do not allow a single number or line into the module grid or design into work until all participants sign in blood that they know where it is from. 1C specialists must also confirm that uploading this information is possible and does not take 30 days.
    An example of a "dangerous line" - Let's show the balances of different legal entities (companies) within the account of one client. And then, make an order, so that the account balance changes in real-time.

  2. Adhere to the standard exchange mechanism. If it is possible to stay within the framework of the standard exchange (without changing the .XML file format), then you need to strive for this by all means. Otherwise, the risks of "getting stuck" at the integration stage increase by a great magnitude.

  3. In case of errors, localize the problem as much as possible. The phrase "Uploading does not comply with the Technical Specification" will not help solve the problem. We always indicate in which node of the .XML file (this is the format in which exchange with 1C takes place) an error occurred. We respect other people’s time.

  4. Start integration only with a copy of the production database. It is better to sign a dozen additional NDAs and get access to a copy of the client’s production 1C than to understand before launching on production that the integration was with a hypothetical ideal database and that in the real 1C, there are a lot of empty fields and in general 200,000 products, which are not products in the real sense, but SKUs.

  5. Have a competent, experienced 1C specialist on the customer's side. This cannot be replaced by anything else.

To summarize, integration with an accounting system is always a risk. But we know how to work with this risk and how to minimize it.

In the project of the Personal Account for GRASS dealers, we took all these points into account. The integration took a significant amount of time from the total programming time - you have to understand that such integrations are always difficult and time-consuming.


In conclusion

A personal account for GRASS dealers was a pleasant and interesting project for us. We qualitatively solved an important, strategic task for an established, successful business. If you have such a task - contact us, we are not afraid of complex integrations and "boring" personal accounts.

And for dessert, a story about how simplicity satisfies a wise man.

While we were developing, we had to make sure that the site continued working as usual. We made a copy, deployed a server for development and started coding calmly.

And when it was time to deploy our code on the production site, it turned out that the store had been transferred to a new Bitrix platform by another contractor, Just like that. And they forgot to inform us.

We found an old backup, restored everything, but it would have been better if we didn’t have to go through this process. Now in the checklist for the start-up discussion of the project, there is one more item “Discuss transfer to a new platform”.

So we also make mistakes. And then we diligently convert them into experience.

  • 23.07.2021