Tax on Freight & Special Charges in Order Management
February 29th, 2008 | Send this article to a friend!
One of the fundamental flaws in Oracle Order Management (OM) is the inability to include tax on freight and special charge modifiers that are setup in Advanced Pricing (QP). There’s just no way to do it out of the box. Even if you use the Oracle suggested work around, which is to add freight as a line item to a sales order, it’s still a manual process and defeats the purpose of being able to include and calculate freight automatically the way you can through a charge modifier.
Oracle does provide the ability to recognize freight as revenue, which in turn calculates tax on the charge, but this doesn’t happen until the order has been interfaced to Receivables (AR). For some corporations, that calculation needs to happen at the time of order entry. Additionally, some clients who utilize iPayment to authorize a credit card charge in OM and apply the fully transact the charge when the order is interfaced to AR will also encounter issues because the authorized amount, which doesn’t include the tax on freight, is less than the actual charge amount on the AR side, causing the credit card transaction to fail entirely.
Needless to say, it’s a pain, and a blatant functionality gap. However, with a slight customization, a semi-acceptable solution can be found by harnessing some of the functionalities available in Advanced Pricing.
Going back to Oracle’s recommended solution of adding an order line item for freight if it is to be taxed – the main issue with this work around is that it’s not automatically added to the order. For high-volume order entry environments, this is an absolute necessity. One of the great advantages of modifiers in Advanced Pricing is the ability to allow charges and adjustments to be automatically applied to an order based on qualifying events. This is an important piece of functionality that is lost using Oracle’s line item workaround.
However, there is a functionality in Advanced Pricing, often not used, that can automate the entry of an order line. The “get item” functionality under the “Promotion” modifier type allows you to add items to a sales order based on the qualifiers you set. This functionality is typically used for a “buy one, get one free” scenario, but can be used in this situation to add a freight order line automatically to a sales order.
The only setback to this functionality is that the pricing capabilities are limited. When setting up a “get item” modifier, you cannot attach a formula. The functionality only allows you to obtain a fixed list price from a price list or generate a new price. This may be OK if you’re organization charges a fixed amount for freight, but for those who calculate freight based on the selling amount, this is very bad. Out of the box, there is no way to get around this. Even applying a modifier on top of the order line that is added by the “get item” modifier doesn’t work, because when the line item is added, the Calculate Price Flag is set to “Partial Pricing”. What “Partial Pricing” means is that it will obtain the price that is established in the “get item” setup, but it will neglect any modifiers or adjustments applied to that order line. The only way around this is to manually set the Calculate Price Flag to “Calculate Price”, then re-price the line.
While setting the Calculate Price Flag manually works, this defeats the purpose of adding the freight line automatically to the order. The point of this exercise is to add the line with the price automatically calculated so that there’s no need for the users to perform this step in a high volume order entry environment. This is where that “slight” customization as I mentioned earlier comes in.
If setting the Calculate Price Flag to “Calculate Price” after the line has been automatically added solves the issue, then why not have a concurrent request, which runs as often as the business desires, perform this action so that the price of the freight order line is correctly calculated? This is exactly what we did with my last client and it ended up working quite well, but with one little exception.
Being that this is a line item, there is no way to prorate the freight in the event there is partial or multiple shipments for a given order. Depending on the nature of your business, this may not be acceptable. There’s a couple of way to address this:
- Restrict partial shipments from occurring by enabling header level invoicing or utilizing fulfillment sets. This will ensure that all line items are fulfilled before issuing an invoice. However, if you’re organization requires that an invoice be generated for each shipment, this would not be an acceptable solution.
- If the first option doesn’t fit your business model, you can place an automatic invoicing hold on the freight line item that is only released when the entire order is shipped. What this does is allow items that are shipped partial to generate an invoice, but delays the billing of freight until the last shipment is made. The automatic hold can be done as a hold source, but releasing the hold would need to be another one of those “slight” customizations you would need. However, if you’re organization needs to include freight charges with every delivery, this solution wouldn’t work for you either.
- If neither of the above option is acceptable, and you need the whole shebang, than a more complex customization is needed that splits the freight item for each shipment. So for example, you have a 10 line item sales order where your freight charge is $50. During the first shipment, 5 of the 10 lines are shipped out there door. What the customization would do is split the freight line item into two lines 0.5 quantities, which in affect would split the price in half. Only one of the split lines would be processed with the shipment, the other split line would be placed on hold. For this to happen, you’re item would need to be setup as “OM Divisible” enabled, which indicates that fractional quantities are allowed.
Getting around this issue is not easy, but can be possible. If you’d like to obtain a copy of my code which resolves the pricing issues with adding line items automatically using the “get item” functionality, feel free to contact me.
Also, to find out how to calculate freight, charges, or adjustments based on the total order amount, check out this article.
Mr. Thompson is a Senior Oracle Applications Consultant with Lexerd Group Consulting. Visit www.LexerdGroup.com to find out more about our firm.
Interested in hosting your own blog? Lexerd Group’s Internet Services division provides specialized blog hosting services that utilizes the Wordpress blogging platform. Visit http://www.lexerdgroup.com/blog-yourself/ for more details.
Entry Filed under: Order Management, Technical, Advanced Pricing, Order to Cash, Receivables

15 Comments Add your own
1. Don | March 4th, 2008 at 10:17 am
I have had the same idea, and came upon your article while trying to solve a related issue. How can the newly added line item be set to a default line type. I need to do this in order to make some funky accounting for the new line (don’t ask), which is driven off line type.
I like your solution so far.
2. bryan | March 4th, 2008 at 10:50 am
Hey Don, I think you would need a custom defaulting rule for this. Right now the defaulting rule simply pulls the default line type that is set on the order type. You will need an API to call that you would point this defaulting rule to so that it knows to derive this line type when the modifier kicks in.
Hope this helps,
Bryan
3. Stan | April 4th, 2008 at 3:27 am
Bryan, Don,
What about using the standard and only the standard ?
There is something wrong when you say:
” Out of the box, there is no way to get around this. Even applying a modifier on top of the order line that is added by the “get item” modifier doesn’t work, because when the line item is added, the Calculate Price Flag is set to “Partial Pricing”. What “Partial Pricing” means is that it will obtain the price that is established in the “get item” setup, but it will neglect any modifiers or adjustments applied to that order line. The only way around this is to manually set the Calculate Price Flag to “Calculate Price”, then re-price the line.”
Indeed yes, the “Promotional Goods” are added to the sales order line with the Calculate Price Fag set to “Partial”, but: Partial does’nt mean that ” it will neglect any modifiers or adjustments applied to that order line”; BUT will allow only modifiers defined in a Pricing Phase in which the Freeze Override Flag is checked. (the case of the seeded phase Line Charge).
To do it define in pricing phase 100 your Promotional Goods
and in pricing phase 200 (with freeze override flag checked) your price calculation for this promotional goods and it works perfectly.
So Oracle Advanced Pricing allows you to proceed without any customization.
Hope that hleps,
Stan
4. bryan | June 11th, 2008 at 1:35 pm
Stan, is it possible to setup a discount modifier that can be applied to a “Partial Pricing” order line with application method of “New Price”. Ultimately, we need our toss-in item to have a price calculated based on a percentage of the total order amount. In order to do this, we need a discount/surcharge modifier to apply during a pricing phase where Freeze Override Flag is checked.
5. Jay | July 19th, 2008 at 12:25 pm
I am trying to use adv pricing to simulate freigth charges which are dependent on the carrier type, originating zip code, desination zip code range and weight.
its really getting complicated for me. i can use any of the above 2 dependencies in a modifier and it works.
any pointers ?
thanks in advance.
6. Jay | July 19th, 2008 at 12:27 pm
[Reposting as i typoed my email id]
I am trying to use adv pricing to simulate freigth charges which are dependent on the carrier type, originating zip code, desination zip code range and weight.
its really getting complicated for me. i can use any of the above 2 dependencies in a modifier and it works.
any pointers ?
thanks in advance.
7. bryan | July 20th, 2008 at 3:23 am
Jay - how is the freight charge calculated based on these dependencies? What’s the formula or calculation?
8. Bill | October 27th, 2008 at 7:11 am
Great write up on Freight Charges and Tax. Since you originally wrote this article…has anything changed in Oracle EBS to allow taxes to apply to the freight charges in OM? I’m contemplating opening up a support ticket with Oracle as I’m working on a project to implement fixed rate charges this month. We currently use the “line item” concept of adding freight “manually” to the order. However it’s prone to errors and our associates will commonly forget to add the freight charge. We are in a high volume order environment like you mentioned so automation is needed. I have my freight modifier setup and working however the tax piece is causing this project not to go live.
Are there any Metalink notes which discuss TAX related to OM shipping charges?
Thanks.
Bill
9. Ragupathi | November 3rd, 2008 at 12:17 pm
Hi Bryan,
Thanks for the insight. It would be of great help ,if you could pass the code to resolves the pricing issues with adding line items automatically using the “get item” functionality.
I would also need your help for the following case :
How to avoid partial shipment of a lot controlled if enough on hand is not present to fullfill the entire line. Help needed in the setup’s.
10. bryan | November 10th, 2008 at 5:16 pm
Hi Bill,
Sorry for the late reply.
To my knowledge, this STILL hasn’t been addressed in the latest released (R12). I’m quite surprised since this is a fairly large gap. Right now Oracle has this listed as an enhancement request under bug 1770295. You can continue to check back with this bug to see where Oracle is at.
Thanks,
Bryan
11. bryan | November 10th, 2008 at 5:18 pm
Hey Ragupathi - let me know if you still need help with your request. The issue with preventing partial shipment of lot controlled items is can be handled easily through configuration or part of the order entry process.
Thanks,
Bryan
12. Ragupathi | November 11th, 2008 at 4:21 am
Hi Bryan,
Thanks for the reply .
I have done the following set up .
1. In shipping Parameter - Under the Pick Release tab . Checked the - Enforce Shipset and Ship Models
2. Attached a Fullfillment set to the order line.
When I pick release the line ,if sufficient quantities are not available to fulfill,the line gets back ordered.
Kindly correct me ,if I am wrong . If you have any other better method ,kindly update .
Thanks
Ragupathi
13. bryan | November 12th, 2008 at 5:03 pm
Hi Ragupathi,
Fulfillment sets are used to delay invoicing until all order lines have been fulfilled. Ship sets are used to prevent partial shipping of an order line or serveral order lines. These ship sets can be applied manually or can be automatically applied through several configuration points.
Hope this helps,
Bryan
14. Ragupathi | November 17th, 2008 at 1:48 am
Hi Bryan,
Thanks for the explanation .
:)
15. Abhishekh Shashtri | November 21st, 2008 at 4:55 am
Hi Bryan,
This is great idea, can you please send me code and details of the get item modifier that you have mentioned in article.
Cheers
Abhishekh
Leave a Comment
Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>
Trackback this post | Subscribe to the comments via RSS Feed | Send To a Friend