Showing results for 
Search instead for 
Did you mean: 

Sales BOM per customer

Former Member
0 Kudos

This might be a strange question but still. We have a customer who ships out pallets and crates to their customers. They want to be able to track these items of course and bill the customers according to the number of items they received. N.B. these items are not returned so returnable packaging is out of the question.

We are looking at the use of a sales BOM so we can calculate the number of pallets and crates per sales order and delivery based on the number of finished products they ship out and of course create an invoice where these items are listed as part of the delivery with the actual costs. This works quite satisfactory BUT it will only work when either all customers use the sales BOM or all customers do not use the sales BOM.

What's the problem, as this is a new process, they will not be able to convince all customers to directly pay for pallets and crates that are being shipped out. We are now facing the problem that for part of the customers they want to use a sales BOM and invoice them for the pallets and crates they receive BUT for part of the customers they do not want to invoice them for the pallets and crates they receive. This means that we are looking for a way where we can indicate, per customer, whether to use a sales BOM (ship out and invoice pallets and crates) or not to use a sales BOM (do not logically ship out and invoice pallets and crates).

Is this possible yes or no? Maybe with a user exit that checks for a specific field in the customer master? We have already defined two sales BOM's per material, one where pallets and crates are used and one without pallets and crates so we could mis-use the alternative sales BOM principle, but we still need a trigger to call either sales BOM.

Any help would be appreciated.

Accepted Solutions (1)

Accepted Solutions (1)

Active Contributor
0 Kudos

The right way to approach this problem is to use the Handling unit management in delivery.

You can manage the returnable and not returnable packaging with rules that can depends on the customer too, and generate items in delivery so you can move the packaging stock.

Further documentation on this can be found here:

pls. reward if helpful



Answers (2)

Answers (2)

Former Member
0 Kudos

How about using the functionality of Cross-Selling.

With Cross-Selling One can control as to whether Customer can have Cross-Selling materials or not.

Say for material A for customer ABC, you set-up pallets and crates whereas for material A and customer DEF, as customer is not set-up for cross-selling, the material is send without crates and pallets [or they are not billed].



Reward points if helpful

Former Member
0 Kudos

Hi Bas,

Did you try Dynamic Product proposal?

In the customer master you can leverage on a field called PP Customer procedure. under the sales tab. and you can define the product proposal in SPRO>SD>Basic Fn>Dynamic Product Proposal.

reward points if it helps.



Former Member
0 Kudos

Hi Roberto and Biju,

We looked at both options but neither are workable. Not all warehouses use HUM because not all warehouses are their own warehouses, some are from logistics service providers who have not SAP access, otherwise the problem would be a bit easier, plus the customer does not use packing and will not use packing in the future.

The dynamic product proposal was a bit more promising but also there, we encounter a problem because we cannot make a calculation on the number of crates and pallets shipped out to a customer, which is one of the requirements.

The problem still lies in the fact that

- Customer A does not want a bill for crates and pallets and therefore does not want to see the items on the delivery and the invoice.

- Customer B does want a bill for crates and pallets and therefore needs a calculation for the number of pallets and crates he received.

We cannot set a field somewhere that says customer A without these items, customer B with these items and then trigger something else.

Thanks for the help but we still haven't solved the problem.

Former Member
0 Kudos


what about material exclusion, not sure if it works but you can try to define exclusion for your pallet material for one of customers... hopefulyl SAP will not copy it to sales order/delivery.

OR you can put some logic to userexit_cust_material_read (mv45afzb) to raise error message which will not allow copying BOM compoennt to sales order... it's not the best opiton... but may help.

OR try to define your materials as configurable and then you can use dependencies to disable some options for those customers which don't need them.

Former Member
0 Kudos

Hello Siarhei,

Good thought to use material exclusion. We'll give it a go.

Thanks for all the help so far. When we have finished the testing I will post again.

Former Member
0 Kudos

We got it to work now. We use a dynamic product proposal to determine the pallet per customer so that we only get 1 orderline per sales order. Order entry will have to determine the actual number of pallets in the sales order and fill that in.

The number of crates that belong to each finished good are still entered by using a sales BOM per material.