PrestaShop is an excellent ecommerce platform for B2C, but it offers few advanced features for B2B commerce, the first obstacle to the absurd is the B2B function itself. Going to Shop Parameters> Customer Settings , we find the item " Activate B2B mode ", merchants often activate it, but this functionality is not only useless, poorly designed and indicated to the foreign market but only creates confusion both in the customer and in the operator; confusion that often leads, especially in mixed ecommerce, to wrong choices. When in reality it would be enough to look at what marketplaces like Amazon are already doing to manage the needs of corporate customers.

Many obstacles mainly concern micro, small and medium-sized enterprises, the reference point of the CMS.
I remember what is meant by these terms:

  • a micro enterprise we are talking about companies with less than 10 employees and a turnover of up to 2,000,000 euros.
  • a small business is a company that employs less than 50 people and has an invoice of up to 10,000,000 euros.
  • A medium-sized company is a company that employs up to 250 people and invoices up to 50,000,000 euros.

Accuracy is a must even if we often talk about SMEs, the Italian productive fabric, not everyone is clear about what they are.

B2B User Registration

In mixed B2B and B2C electronic trades, it is required that the B2B customer can select the type during the account creation phase, and in case he chooses B2B it remains deactivated and has additional fields to fill in in order to request access to the price lists to he reserved. For this problem there are infinite third-party modules including ours in development.

However, I remain of the idea that the Amazon Business approach is much more correct, that is, a B2B user registers as B2C and then from his user panel, asks to be converted into a company account. This option integrates a set of functions that should be taken as an example. In pure B2B trades this problem is not posed, the user registers and then it will be activated by the merchant, in many cases the request is the creation of the reseller user and the sending of the access data to the same; all manageable by PrestaShop natively, however, the vital (for regulations) possibility of forcing the customer to change the password at first access is missing.

Hide the prices

In B2B e-commerce, the need is to hide prices from those who are not logged in. PrestaShop natively allows it, but an important function is missing, namely the ability to write on the product sheet, where there should be the add to cart button, which you need to log in to see the prices. It sounds like a trivial feature, but many B2B customers then call the merchant to ask why they don't see the price and why they can't buy the product. And all this for an expired session. There are several modules that offer this possibility and even a simple change to the TPL of the theme allows you to integrate it.

Also pay attention that prices are hidden everywhere, even when using third-party modules, it can happen that prices are visible in the search preview, related products and other parts of the ecommerce.

Font-end messages for B2B customers

One thing in great demand is to be able to view messages dedicated to a specific user group, even at the level of a single product. This feature will be present in our B2B module currently under development.

SDI and PEC fields

Although electronic invoicing is mandatory in Italy, there is no native solution by PrestaShop to integrate the SDI and PEC fields; there are many solutions, including our module, but each integrates that data differently, creating a very diverse ecosystem and the absence of a standard makes integrations more difficult. However, this data must be placed on the billing addresses not on the account as often many solutions for simplicity do. Unfortunately, a rule that prevents the modification of the ps_address table by adding the two PEC and SDI fields to it, precludes the publication on Prestashop Addons of the most valid, simple, widely integrated and robust solutions to manage this data that if it is true that they are not mandatory for the purpose of the FE, each B2B customer requests to provide them to the merchant.

B2B and management trade

The first problem in approaching B2B trade concerns integration with management systems, when we talk about B2B we immediately refer to large companies, which often use very complex management systems and more related to accounting management than to the warehouse. Often these management systems are also dated and do not offer modern integration possibilities. I am unable to use the PrestaShop APIs, nor the XML and JSON format, even though e-invoicing has brought a renewal in the industry. However, it is not uncommon to come across old systems such as AS / 400, or systems so outdated that communication can only occur via tab-based text files, which make you dream of the antiquated CSV format.

The PrestaShop APIs are a resource, which I talked about in: Basic Guide to the Prestashop WebService . However, there is no clear documentation, accompanied by examples that allow companies that develop management software, to know and use this technology, to connect their product to the CMS. It follows that many integrations are made with direct injection of data via SQL into the Ecommerce platform database, this solution causes infinite problems that does not concern only the reading of the data, the most common problems are the lack of execution of the PrestaShop hooks that activate different procedures when data is changed. For example, if we update a product, the CMS performs certain actions anchored in the update procedure. Actions that are often linked to additional modules which in turn update their data and perform other actions ranging from sending an email to customers who have asked to be notified when the product is available again, to deleting the data from the cache , until the new quantity is synchronized with the marketplaces. Direct data injection via SQL often causes referential errors that lead to unstable ecommerce or 500 errors that are difficult to resolve and take the store offline. This choice is due to the times, a more orderly and detailed documentation of the PrestaShop APIs could lead the developers of often customized management solutions to use them. Unfortunately, the open source and stand alone nature of the CMS prevents it from enforcing the APIs as SaaS platforms do, which deny direct access to the DB and are not subject to this wrong practice.

B2B customer price list management functionality

The need is the most common also concerns the mixed B2B and B2C e-commerce or the possibility of inserting multiple price lists and quantity discounts. There are no big problems here, PrestaShop allows you to indicate specific prices for customer groups, categories and quantity discounts. Even at the individual customer level. So no problem on this point with PrestaShop, certainly the fact that you can set up infinite price lists, and even a price list for each customer, can expose a merchant to abuse it and not to devote time to planning. The most common problem concerns the integration with the management system, few management systems allow you to use specific prices for reseller lists. And also Danea, which is currently well integrated in PrestaShop, is limited in the number of manageable price lists and does not allow a product to indicate multiple discounts / specific prices per customer group, for example if it is possible to manually indicate a price for a single unit and a price. for multiple purchase of a product by a reseller customer. No management software currently allows its management.

B2B partial order fulfillment management functionality

In B2B commerce, a very popular activity is the fulfillment of orders in partial mode. This function concerns the possibility that, once an order has been received, it is possible to select the products and relative quantities that are immediately processed and create a new order that presents the original order as a reference. This is the split of the order, i.e. the original order is modified with the quantities and products immediately shipped, the remainder is moved to a new order, which will then be managed by the merchant and customer according to their contractual agreements. 

Large Quantity Order and Quotation Functionality

In B2B trade, in some cases it is necessary to provide for the possibility of creating wholesale orders, this order is more like a request for a purchase quote, which will then be managed and finalized by the merchant and re-sent to the customer for approval. There are third party modules for this purpose, although not specifically designed for this functionality for example: Complete for Create a Quote in Frontend + Backend Pro

Checkout functions useful for B2B customers

The ability to add the following information to the order during Checkout:

  • Purchase order number
  • GL code
  • Cost center
  • Location
  • Project Code
  • Department

These are internal data of the customer making the purchase, often linked to the need for control and authorization of the purchase. These functions should be activated and manageable from the customer's corporate account. On this point, the system used by Amazon Business is valid as a guideline.

Of these functions, the possibility of sending the order as if awaiting approval is also interesting. However, this is an advanced functionality linked to B2B that are aimed at large companies. In this case, the need for multiple accounts (persons) authorized to purchase on behalf of the client company is also foreseeable. Therefore:

  • Central Account that has access to purchase settings and preferences
  • Multiple accounts that they can purchase on behalf of the company
  • Ability to impose payment methods and spending limits for each purchasing department.

Functionality of deferred calculation of shipping costs

In B2B e-commerce, especially abroad, the calculation of shipping costs is variable and very complex, often based on volumes and complex calculations for the formation of pallets. Customs duties and issues such as packaging diversity, for example Styrofoam, are prohibited in many countries. Especially by small wholesalers the possibility of receiving orders without selecting the courier is requested, and manually managing the insertion of shipping costs in agreement with the customer. There are modules for changing orders, but none are specifically designed for this problem and above all that has adequate functionality.

Another request that concerns large companies is the volumetric calculation of shipping costs, the complexity in this case is high and there are currently no valid solutions.

Here MBE's acquisition of PrestaShop should in my opinion lead to a highly integrated and advanced module for calculating shipments.

A module that uses API could have the real cost price, even for disadvantaged areas, could also be very useful in B2C electronic businesses, and push to select MBE over other competitors. A similar thing exists for UPS, but not for Europe.

Purchase analysis functions for B2B customers

In the case of B2B users, there is often the need to offer analysis on purchases and exports that are far beyond the PrestaShop order history.

In conclusion

PrestaShop is suitable for the B2B sector, but today it requires customizations to equip it with those essential features. It is true, however, that there are not many alternatives, competitors such as Magento or Woocommerce do not offer much more, on the contrary. B2B solutions are mostly customized, the majority related to management and in this case very scarce and limited. Today nobody can think of doing everything, if I deal with ecommerce platforms I shouldn't even have the time to think about creating an accounting management system, a sector in which I would not have sufficient experience and knowledge. Successful B2B ecommerce are tailor-made, but even using the PHP Laravel framework, development costs and time are unsustainable for micro and small businesses, and difficult to manage with market changes for medium businesses.

Those who know PrestaShop will have noticed that I have not mentioned the multi-store, a native function of the CMS, but complex and unreliable, since Monti in 2013 allowed the creation of mixed B2B and B2C businesses, without the obligation to separate the two activities, in multi-shop a B2B and B2C is just a useless complication.

Quoting Eric Steven Raymond, the clash between "the cathedral and the bazaar" shows all the benefits of faster open source projects in finding solutions and adapting to change. And this is still true today and even more so for e-commerce platforms.

Author: Loris Modena


Per Ind Loris Modena , owner of Arte e Informatica , he began working in the IT sector in 1989 as a system engineer in charge of the maintenance and installation of IT systems. He started programming for the web in 1997 dealing with CGI programming in PERL and then moving on to programming in PHP and JavaScript. In this period he approaches the Open source world and the management of Linux servers.

Product added to wishlist