We are working to integrate our third party eCommerce system (Bridgeline) to directly feed our complete sales orders on the web into the Sales Order Entry Module. We have the integration built to feed SOE working, the problem is since our eCommerce system is calculating sales tax on our Web orders and this sales tax is being fed into SOE as part of the order details, MAS 500 SOE doesn’t want to simply accept the sales tax as calculated, it wants to calculate the sales tax internally when loaded.
We simply want SOE to accept the sales tax data as imported at face value and finish setting up the sales order for fulfillment and delivery in SAGE 500.
Our current Reseller doesn’t have experience with this integration, and it seems like there should be a known solution for this, but our Reseller wants to develop some sort of customization to handle it, but even they are not sure how to make it work.
I just seems to me, that we cannot be the first MAS 500 customer to want to do this so there should be some resident knowledge at SAGE that can recommend a “best practice” integration solution?
I'm pretty sure you can do this. Are you importing into StgSalesOrder and StgSOLine? StgSalesOrder does have a tax amount field. However StgSOLine does not and the insert stored procedure spSOCreateSalesOrder does some checking against the header and line sales tax amounts. I didn't review the code enough to identify how this works ... If you need further help I imagine Joe Noll or Lou Davis can help you figure it out. I'm 99% sure this functionality exists.
Looking quickly at the API, it appears as John states and that the stored procedure spsoCreateSalesOrder calculates the tax for the order by making a call to spciAPIHdrTaxTotal based on information provided and compares it to what you pass in through the API. However, from what I can see this is logged as a warning and not a failure. I did not see any options where you could turn off this functionality in the current version of Sage 500 and have it not do this check. Therefore, you are looking at having to customize the API functionality to accomplish what you need. It appears that spsoCreateSalesOrder uses the value the API calculated and not the value you passed in to save with the new sales order (Insert into tsoSalesOrder). The modification would be to use the Sales Tax value passed to the stored procedure and not the calculated value.I would recommend making copies of all the database objects you need to change and renaming them with your CompanyID or some other identifier (Example: spsoAPISalesOrderIns_ABC. This way you still have the Sage 500 original and any update to Sage 500 will not over-write your customization. And I would recommend testing and reviewing data to ensure everything looks correct before placing into a production environment,If you need assistance with making this modification, you can have your reseller contact Dom Dellomo (firstname.lastname@example.org) for assistance with making this modification.