How does one put a service contract as a line on a sales order?

Looking in the database, erp.orderDtl has a column LineType which can be PART or CONTRACT, but for the life of me I can’t see how to add a line item for a contract to a sales order.

I am wanting to put our service contract as lines on sales orders and bill them that way, as opposed to just doing contract billing… if its possible.

Why?

  1. provide a natural place to store the customer’s PO
  2. when customers buy a contract we allow them to pay for it using their “Loyalty Credits” (a customization we have in place). We have a LOYALTY CREDIT part that we put on a line, and our BPMs deduct its price from the sales order price and also from our “Loyalty_Balance_c” UD field on the customer (simplistically speaking, there’s probably a bit more to them than that)

We would need to reimplement the BPMs on service contract entry on service contract entry otherwise, which is our fallback position.

Separate thought: If we can add the contract as a sale order line, I assume we leave “ready to Invoice” unchecked on the sales orders so the Sales order handles the invoicing and we don’t get a double up?

The service contract offering is notoriously weak in Epicor, which is why we are writing our own. In classic Epicor, there was a ‘New Contract Line’ option is Order Entry. is that not available in Kinetic ?

I just found it in Kinetic

2 Likes

Nice. I like that. What happens to the balance if they do an RMA or some sort of credit?

@Hally I wasn’t directly involved in the implementation, but I believe we have a LOYALTYCREDIT part we can put on sales orders at whatever value we decide, and a BPM fires to adjust dbo.Customer.LoyaltyBalance_c (we also track loyalty spent and earnt as well as the balance). It also adds the LOYALTY CREDIT part line at $0 price with a discount thus reducing the overall order price. Certain classes of part we sell earn loyalty credits also via BPMs, but there’s no BPMs on service contracts at the moment.

@AndyGHA I also found the New Contract Line menu option but not having much luck with it; I enter the contract number, (pink as its a test environment :blush: )

…Brings across the price and details… all good.

But I need to ship the sales order to invoice it, and I then get stuck:
image

I don’t understand what its on about, line and release both have order qty 1: ** UPDATE this error message is coming from one of our own BPMs, will look at with our BPM developer :slight_smile: **

1 Like

looks like that’s coming from an exception in the catch part of the code widget in that bpm on CustShip.Update

Indeed it is, have sent it off for review by those who know their C# from their D flat.

1 Like

Maybe its an E minor. LOL :rofl:

SUCCESS UPDATE

We were able to successfully put the contract on a sales order, which allowed us to add our loyalty discount part, and invoice it successfully.

Key points:

  • Don’t mark contract as ready to invoice , so it doesn’t get picked up by contract billing when invoicing.
  • After sales order is invoiced, Contract state changes to invoiced. (Like you would normally expect, but somehow with Epicor it came as a pleasant surprise!)
  • I think we will mix direct contract billing with contract billing via sales order. The latter adds some extra steps but at least provides a natural home to record the customer PO and a means to do our discounting when needed.

Anyone else doing contract billing have any other guidance as to pros and cons of one approach vs the other?