Skip to Content
Technical Articles
Author's profile photo Bikash Bansal

SAP Customer Checkout: Article Synchronization with SAP BusinessOne

Hello Everyone,

Very often i get questions from partners in different forums related to issues with article synchronization in SAP Customer Checkout from SAP BusinessOne because of different tax codes handling in their SAP BusinessOne localization. So I am writing here a blog post providing you exactly how does this work and some trouble shooting.

First verify the below mentioned things to be sure that you are facing article synchronization issue with regards to tax codes and not something else
1) Synchronization in general is working. For example customer synchronization is working.
2) You have maintained the right PriceLists in SAP Customer Checkout. We do not synchronize all articles from SAP BusinessOne to SAP Customer Checkout but only those articles which are added to the Pricelist. More about this in the blog(coming soon)
Example: If in SAP Customer Checkout you have maintained Pricelist ID as “100” and there is no Pricelist in SAP BusinessOne with the ID “100”, then nothing will be  synchronized.
3)The tax codes returned from SAP BusinessOne during article synchronization is maintained in SAP Customer Checkout.
Example: If SAP BusinessOne returns tax code A11, and there is no A11 tax code maintained in SAP Customer Checkout, then this article will not be synchronized in SAP Customer Checkout.

If these general issues are not the cause of article synchronization problems, then probably you are facing the issue because of different tax code handling in your SAP BusinessOne localization than expected from SAP Customer Checkout. More specially for your localization the tax codes for an article are not maintained in article master data.
Lets first see how does it work in general and then we talk about potential solutions when tax codes are not assigned to article master.

When SAP Customer Checkout performs article sync from SAP BusinessOne, it expects that for each article, there will be a tax code returned from SAP BusinessOne. Something like example below. You can check this in SAP BusinessOne Integration Framework(B1if) monitoring during article synchronization.

Article 1
<ItemCode>A00001</ItemCode>
<SalesTaxCode>A1</SalesTaxCode>
…..
Article 2
<ItemCode>A00002</ItemCode>
<SalesTaxCode>A2</SalesTaxCode>

Now from where do we read this A1, A0 in SAP BusinessOne. In initial versions of SAP Customer Checkout B1if services for integration, we used to read the database column VatGourpSa from table OITM. This field is also shown in the SAP BusinessOne user interface for Article data, where the end user can maintain A1, A0 etc.
Later based on the feedback from many partners specially from South American countries we enhanced this logic.
For the below mentioned countries we read the field TaxCodeAR from table OITM and return is as SalesTaxCode. If the country is not from the below list then we read the field VatGourpSa and return is as SalesTaxCode. This enhancement was made in SAP Customer Checkout B1if services version Version 3.7.85 onwards. So if it is not working as explained above then kindly check your SAP Customer Checkout B1if services and update if necessary from the SAP Note 2163033


Country list for which the field TaxCodeAR is used
AG Antigua/Barbuda
AI Anguilla
AR Argentina
BB Barbados
BO Bolivia
BR Brazil
BZ Belize
CA Canada
CL Chile
CO Colombia
CR Costa Rica
DO Dominican Republic
EC Ecuador
GT Guatemala
GY Guyana
HN Honduras
HT Haiti
JM Jamaica
KY Cayman Islands
LC St. Lucia
MX Mexico
NI Nicaragua
PA Panama
PE Peru
PR Puerto Rico
PY Paraguay
SV El Salvador
TT Trinidad, Tobago
US USA
UY Uruguay
VE Venezuela
VI American Virg.Islnd

 

When in your SAP BusinessOne localization, tax codes are not assigned to article master data, then article synchronization will not work out of the box. If your customer use-case is simple enough that one article has a tax code and tax codes do not change based on delivery address or this is not a valid scenario for your customer then there are various ways to solve the tax codes sync issue for an article. I have explained some of them below.
1) Change the SAP delivered B1if services
2) Maintain the tax codes in the database field VatGourpSa or TaxCodeAR
3) Use the SAP Customer Checkout B1if services extension concept
4) Develop SAP Customer Checkout plugins to handle it.

1) Change the SAP delivered B1if services
This approach is not recommended. It is not recommended and allowed to change SAP delivered code.
First of all in general it is not possible to change SAP delivered SAP Customer Checkout B1if services because they are read only. However there might still exists ways to achieve it.
You must keep in mind the next update of B1if or SAP Customer Checkout B1if services will overwrite your changes.

2) Maintain the tax codes in the database field VatGourpSa or TaxCodeAR
Once you enter the tax codes in these database fields, your article synchronization will work.
But you need to think about next B1 updates or if this is a feasible approach for your customer.
When new articles are created or articles are updated, these database fields might be affected.
On a personal level i do not recommend this approach for the above mentioned reasons.

3) Use the SAP Customer Checkout B1if services extension concept
SAP Customer Checkout B1if services has an extension concept. Using this extension concept you can change the payload this is send back to SAP Customer Checkout. Hence you can change the payload
from [default Payload when VatGourpSa or TaxCodeAR is empty]
Article 1
<ItemCode>A00001</ItemCode>
<SalesTaxCode></SalesTaxCode>
to [new Payload using extension concept]
<ItemCode>A00001</ItemCode>
<SalesTaxCode>A1</SalesTaxCode>

So for example you can create a UDF for articles in SAP BusinessOne, and in that UDF your customers can maintain the taxcode for articles and using the extension concept you can send the data in the UDF back in tag <SalesTaxCode> instead of an empty tag.
Our extension concept is explained in a very detailed way and these documentation are available in SAP PartnerEdge. Screenshot below. We also have examples where exactly these reading of UDF and setting it as SalesTaxCode are done. I hope they help you to build your own use-cases.
You ofcourse need basic B1if skills to use these extension points and develop your own scenario.
Example: vBIU.sap.CCO.MaterialTaxCode
Extension Point to use: sap.POS.FetchMaterialList_Output

For this option, you will also find the SAP community question and answer very useful.
Gunther Sandtner from our Support has explained this with very nice screenshots.
Also simple case of just 2 taxcodes and multiple tax codes are explained in a easy way.
https://answers.sap.com/questions/12998094/error-in-items-for-customer-check-out.html
Credits to Gunther Sandtner for this.

4) Develop SAP Customer Checkout plugins to handle it.
You can also develop SAP Customer Checkout PlugIns to handle the incoming call from SAP BusinessOne and react accordingly. You need experience with SAP Customer Checkout PlugIn development. Also if you have 500 PoS then you need to maintain this PlugIn in 500 PoS, you need to keep your PlugIn up-to-date. Anyways maybe your use-case is quite specific and hence maybe this solution might still fit your needs.

So in this blog you have learnt about article synchronization between SAP Customer Checkout and SAP BusinessOne. I hope you can this information useful.

Feel free to share your comments and give feedback about the blog.

About me: 
My name is Bikash Bansal. I work for SAP SE, Germany. My current role is of Product Owner for SAP Customer Checkout.
You can find more blogs from me about SAP Customer Checkout here  and you can watch SAP Customer Checkout product videos here

About Gunther Sandtner. He works for SAP, Ireland. He is a long time member of SAP Customer Checkout product support team. 

Assigned Tags

      2 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Joerg Aldinger
      Joerg Aldinger

      Thanks for the extensive recap, Bikash.

      Since the "new UI retail mode" did not make it into FP09, can you share with us the planned availability for FP10? I know, planning can change at any time and for any reason, but it still gives us partners at least a little insight... 🙂

      All the best and keep safe!

      Joerg.

      Author's profile photo Bikash Bansal
      Bikash Bansal
      Blog Post Author

      Hi Joerg Aldinger,

      FP10 is planned for Q3 2020. Mostly August end. Here you can follow our release planning
      https://partneredge.sap.com/en/products/scc/about/versions-releases.html

      Regarding the "new UI Retail Mode", this basically means old retail as deprecated and all functionality in new UI. This is work in progress. In FP09, we did stock overview with B1, also we made 75% of the sales screen configurable, added parameters for functions to make them easily consumable etc.

      While without any commitment, we plan to have all functionality moved to new UI by end of 2020.
      So a new release towards end of year might include this.

      Best Regards,
      Bikash