Multi-Shipment System
Overview
A fundamental part of the Commerce is, without a doubt, the function of managing shipment of orders. It is as important to manage catalog stock properly as to keep shipments under control. Management of shipping and deliveries is often what generates the most interactions between the user and the Commerce.
The Multi-Shipment System allows the Commerce to generate one or more shipments to fulfill an order and manage the associated shipping. The number of shipments will depend on the source warehouses and on other features, such as compensation days. Multiple deliveries will also be generated according to the Shipping Types (which will depend on the carriers available) and their features (their priority and whether it is a restrictive Shipping Type), as well as on the shipping calculation type (by units or by weight/shopping cart value). The system will take all these features into account together and display the shipping or shipment options and who can carry them. The user will then select the Shipping Type by the carrier of their choice.
Once the user has selected how they want the order shipped to them and who is to do it, each shipment can be monitored from the appropriate shipment section in the BackOffice. This section also allows for enabling changes of status for shipments that can have actions linked to them, such as sending an email to the user with some kind of notification.
Deliveries
In general, in a standard Commerce, when the user is in the final part of the shopping process, they decide how they want to receive their order, i.e. they must choose the delivery type. The delivery or Shipping Type is therefore the way in which the order is sent to the user who has bought it. It can be defined as the part in which the merchandise leaves the Commerce's logistic center and reaches its addressee.
The user chooses a delivery type from a series of options, which will depend on the availability of physical locations set up as pick-up points and of the carriers specified by the Commerce.
A delivery can end up being divided into several shipments: once the user selects the delivery type, the merchandise may have to be shipped from a source to a destination. This may be in a single shipment or it may be divided into several shipments (Multi-Shipment). The reason for dividing it is the source of the merchandise, i.e. logistic centers, and also the type of shipping. In turn, the number of shipments will depend on the features of the warehouse, including compensation days (explained in detail below).
Delivery Types
There are two types of delivery:
-
Home delivery: the merchandise is sent to the address the user specified when they placed the order. These deliveries are shipped by a carrier, who collects the packages from the source logistic center. They may be in one or several shipments.
-
Delivery to a pick-up point: the order is not delivered to the user*, but they must go to a pick-up point. Pick-up points can be determined automatically by the system (using a radius of distance from the pick-up point [see Physical Locations]), showing them all as possible delivery options.
In a shopping process, the system determines all the delivery options or possibilities (both home and to a pick-up point) and displays them for the user to choose which they want. For example, in the case of deliveries to a pick-up point, it is usual to display the options in a map in the presentation layer so that the user can choose the one that suits them best. Moreover, for each delivery, the system determines the number of shipments it will be divided into (as explained in the sections below). It bases this on the delivery address specified by the user and on the channel assigned, which in turn enables logistic centers, warehouses and pick-up points, as described further.
*There is one exception, which is outlined in the Multi-Channel System documentation: where a three-way relationship is set up between the channel, the physical location and the warehouse.
Elements
As this section shows, delivery is the principal factor in the Multi-Shipment System, but delivery options and the way they are set up —including possible shipments— are also determined by the elements specified below:
Channels
(see Multi-Channel System)
A sales channel is what serves to define a line of business, taking "line of business" to mean each of the segments into which turnover is to be separated. The channel is not something that can be selected one channel or another is activated depending on the features of the user who browses the Commerce, according to the way each of them is configured.
Channels must have at least one warehouse associated with them, which means that only the warehouses of the assigned channel can supply stock for orders placed through this channel. Channels can also have physical locations, and only those of the channel assigned will be enabled as pick-up and return points or sites that can be found on a map during the shopping process.
In the channel you can also define an area of influence, i.e. a set of geographical areas where the channel operates. This area of influence must be compatible with those of the other elements associated with the channel (warehouses, physical locations, etc.).
As the channel is the factor that enables warehouses and physical locations, it is one of the key factors in determining deliveries.
Warehouses
(see Warehouses and Logistic Centers)
A warehouse is an entity that contains a stock of products. This entity can be physical (with an actual address on the map) or virtual. It can contain stock for the whole inventory of products in the Commerce or only some of them. A Commerce can have as many warehouses as it needs, either because it has these actual physical locations from which stock is dispatched and needs to show this in the Commerce or because its logistics require virtual warehouses (even if it does not have them physically). As warehouses can be virtual, the "logistic center" entity groups warehouses together and gives them a physical source (an address on the map).
Also, the warehouse may have the Compensation Days feature enabled. This means the warehouse cannot supply stock immediately, but takes a few days. This delayed delivery date will affect the number of deliveries and shipments to be calculated by the system (see Division of Shipments).
Logistic Centers
(see Warehouses and Logistic Centers)
The logistic center is the starting point for the delivery because it is the place that provides the merchandise making up an order. A logistic center is a group of warehouses that, for logistical reasons, are best located in the same physical location. This site is the one that will determine the source of shipment and therefore the cost of shipment where the delivery is handled by a carrier.
The logistic center can also have an area of influence, which is the set of geographical areas where the center can fulfill shipments. This means that all the warehouses in it also belong to this area of influence. If the area is incompatible with that of the channel, the logistic center and the warehouses it contains are disqualified and cannot supply stock.
A priority is assigned to the relationship between channel and warehouse, and this will determine the order in which the stock is to go out. Therefore, among all the warehouses in the channel, the system will first withdraw stock from the warehouse set as the first. If there is not sufficient stock in this warehouse, the system will look for it at the warehouse set as second, and so on. So, if the warehouses belong to different logistic centers, the system generates as many sources as logistic centers are involved. This is not the only reason why a delivery might involve different logistic centers. In general, stock of each product can be assigned to whichever warehouse is necessary for logistic purposes; an order can therefore include products from different warehouses, and these warehouses can belong to different logistic centers.
Physical Locations
It is very normal for the companies behind Commerces to also have a network of physical stores. These stores often play an important part in the online channel, primarily as points for picking up and returning products bought in the online store. Or in some cases the Commerce merely wishes to show that it also has a physical presence.
A physical location is an entity that represents an actual place. It can also be a point that can be found on the map, for which the relevant coordinates are required. The map can show the network of physical stores, pick-up or return points, or be used for any other purpose required by the Commerce.
The relationship between channel and physical location also allows these features to be added to the physical location (see Multi-Channel System):
-
Pick-up Point: this represents a physical location where the user can go and collect their order. They are often physical stores belonging to the same company or chain, but they can also be locations of other kinds, like sites approved by the company as pick-up points.
-
Return Point: this represents a physical location where the user can return an order. They also tend to be physical stores belonging to the same company or chain, though they can also be locations of other kinds, like sites approved by the company as return points.
-
Radius of Area:you can set a radius of distance for the physical location. The geographical locations within this radius will depend on this physical location.
Example: You have a pick-up point for which you have set a radius of distance of 5 km. If a user's address is within this radius, the system will tell them to collect their order at this pick-up point.
The physical location can have an area of influence, i.e. the set of geographical areas where it operates. If this area is not compatible with that of the channel, the physical location is disqualified for this channel and therefore the pick-up or return point will not be available.
Carriers
(see Shipping Management)
Carriers are the entities in the Commerce that represent those in charge of delivering shipments, i.e. they take orders to user's homes. A Commerce can have as many carriers as it needs, each of them with a specific structure including two elements that depend on it:
------ Carrier
|
------ Shipping Types
|
------ Shipping areas
For a carrier to be fully operational it must have both these elements set, even though only the Shipping Types affect shipments directly.
Shipping Types
The Shipping Types can also be called "shipping mode" or "delivery mode" and represent the different forms of delivery offered to the Commerce by each carrier. For example, carriers often offer delivery in 72h, urgent 24h, by sea, by air, etc., each with their respective rates and times. These services are passed on to the Commerce as Shipping Types with the carrier in question. In practice, these are the shipping methods (with the appropriate costs) that the user can select, as they prefer (delivery in 72h, urgent delivery, etc.).
The carrier's shipping areas determine where they can deliver and what type of shipments they can make. Shipping areas also establish the different ranges of weight or shipment value and the transport costs for each of them (normally referred to as "shipping costs"). If the destination of a shipment is geographically incompatible with the locations included in the areas for a particular Shipping Type or, even if they are compatible, their total weight or value do not fall within the ranges set in the areas for the Shipping Type in question, the shipment cannot be carried in this Shipping Type.
The Shipping Type can have priorities and may or may not be restrictive. These are two features that are closely related to shipments; they are explained in detail further in this document.
Shipments
A shipment is the entity that represents the transport or movement of the merchandise making up all or part of an order from a point of origin to a destination. The point of origin is the logistic center and the destination is the shipping address specified by the user when they placed their order.
As mentioned above, deliveries can be sent in a single shipment or split into several (Multi-Shipment). For the system to create multiple shipments, the necessary conditions must exist; the main one of these is for the Commerce to have the Multi-Shipment feature enabled. If it is not enabled, even if the other conditions are met, the system will not split up the delivery and there will always be a single shipment.
If the Commerce has Multi-Shipment enabled, delivery can be split according to the following criteria, which are explained in detail below:
-
Delivery date
-
Shipping calculation type
-
Source of the shipment
-
Shipping Type
The more criteria apply, the more divisions can happen. However, as the system tries to minimize the number of shipments, at the end of the calculation process the system will try to group shipments with the same source and Shipping Type wherever possible.
There may be items that do not need shipping, such as online products or services. These products or services, which do not have the Calculate Shipment feature enabled will be present in the cart and then in the order, but as they are not taken into account when calculating shipping costs, they will not appear as part of the delivery or of any shipments resulting from this. Therefore, the items included in shipments must have the Calculate Shipment option enabled.
Calculating Deliveries and Shipments
The system determines all the deliveries that can be made of an order (both home deliveries and those to a pick-up point) and returns them. In all cases it will return at least one home delivery, which is the typical standard delivery through a carrier.
Deliveries to Pick-up Point
Deliveries to a pick-up point are created as a consequence of the physical locations set up as pick-up points for the channel assigned at the start of the shopping process. Each of these pick-up points will be one delivery (there can be as many points as necessary), taking into account that out of all the pick-up points linked to the channel, the system will only display the ones that are compatible with the user's shipping address. This is the procedure:
-
The system selects all the channel pick-up points in the same country or part of the country as the shipping address specified by the user.
-
The pick-up points found are filtered for those with the user's shipping address within the radius of their area. If, for example, the country has X pick-up points, for each of these it is assessed whether the user's shipping address falls within the radius of their area. Only those that match this filter will be valid, so X or a smaller number will be found.
The results returned can be used as appropriate. Generally, in presentation layers, they are shown on an interactive map. This way, the user can easily choose where to go and collect their order.
Deliveries to a pick-up point do not formally create shipments, though there is an exception, which is described under Source of Shipment.
Home deliveries
As explained above, the system will always return at least one home delivery. There may be compensation days at one of the warehouses supplying the merchandise in the order or, as shown in the section on division of shipments below, some of the items may be in reserve or in a provision for stock (both cases involve a future delivery date), i.e. there may be a date of some kind that delays delivery. In this event, the Commerce can have the Shipments by Date feature activated, which tells the system how to deal with the dates of any delays due to provisions or compensation days in deliveries.
The Shipments by Date feature can have 3 settings:
-
Never:the system only generates a delivery, the date of which will be the furthest from the current date among all the dates involved. This also means that multiple shipments will not be generated because of the delivery date (though other reasons are not ruled out).
-
Always:the system only generates delivery with different delivery dates. This means the delivery can be divided into several shipments (as shown in the section below on division of shipments).
-
Both:the system generates two deliveries: the date of one of these will be the furthest from the current date among all the dates involved, and the other will have several delivery dates. The user must be able to choose how they want the delivery: in parts (several delivery dates and possibly several shipments) or in a single one (the latest delivery date).
Home deliveries can be sent in a single shipment or in several. The criteria for division can be any of those described above.
Division of Shipments
Once delivery has been determined, the system assesses whether the shipment needs splitting up (it can do this providing the Commerce has enabled the Multi-Shipment feature). The system considers the delivery to be transported as a first shipment. If for whatever reason the shipment is not split up, this initial delivery will become a single shipment.
The items in the original delivery will be distributed into the different shipments created, so that each shipment will be set up with the appropriate items. For example, if an order was split up because of a delivery date, the new shipment will include the items to be taken from stock in the warehouse that caused the division due to delivery date. The units purchased of a particular item can also be split into separate groups and each of these groups sent in a different shipment.
The causes of this will be discussed in order, but first Stock Management needs to be explained.
Stock Management
For the system to be able to split the delivery into several shipments properly, it is important to bear in mind whether the Commerce has enabled Stock Management or not, i.e. whether the Commerce can monitor the number of units of each of its items. The warehouse is the element from which stock is taken, so the warehouse assigned to a particular item will be what determines the source of its shipment (via the logistic center it belongs to).
As the warehouse can have compensation days set, assignment of the warehouse to an item also affects the delivery date. To be able to supply the units in the order, the first thing the system does is to determine which warehouses to assign to each item.
If the Commerce does not have Stock Management enabled, the system will choose the warehouse in the channel with the highest priority and assign it to each of the items. It will then look for the logistic center and set it as the point of origin.
As the Stock Management feature can be customized for each item, if the Commerce has Stock Management enabled at a general level, it is possible that some of the items in the shipment might be customized in such a way as to disable this management. This means that, for these items in particular, there is no need to extract stock.
The system separates these items and assigns them to the warehouse and logistic center using the above strategy. These items are included in a separate shipment (which could also be split up, if necessary).
If the items in the shipment have Stock Management enabled, the system examines which warehouses are enabled for each of them by the channel assigned (remember that stock can only be taken from warehouses compatible with the channel). Each warehouse has a priority set, and this affects the order in which stock comes out. For each item, the system tries to take all the units specified in the order from the warehouse set as first (e.g. with priority 1). If there is not enough stock in this warehouse, it will look in the warehouse set as second (e.g. with priority 2) and so on. The process will be the same if, instead of actual stock, the product has stock in reserve (check Inventory Management System).
Items will have several warehouses assigned because the system may have to use more than one to find the units necessary to fulfill the order. This is of basic importance because, as explained below, it will lead to shipments being split up.
Criteria for Division
Delivery Date
This cause of division is the first assessed by the system. As mentioned in the section on deliveries, if any of the warehouses providing the merchandise has compensation days set, it will be unable to supply stock immediately, but will take the number of days set for it.
Should the Commerce not have Stock Management enabled, the warehouse assigned (as explained above) may have compensation days. As a result, the delivery date will be determined by adding the compensation days to the current date. The resulting date will be the delivery date for a single shipment (the whole order) if the Commerce has not enabled Multi-Shipment. If Multi-Shipment has been enabled, the order will be divided into at least two shipments (if there are items from other warehouses without compensation days).
If the Commerce has enabled Stock Management, as explained above, the items in the shipment can have different warehouses assigned. If any of these warehouses has compensation days set, the delivery date will be determined by adding the compensation days to the current date. As above, the resulting date will be the delivery date for a single shipment (the whole order) if Multi-Shipment is not enabled in the Commerce. If Multi-Shipment has been enabled, the shipment will be divided into as many shipments as different delivery dates.
Compensation days are not the only factor that can delay delivery of an item. If the item has reserve provisions or stock provisions (see Inventory Management System), in practice the date in these provisions will act in exactly the same way as compensation days, and this will also lead to a delivery being divided into several shipments. If the delivery only involves one shipment, the delivery date will always be the furthest date from the current one.
Example: For an order being delivered at home, stock is taken from three warehouses; one of them (W1) has no compensation days set; another (W2) has 10 compensation days set; while in the third warehouse (W3) the item to be extracted has a stock provision for the 30th of the current month.
If the Commerce does not have the Multi-Shipment feature enabled, the delivery must be sent in a single shipment, and the system will choose the delivery date furthest ahead among all the dates for the warehouses involved. If the sum of the current date plus the 10 compensation days of W2 is further ahead than the stock provision date for W3, the delivery date of the order will be that for W2 (current date + 10 days). If the resulting date is before the 30th of the current month, then the delivery date will be that for A3 (30th of the current month) because it is further ahead.
If the Commerce has Multi-Shipment enabled, delivery will be split into several shipments, in accordance with the delivery dates: shipment from W1 with immediate delivery (this warehouse has no compensation days set), shipment from W2 with delivery date “current date + 10 days” and shipment from W3 with delivery date on the 30th of the current month. There will be a total of three shipments: one shipped immediately and two that will be shipped according to the delivery dates for each of them.
Shipping Calculation Type
(see Shipping Management)
Calculation of shipping costs can be based on weight brackets or the value in the cart. For the first of these, the system uses the weight of each of the items in the shipment to determine the shipping costs. However, there may be items whose features mean it is not appropriate to base the shipping cost on weight where there are several units to be shipped. For this reason, the calculation sometimes has to be based on the number of units specified in the cart and not on the weight of the item. The Shipping Calculation Type feature allows to choose the way it is worked out. If the value is Weight, the standard linear calculation by weight is used. If, on the other hand, the value is Units, the system does not count the weight of the item but uses the number of units specified in the cart for a different type of calculation to determine the cost of shipping the item.
The system automatically splits the items temporarily in the order into shipments by weight and shipments by units. This division helps carry out the different calculations of the shipping costs. The system then tries to put the products together into a single shipment, though this may not be possible. For example, if the items to be shipped by units are associated with a special Shipping Type, the system might determine that these cannot be sent together with those in the shipment by weight and, therefore, split the shipment. In most cases, this division will not be noticed because when the system puts the shipments together it will show no trace of division of the shipments for this reason, though it must be understood that the opposite can occur. Therefore, formally the Shipping Calculation Type is a factor that can split shipments.
Source of the Shipment
This is another of the common reasons for splitting shipments. As each logistic center is a starting point, if a delivery involves two or more logistic centers, the delivery will be split into as many shipments as it has points of origin, i.e. it will be split into two or more shipments.
If the Commerce does not have Stock Management enabled, as explained above, one warehouse is assigned. As there is only one source or point of origin, the shipment will not be split for this reason (though it might be for other reasons).
If the Commerce has enabled Stock Management, the items in the shipment can have different warehouses assigned (as explained above). This means that if each warehouse belongs to a different logistic center, several shipments will be generated, one for each point of origin. In each of these shipments the item in question will appear with the units taken from their respective warehouse. It may therefore occur that the units of a single item are within different shipments.
If different sources and compensation days or stock provision days are combined in an order, delivery will be split up, first by date and then by source.
Resuming the above example: For an order being delivered at home, stock is taken from three warehouses; one of them (W1, which belongs to logistic center LC1) has no compensation days set; another (W2) has 10 compensation days set; while in the third warehouse (W3) the items to be extracted have a provision set. W2 and W3 belong to logistic center LC2.
If the Commerce does not have Multi-Shipment enabled, the delivery must be sent in a single shipment However, as there are different sources, this is not possible. The system will therefore indicate that the order cannot be delivered.
If the Commerce has Multi-Shipment activated, delivery will initially be split into as many shipments as there are logistic centers, so two shipments will automatically be created: one for LC1 and another for LC2. As delivery dates exist at LC2, shipment from LC2 will in turn be split into another two: one with delivery date "current date + 10 days" and another with delivery date on the 30th of the current month. There will be a total of three shipments, one shipping immediately and two that will be sent according to the delivery dates for each of them.
Multi-Shipments are usually associated with home deliveries. However, deliveries to pick-up points may also need transport because there is an exception (see Multi-Channel System): where a three-way relationship is set up between the channel, the physical location and the warehouse the Shipments by transfer feature may be activated, allowing an internal transfer of stock. This means that the physical location configured as a pick-up point needs shipping and therefore requires transport.
Shipping Types
Shipping Types can also be a reason for splitting up shipments. In general, it may be that items in a particular shipment cannot be sent in the same kind of shipment. This means the shipment will have to be split into the Shipping Types in which all the items can be sent. There are three features of Shipping Types that are the key to understanding why shipments are split up.
One is priority, but in this case understood as the "magnitude or importance" of the Shipping Type within Shipping Management. This importance is expressed with a number; the higher this number, the less importance it has (1 has greater importance than, for example, 10). This concept of magnitude or importance can also be associated with other features, such as cost (more expensive or less expensive), whether it is eco-friendly (more polluting or less polluting), whether it needs refrigerated shipment (colder, less cold or normal), size of vehicle (bigger or smaller), whether it is shipment for high-value goods (more secure or less secure) or any other criterion that means giving "weight" to the shipment type. The system always tries to assign the shipment type with the highest priority number, i.e. the least importance: the cheapest shipment, the least polluting or not requiring refrigeration, using the smallest vehicle, etc.
Another feature is the restriction that a particular Shipping Type might impose on the others. This feature complements customization of shipping by item (see Shipping Management) and, in the case of two items with different shipping customizations, helps determine which of the two Shipping Types must be used for both of them. Restrictive Shipping Types:
-
They carry more "weight" than non-restrictive Shipping Types (i.e. if the system has to choose between two Shipping Types with the same priority, it will choose the restrictive one).
-
They can also be assigned a priority, which helps determine the order between restrictive Shipping Types (i.e. if the system has to choose between two Shipping Types, it will choose the one with the higher-numbered priority).
-
They can be used to send items without customization of shipment, or they can be used to send items with customization of shipment with non-restrictive Shipping Types and with a higher priority than that of the restrictive one.
The restriction feature, together with the priority, can force a delivery to use two or more different Shipping Types, which means it will be split into different shipments.
Another feature of Shipping Types is the ranges defined in their areas. If the shipment has a weight or a value that does not fit into any of the ranges set in the areas of the Shipping Type, it cannot be shipped. In this case, it is possible that by splitting the shipment between different Shipping Types it can all be sent.
When shipments are split up due to the Shipping Type this is the division that can be the most complex in conceptual terms, and if it is not kept under a minimum of control it can have unexpected effects for the Commerce manager. It is therefore important to carefully configure the features of the Shipping Types and shipping customizations for each item.
Rules for Division
The above sections explain the reasons for splitting shipments. However, the system follows some rules (especially when it tries to split up shipments by Shipping Type) to finally decide the number of shipments to generate and the items that will go into them.
As described above, the system first applies the following conditions:
-
If there is a delivery date (e. g. as a result of calculation of compensation days for the warehouse or the date of a stock provision or reserve), the shipment will be split up.
-
If a single order combines the type of calculation of shipping by weight and also by units, the shipment will be split up.
-
If there are different points of origin, the shipment will be split up.
-
By now there might already be several divisions:
After splitting the original delivery into these shipments (in orange), the system now assesses whether these in turn need splitting because of the Shipping Types. To do this it considers the following rules:
- The system rules out the Shipping Types whose areas are incompatible with the user's delivery address.
- When the items do not have shipping customizations, the system takes into account all the valid Shipping Types (i.e. compatible with the area).
- When the items do have shipping customizations, it only considers what is included in these customizations and are also valid (i.e. compatible with the area).
- The system orders the remaining Shipping Types according to the priority value, always from higher to lower (the higher numbers come first).
- Restrictive Shipping Types have more "weight" than non-restrictive Shipping Types where there are items with shipping customizations.
- The system always tries to assign the Shipping Type with the highest priority number (the first after ordering them). However, because of the above point:
- (1)If there are no items with customizations, the system takes into account all the valid Shipping Types (i.e. compatible with the area). In ordering, non-restrictive Shipping Types take preference over restrictive ones (i.e. non-restrictive ones come before restrictive ones because, whenever it can, the system prefers non-restrictive Shipping Types).
- (2)If there are items with customizations, in ordering, restrictive Shipping Types take priority over non-restrictive ones (i.e. the restrictive ones come before non-restrictive ones because the system tries to send the shipment by the restrictive Shipping Type; if this is impossible, it is sent by the non-restrictive Shipping Type).
-
The system always tries to minimize the number of shipments, so as many items as possible are included in each shipment. Therefore:
- Products with no shipping customizations can be sent with any Shipping Type (whether restrictive or not).
- Items with shipping customizations set will only be sent using the Shipping Type associated with the customization. There is one exception: namely, when the Shipping Type is restrictive (this is explained in point (3) below).
- (3)Through restrictive Shipping Types, it is possible to send items with customized shipping but NON-restrictive Shipping Types and a priority equal to or higher than that of the restrictive type(this is precisely the reason why restrictive shipping exists).
- When the system assesses whether a Shipping Type can be used to send a set of items, it always checks that the ranges match the weight and value of the resulting shipment; if not, this Shipping Type is ruled out.
-
The system tries to fit as many items as possible into each shipment (precisely to minimize the number of shipments). To do this, for each priority (the Shipping Types for each priority) it tries to ship as many items as are associated with this priority. These are the processes followed in each of the two cases:
- If there are items with customizations, preference is given to restrictive Shipping Types, as shown in rule (2):
- As always, it starts with the priority with the highest number (the first of the restrictive Shipping Types).
- If there is more than one Shipping Type in this priority, this means there are items with customization indicating Shipping Types of the same priority (remember the system only takes into account those included in these customizations).
- As the priority is restrictive (its Shipping Types are), it is used to send other items, in accordance with rule (3). Therefore, this priority means that items with a customization under this priority plus any that might be included bearing in mind the priority being assessed [according to rule (3)] will be shipped with this priority. This set of items can be different in each iteration; it will depend on what customizations each items has associated with it, i.e. whether it has customizations that affect shipments of one priority or another.
The system assesses whether all these items can be sent using the Shipping Types for the priority being examined, bearing in mind that this process will be repeated, if necessary, for restrictive priorities only (those that go on top). If all the items can be sent in a single Shipping Type, there will be a single shipment. If all the items can be sent by more than one Shipping Type, a single shipment will be created containing all the possible Shipping Types so that the user can choose which they want to be used to send this shipment. If this is not the case, it will be examined whether all the items can be sent through a combination of Shipping Types (e.g. some items sent by one Shipping Type and the rest by another). If they can, as many shipments as there are Shipping Types involved will be created. If no shipments have been generated, this process is repeated with the next restrictive priority. - If the above process ends without shipments it is because not all the items involved could be sent in each case (in each priority). Process 1 is then repeated, but working through the non-restrictive priorities (those left under the restrictive group).
- If no shipment can be generated like this either, the system once again takes items as in point 1 and assesses whether any of them can be sent using any of the Shipping Types for the priority being examined, bearing in mind that this process will be repeated, if necessary, for restrictive priorities only (those that go on top). This means that the condition of sending the maximum number of items in each shipment is relaxed. If shipments can be generated, the relevant shipments are created. Products without a shipment assigned will be assessed subsequently to see whether they can be sent using Shipping Types for another priority. If no shipments have been generated or there are items without shipment assigned, this process is repeated with the next restrictive priority.
- If it is not possible (not all the items can be sent, even by creating several shipments), the system rules out some items included and assesses only those with the priority customizations being examined, bearing in mind that this process will be repeated, if necessary, for restrictive priorities only (those that go on top). If any of these items can be sent by any of the Shipping Types, the relevant shipments are generated. Products without shipment assigned will be assessed subsequently to see whether they can be sent using Shipping Types for another priority. If no shipments have been generated or there are items without shipment assigned, this process is repeated with the next restrictive priority.
- If no shipments can be created, process 3 is repeated, but taking non-restrictive priorities (those in the non-restrictive group).
- If shipments still cannot be created, process 4 is repeated, but taking non-restrictive priorities (those in the non-restrictive group).
- At this point there may possibly be items without customized shipment that could not be sent by any of the Shipping Types being assessed (remember that only those included in the customizations have been taken into account). To avoid this situation, this group of items is processed again, but this time with the processes used when all the items are non-customized (next scenario).
- If after all these assessments and processes there are items that could not be included in any shipment, they will be grouped under the heading of "undeliverable items". The user going through the shopping process will decide whether or not to remove these items from the cart to be able to complete the purchase.
- If all the products are non-customized, the non-restrictive ones take preference, as shown in rule (1) (remember that, in this case, the system takes into account all compatible Shipping Types).
- As always, it begins with the priority with the highest number (the first of the non-restrictive ones).
- The system assesses whether all the items can be sent using the Shipping Types for the priority being examined, bearing in mind that this process will be repeated, if necessary, for non-restrictive priorities only (those that go on top). If all the items can be sent in a single Shipping Type, there will be a single shipment. If all the items can be sent by more than one Shipping Type, a single shipment will be created containing all the possible Shipping Types so that the user can choose which they want to be used to send this shipment. If this is not the case, it will be examined whether all the items can be sent through a combination of Shipping Types. If they can, as many shipments as there are Shipping Types involved are created. If no shipments have been generated, this process is repeated with the next non-restrictive priority.
- If no shipments can be created, process 2 is repeated, but iterating for restrictive priorities (those in the restrictive group).
- If no shipment can be generated, the system assesses whether any of the items can be sent using any of the Shipping Types for the priority being examined, bearing in mind that this process will be repeated, if necessary, for non-restrictive priorities only (those that go on top). If shipments can be generated, the relevant shipments are created. Products without a shipment assigned will be assessed subsequently to see whether they can be sent using Shipping Types for another priority. If no shipments have been generated or there are items without a shipment assigned, this process is repeated with the next non-restrictive priority.
- If no shipments can be created, process 4 is repeated, but iterating for restrictive priorities (those in the restrictive group).
- If after all these assessments and processes there are items that could not be included in any shipment, they will be grouped under the heading of "undeliverable items". The user going through the purchase process will decide whether or not to remove these items from the cart to be able to complete the purchase.
- If there are items with customizations, preference is given to restrictive Shipping Types, as shown in rule (2):
Examples
The division of deliveries into several shipments can prove fairly complex. The best way of understanding why they are divided is by means of examples. Here are several:
Example 1
Suppose the Commerce markets furniture and decorative items. There will be items like, for example, a porcelain figure, which can be shipped in a small vehicle, more economically. There will be other items, like a wardrobe, that need special shipment in a larger and therefore more expensive vehicle.
In this case, there will be two kinds of shipment: special delivery (D1 for large objects) and ordinary delivery (D2 for ordinary-sized objects). Priority 1 is assigned to D1, which consists of weight ranges covering heavier items but is also more expensive. Priority 2 is assigned to D2, consisting of ranges covering lighter items, so that a heavy object (like a wardrobe) falls outside its ranges.
In normal circumstances, the system will assign the Shipping Type with the higher priority number. In this case, it will assign D2 to the shipments because they are of the type the Commerce considers the most standard (associated with the smallest and therefore the cheapest vehicle). Let us suppose, however, that weight ranges have been set for D2 that fit the weight of a wardrobe and one of these is sold. As the system will assign the Shipping Type using the small vehicle (D2), the wardrobe cannot be shipped because it does not fit in the vehicle. This causes a problem for the Commerce because the shipping costs have been calculated at the rates for the small shipment, and as it will have to use the bigger vehicle, it will also have to bear the difference in cost.
To stop this happening, a shipment customization needs to be assigned for this item. In this case, Shipping Type D1 is assigned to the wardrobe. When a user purchases a wardrobe, the system will detect that it has a customization set, and instead of assigning the Shipping Type on the basis of the priority, it will assign it according to this customization. This way, it will be shipped as D1, and any extra cost will be passed on accordingly.
Now let us suppose that a user buys a wardrobe and a porcelain figure. The system detects that the wardrobe has a customization, and at first, it will assign D1 to deliver the shipment. As the porcelain figure does not have a shipping customization, it can be sent by any Shipping Type. As the system always tries to minimize the number of shipments, the wardrobe and the porcelain figure will be sent in the same shipment, using D1.
Let us suppose —to complicate things a little more— that now the porcelain figure has shipping customization D2 (because, in normal circumstances, the Commerce prefers to send it by the ordinary means of shipment). If a user buys a wardrobe and a porcelain figure, the system detects that each item has a customization so, according to the configuration, one should be sent by D1 and the other by D2. This situation splits the original delivery into two shipments: on the one hand, the wardrobe will be sent by D1, and on the other, the porcelain figure by D2.
If one wishes to avoid this situation, R1 must be configured as restrictive. Restrictive Shipping Types can be used to send items customized with non-restrictive Shipping Types and prioritized with a higher number. As we have non-restrictive D2 with priority 2 (higher than that of D1), D1 (the large vehicle) will also be used to ship the porcelain figure. Therefore, the wardrobe and the porcelain figure will be sent in the same shipment.
Example 2
This example focuses on the splitting of shipments due to their type. As discussed below, many different scenarios can arise. To make the example as comprehensive as possible, we will outline partial situations and their worst scenarios in order to proceed with the next step.
If you spot any incoherence, ignore it: we have forced the situations in order to expand the explanation, as they are unlikely scenarios.
Let us suppose we have set up these Shipping Types:
Shipping Types |
Priority |
Restrictive |
T1 |
1 |
YES |
T2 |
1 |
YES |
T3 |
2 |
YES |
T4 |
2 |
NO |
T5 |
3 |
YES |
T6 |
3 |
YES |
T7 |
3 |
NO |
T8 |
4 |
NO |
Imagine that you have a delivery with four items: I1, I2, I3 and I4. The system has not yet split up this delivery and it is time to decide whether this is necessary because of the Shipping Types. These items have shipping customizations:
Priority (restrictive) - Shipping Type |
I1 |
I2 |
I3 |
I4 |
1 (R) - T1 |
X |
|
|
|
1 (R) - T2 |
|
|
|
|
2 (R) - T3 |
|
|
|
|
2 - T4 |
|
|
X |
|
3 (R) - T5 |
X |
|
|
X |
3 (R) - T6 |
X |
|
|
|
3 - T7 |
X |
|
|
|
4 - T8 |
|
|
|
|
As there are items with customizations, only the Shipping Types involved are assessed, and they are ordered by number from highest to lowest with the restrictive group first:
Priority |
Shipping Type |
3 (R) |
T5 & T6 |
1 (R) |
T1 |
3 |
T7 |
2 |
T4 |
The situations shown below marked with (**) are particular scenarios that will be discussed again at the end of this document.
Process 1
The system starts by assessing priority 3 (R). There are 2 Shipping Types associated with this priority. There is also a shipping customization associated with T5 by I1 and I4, and another associated with T6 by I1. As the priority is restrictive (the Shipping Types for this priority are restrictive), they can be used to send items with no customization or with customization, with a priority that has a higher number. In this case, it can only ship I2.
The system now has to find transport for items I1, I2 and I4, and has T5 and T6 as possible Shipping Types. In order to determine the shipments that will be needed to send I1, I2 and I4 (ship all of them):
-
The system assesses whether I1, I2 and I4 can be sent by T5 and T6.
-
If they can, a shipment is generated with T5 and T6 as Shipping Types. The user must choose whether they want them to be delivered by T5 or T6. The system now knows how to ship these three items, but there are still others left to ship; it therefore moves on to the next priority.
-
-
In this case, shipment is not possible because I4 has a customization associated with T5, which means T6 cannot be used to ship the product.
-
The system assesses whether I1, I2 and I4 can be shipped by T5.
-
If they can, a shipment is generated with T5 as the Shipping Type. As before, the system now knows how to ship these three items, but as there are other items left to ship, it moves on to the next priority.
-
Let us suppose that it cannot because the weight of I1 + I2 + I4 exceeds the parameters set up in the ranges for T5.
-
The system assesses whether I1, I2 and I4 can be shipped by T6.
-
If they can, a shipment is generated with T6 as the Shipping Type. The system now knows how to ship these three items, but as there are still others left to ship; it moves on to the next priority.
-
-
In this case, shipment is not possible because I4 has a customization associated with T5, which means T6 cannot be used to ship the product.
-
The system assesses whether I1, I2 and I4 can be shipped by some combination of T5 and T6.
-
(**) The system determines that I1 and I4 can be sent by T5, and that I2 can be shipped using T6. Two shipments are generated, one for I1 and I4 with Shipping Type T5, and another for I2 with Shipping Type T6. The system now knows how to ship these three items, but as there are still others left to ship; it moves on to the next priority.
-
-
(*) Let us suppose that it cannot ship I2 by T6 because the weight or the value, or a combination of these two conditions, exceeds those defined in its ranges. As it cannot ship all the products concerned, it moves on to the next priority.
-
(**) At this point, I1, I2 and I4 are shipped one way or another, i.e. they have been included in a shipment to be sent by T5, T6 or both. We are left with I3 (Scenario 1).
Process 1 (next iteration)
We now return to the last scenario described(*). The system moves on to the next priority, i.e. 1 (R). There is a restrictive Shipping Type, T1, associated with this priority. Moreover, T1 is associated with a shipping customization by I1. As the priority is restrictive, it can be used to ship products with no customization or with a non-restrictive customization that have a priority with a higher number: I2 and I3. In order to determine what shipments are needed to send I1, I2 and I3 (to ship all of them):
-
The system assesses whether I1, I2 and I3 can be sent by T1.
-
(**) If they can, a shipment is generated with T1 as the Shipping Type. As before, the system now knows how to ship these three items, but as there are other items left to ship, it moves on to the next priority.
-
-
(*) Let us suppose that it cannot because the weight or the value of I1 + I2 + I3, or a combination of both, exceeds the parameters set up in the ranges for T1.
(**) At this point, I1, I2 and I3 are sent in one shipment by T1. This leaves us with I4 (Scenario 2).
Process 2
Once again, we return to the last scenario described(*). For the moment, neither the Shipping Types for priority 3 (R) nor that for priority 1 (R) can carry all the products in question. The system moves on to the next priority. As the group of restrictive Shipping Types has been exhausted, it starts with the non-restrictive group, where the first priority is 3. There is one non-restrictive Shipping Type associated with this priority, T7. Moreover, T7 is associated with a shipping customization by I1. As the priority is non-restrictive, it can be used to send items with no customization. In this case, it can ship I2. In order to determine the shipments that will be needed to send I1 and I2 (ship all of them):
-
The system assesses whether I1 and I2 can be shipped by T7.
-
(**) If they can, a shipment is generated with T7 as the Shipping Type. As before, the system now knows how to ship these three items, but as there are other items to ship, it moves on to the next priority.
-
-
(*) Let us suppose that it cannot because the weight or the value of I1 + I2, or both, exceed the parameters set up in the ranges for T7.
(**) At this point, I1 and I2 are sent in one shipment by T7. This leaves us with I3 and I4 (Scenario 3).
Process 2 (next iteration)
We now continue with the last scenario described(*). The system moves on to the next priority, i.e. 2. There is a non-restrictive Shipping Type, T4, associated with this priority. Moreover, T4 is associated with a shipping customization by I3. As the priority is non-restrictive, it can be used to send items with no customization. In this case, it can be used to ship I2. In order to determine the shipments that will be needed to send I2 and I3 (ship all of them):
-
The system assesses whether I2 and I3 can be shipped by T4.
-
(**) If they can, a shipment is generated with T4 as the Shipping Type. As before, the system now knows how to ship these three items, but as there are still others left to ship; it moves on to the next priority.
-
-
(*) Let us suppose that it cannot because the weight or the value of I2 + I3, or both, exceed the parameters set up in the ranges for T4.
(**) At this point, I2 and I3 are sent in one shipment by T4. This leaves us with I1 and I4 (Scenario 4).
Process 3
Continuing with the example, let us analyze the last scenario described(*). Neither the restrictive priorities nor the non-restrictive ones were able to send all the items concerned. The system now starts again, with the restrictive priorities, but assessing whether any of these items can be sent, i.e. the condition of sending the maximum number of items in each shipment is relaxed. The system will leave items that cannot be sent using the Shipping Types with this priority to assess whether they can be sent using the Shipping Types with the following priorities.
We return to priority 3 (R). There are 2 Shipping Types associated with this priority. Moreover, T5 is associated with a shipping customization by I1 and I4, and T6 is associated with a shipping customization by I1.
As the priority is restrictive —the Shipping Types for this priority are restrictive— they can be used to send items with no customization or with customization, with a priority that has a higher number. In this case, it can be used to ship I2 only.
The system now has to find transport for items I1, I2 and I4, and has T5 and T6 as possible Shipping Types. In order to determine the shipments that will be needed to send I1 or I2 or I4:
-
The system assesses whether I1 or I2 or I4 can be sent by T5 and T6.
-
Here the case could arise where only I1 and I4 can be sent by T5, and T6 cannot be used to send I2 (which will remain pending); or that I1 and I4 can be sent by T5, and T6 can be used to send I2; or I1 can be sent by T5, and T6 can be used to send I2 (I4 would remain pending) or some similar combination.
The successful outcome would be for all three items to be shipped. As before, the system now knows how to ship these three items, but as there are other items left to ship, it moves on to the next priority.
-
-
For the sake of consistency, let us take as a negative scenario the first, where only I4 is sent by T5, and I1 and I2 are left pending.
In order not to make the example too long, from here we will simplify the scenarios. We are left at a point where I4 has been sent by T5, and I1, I2 and I3 are left pending.
Process 3 (next iteration)
We return to the last example scenario. The system moves on to priority 1 (R). There is a restrictive Shipping Type, T1, associated with this priority. Moreover, T1 is associated with a shipping customization by I1. As the priority is restrictive, it can be used to send items with no customization or with non-restrictive customization that have a priority with a higher number: I2 and I3. Therefore, I1, I2 and I3 are left:
-
If I1 or I2 or I3 (or all three) can be sent by T1, the relevant shipment will be set up.
-
Let us suppose, as a negative scenario, that T1 is used to send I3, while I1 and I2 are left pending.
Process 4
Continuing with the example, as there are still items left to send, process 3 would be repeated, but without assigning items. I1 and I2 remain to be assigned to a shipment. We start with priority 3 (R), which has T5 and T6 associated with it. T5 is associated with a shipping customization by I1 and I4, and T6 is associated with a shipping customization by I1. As I4 has already been shipped and no items can be assigned, only I1 is left:
-
If I1 can be sent by T5 or T6, the relevant shipment will be set up.
-
Let us suppose, as a negative scenario, that I1 cannot be sent by any of these Shipping Types. I1 is left pending.
Process 4 (next iteration)
Continuing with the example, as there are still items left to send, the system would move on to the next priority, i.e. 1 (R). In this priority there is T1, which is associated with a shipping customization by I1. As no items can be assigned, only I1 is left:
-
If I1 can be sent by T1, the relevant shipment will be set up.
-
Let us suppose, as a negative scenario, that it is not possible. I1 is left pending.
Process 5
Continuing with the example, as there are still items left to send, process 3 would be repeated, this time using non-restrictive priorities. I1 and I2 remain to be assigned to a shipment.
It starts with the first priority, i.e. number 3; this is associated with Shipping Type T7 and item I1. As T7 can be used to send items, it can ship I1 and I2:
-
If I1 or I2 can be sent using T7, the relevant shipments will be set up.
-
Let us suppose, as a negative scenario, that I2 can be sent by T7, and I1 is left pending.
-
(1) Let us suppose, as a special alternative negative scenario (we will see why in a moment), that I1 can be sent by T7, and that, due to weight, I2 is left pending.
Process 5 (next iteration)
As items are still left, the system moves on to priority 2, which is associated with T4. This Shipping Type can carry I3 and take I2, but as I3 is already being sent by T1 and the only item linked to T4 is I3, this priority has been left "empty" and is ruled out.
I1 remains pending.
(1) For this alternative priority 2 is also ruled out. I2 is left pending.
Process 6
As items remain to be shipped, process 5 is repeated, but without assigning items. It starts with priority 3, which has Shipping Type T7 and item I1 associated with it:
-
If I1 can be sent by T7, the relevant shipment is set up.
-
Let us suppose, as a negative case, that it is not possible.
(1) In this alternative, as items cannot be assigned through priority 3, I2 cannot be shipped. I2 is left pending.
Process 6 (next iteration)
Continuing with the example, the system moves on to priority 2. As we have seen, the only Shipping Type in this case is T4. As it is linked to I3, it is ruled out.
(1) In this alternative priority 2 is also ruled out. Therefore, I2 is left.
Process 7
This process is only executed with the alternative scenario (1) described in process 5.There may possibly be items without customized shipment, as in the case of I2, that could not be sent by any of the Shipping Types being assessed (remember that only those included in the customizations have been taken into account). To avoid this situation, these items are processed again, but this time with the processes used when all the items are non-customized.
When the items do not have customizations, the system takes into account all the Shipping Types compatible with the geographical area. It is therefore highly probable that if any non-customized item being assessed in the processes that take place when there are customized items involved is left out of all the shipments, i.e. it cannot be associated with any Shipping Type, in this second phase of processing it will find some Shipping Type with which it can be sent.
Continuing with the example, it is highly likely that I2 can be sent by T2, T3 or T8, which are the Shipping Types not considered due to the shipping customizations.
Process 8
If at this point there are still items that cannot be sent by any Shipping Type, they are grouped under the name of "non-deliverable items". In this case, a group would be created to include I1. This grouping can be shown to the user making the purchase, who will decide whether or not to remove these items from the cart in order to be able to complete the purchase.
Alternative Scenarios (**)
Scenario 1
I3 is left pending. The following would happen:
-
The next iteration is 1 (R), which has Shipping Type T1. As it is associated with I1, it would be ruled out because the item has been associated with another Shipping Type in a previous iteration.
-
The system would move on to non-restrictive priorities, starting with 3. There is T7, with which only I1 and I2 can be shipped. As these items already have shipping, it is ruled out.
-
The system moves on to priority 2. There is T4, with which I3 can be shipped. The appropriate shipment would be created, and the processes would be completed.
-
Final scenario: 2 shipments are created; one to send I1, I2 and I4, by T5 or T6 (as the user chooses); and another to send I3, by T4.
Scenario 2
I4 is left pending. The following would happen:
-
As it cannot be sent using the Shipping Types with restrictive priorities, the system assesses those with non-restrictive priorities, starting with priority 3. In this case there is T7, with which only I1 and I2 can be shipped. As these items already have shipping, it is ruled out.
-
The system moves on to priority 2. In this case there is T4, with which only I2 and I3 can be shipped, but these items already have shipping assigned. It is therefore ruled out.
-
We return to the restrictive priorities, starting with priority 3 (R), for which the possible Shipping Types are T5 and T6. On this pass it is only required that the Shipping Types can carry any of the products (the condition of sending the maximum number of products in each shipment is relaxed), so it is checked whether I4 can be sent by T5. The appropriate shipment would be created, and the processes would be completed.
-
Final scenario: 2 shipments are created; one to send I1, I2 and I3, by T1; and another to send I4, by T5.
Scenario 3
I3 and I4 are left pending. The following would happen:
-
The next iteration is 2, for which the Shipping Type is T4, which can carry I3. The shipment would be created and I4 would be left.
-
We return to the restrictive priorities; the condition of sending the maximum number of items in each shipment is relaxed. We start with 3 (R), for which the associated Shipping Types are T5 and T6; I4 can be sent by T5. The appropriate shipment would be created, and the processes would be completed.
-
Final scenario: 3 shipments are created; one to send I1 and I2, by T7; another to send I3, by T4; and another to send I4, by T5.
Scenario 4
I1 and I4 are left pending. The following would happen:
-
We return to the restrictive ones; the condition of sending the maximum number of items per shipment is relaxed. We start with 3 (R), for which the associated Shipping Types are T5 and T6; let us suppose that I4 can be sent by T5. The shipment would be created and I1 would be left.
-
The next priority is 1 (R), for which the Shipping Type is T1, which can carry I1. The appropriate shipment would be created, and the processes would be completed.
-
Final scenario: 3 shipments are created; one to send I2 and I3, by T4; another to send I4, by T5; and another to send I1, by Shipping Type T1.