Cargill implementation

Cargill is an American, global food corporation headquartered in Minnesota. Founded in 1865, it is the largest privately held corporation in the United States, in terms of revenue.
Case Study – Implementation of a B2B platform for a large, global company with complex integration, security and compliance requirements:

  • Large, globally distributed technology landscape presented a significant challenge
  • CStore identified as the only technology company capable of delivering a solution and awarded the contract, despite multiple bidders participating in the comprehensive evaluation
  • Delivered solution was thoroughly audited, highly scrutinized and required to meet stringent standards, certifications and SLAs
  • The platform had to be integrated with Cargill SSO (Single-Sign-On authentication) platform, while still allowing legacy authentication
  • The rollout required very complex deployment of the Cargill’s security monitoring components within CStore’s hosting infrastructure
  • Integration with Cargill’s ERP system was successful, despite substantial complexity
  • CStore has proposed and successfully delivered custom designed solution to meet, or exceed Cargill’s objective to establish e-Commerce B2B platform


A user must log in to access the customer portal. Anonymous authentication does not allow a person to use website services.

The system supports the following authentication methods:

  • External OKTA script,
  • Basic login form (“legacy”),

Primary authentication method can be configured in the environment settings file located on the server, in the project folder.

OKTA authentication::

The authentication process leverages external script. The system is designed to safely identify the customer.

The system also supports the legacy authentication process:

It allows for basic functionality that is offered by forms, including password reset:

Additionally, any selected video can be accessible from the login screen. It can provide advertising, or an instructional content. Any source:


After the successful portal login, the user is presented with the home page, containing a list of products. Basic system features can be accessed at the top of the page:

This area contains additional information, including balance and purchase limit. If the client has overdue invoices, or over 90% of available funds were already spent, he/she is informed about it by the changing colors of these elements.

Below is the standard system functionality, apart from the following features, which are not available in the basic CStore platform:

  • Since the system integrates with scales, the total weight of all products has been added to the cart ,
  • On the right side of the navigation bar there is a button allowing you to play any previously selected video clip. It functions the same way as the login page video button.

The content includes a list of products. It is loaded dynamically – when the customer scrolls down to the bottom of the page, an additional script is launched, which downloads the next portion of product catalog.

The list consists of two parts – the side panel containing categories and a list of products. After selecting a category, the list displays only a given selection. There are two tabs above the list of products – they allow you to either show the entire list of goods available to the customer, or filter them down to those that have already been purchased by your client.

Customer account

The customer account consists of two important elements:

  • Information about the client (the basic information required to issue an invoice),
  • Information about the suppliers associated with a given customer, maintaining delivery address info,


In the customer panel, it is also possible to preview the discounts currently assigned to the customer. The tab can be hidden (if we do not want to show such an offer).

In addition to discounts, we can show only a list of product prices that are visible to the customer. Please note that the customer only sees the products for which he/she has a price in this tab. Otherwise, the product is not available for purchase by that user.

The customer also has access to his finances and pallet balance, where he/she can view information about current receivables (invoices to be paid), transactions (cash flow), and the balance of pallets (how many are in his/her possession).


The order process

Going back to the home page, where the list of products is:

The product list has several dynamic elements. Starting with the name, clicking on it, brings an additional popup with information about the goods, including their description, etc.


Another field is used to track product by weight. Goods in this system are sold in three forms:

  • loose – where the customer can freely buy goods by weight (kilogram),
  • n bags – it is possible to purchase only multiples of specific quantity, determined by the package weight,
  • other – which is governed by similar rules as bags, but has different nomenclature (food bars for example,

It should be noted that, you can’t mix loose and packaged products in the same cart, since in most cases, these goods require a different type of shipping/transportation.

After entering the appropriate amount of goods and clicking on the „Add” button – the products are loaded in the cart and the customer receives confirmation of this action.

Additionally, the goods in the cart are highlighted in yellow on the list of products (to distinguish them from items not being purchased),

Also, the cart is updated with the new values.

The cart displays a list of products that are currently in it. The customer can modify the quantities, but should keep in mind that doing so will partially reset the final discounts (requiring re-pricing).

Below the list, there is a form for entering additional order information, including the following fields:

  • orms of transport (with two options: either the goods are transported by Customer Portal, or the customer will pick them up, leveraging their own transport),
  • delivery date (when the goods are to be delivered)
  • delivery address (where the goods are to be delivered; even if the customer has chosen their transport, this option is required for order tracking),
  • payment date (the customer chooses when he wants to pay for the order)

When selecting the delivery date, which is within three working days from order (including Polish holidays), the customer is informed, using a message, that his/her choice is contractual and must be accepted by the service).

After selecting all available order options, the customer can press a button allowing him/her to receive a quote, including order summary.

At this stage, the customer can add additional comments that will be transferred to the system together with the order. After pressing the button „Order with obligation to pay”, the customer completes the order process. The process is concluded with a short confirmation from the client, along with the order number assignment.

Please note that the order pricing process requires availability of an external system. In the event of connectivity problems, the client is informed about the issue, but can still go through the process. However, the customer must remember that he/she will not receive complete invoice data (final valuation will be missing).

History of orders

Orders placed by the client can be found in the history tab. They contain all order details, including::

  • order date,
  • desired delivery date chosen by the customer,
  • proposed/actual delivery date,
  • delivery address (recipient),
  • list of ordered products,
  • the name of the driver and his contact information – if transport method is selected via the Customer Portal.

This subpage also has the option of filtering results by status, order number, and searching by keyword.

After clicking on the „View” option, the customer will see the order details.


The customer also has the option to re-order. However, please note that archived orders may have products that are no longer available. The customer will be informed about it and the goods will not be added to the basket..

By staying on the website, you consent to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.