web
You’re offline. This is a read only version of the page.
close
Skip to main content
Community site session details

Community site session details

Session Id :
Microsoft Dynamics AX (Archived)

AX 2012 R3 Retail: How would you integrate a 3rd party web store with AX?

(0) ShareShare
ReportReport
Posted on by

Hi guys,

As you maybe know, Microsoft gives you the full package to run a web store (AX headquarter, SharePoint based web store plus all the middleware components like Async server, Channel DB, CRT and so on).

In my new project the company made the decision to use another eCommerce solution instead of the SharePoint. So now I am trying to understand on which level it is the best to integrate this eCommerce system

It is called DemandWare and is a SaaS solution. We do not have full control of that system, but as far as I know, we can consume RESTful APIs and import files.

Let me list a few scenarios:

1) AX DB <-> eCommerce
Sounds sick, but it would be possible. We have the middleware system called Mule (something like BizTalk), which could connect via ODBC to AX DB, get the data and pass on to DemandWare as XML files.

2) AX AIF <-> eCommerce
In this scenario we would have to build quite a few interfaces on AX side, expose them as IIS web services or file adapters and feed the eCommerce via the middleware Mule

3) AX <.... some of the Microsoft Retail components ...> eCommerce.
Deploy a Retail server on premises including the CRT, Channel Database and host the services as WebAPI on IIS. The eCommerce would consume the services via WebAPI RESTful service. However, when I look at this diagram, it looks like all of the components are hosted inside SharePoint. 

What are your thoughts on that?
Scenario 1 and 2 sound really complicated and like an overkill (or rather re-inventing the wheel) to me.
In scenario 3 it looks like it is all within SharePoint and you cannot just leverage that.
I remember in one of the sessions at the technical conference Microsoft said they partnered with company called SiteCore to allow Retail companies to integrate the eCommerce solutions of their choice with AX. But it looks like they only focus on .NET based eCommerce.

Does it mean you are doomed when you are stepping outside of the Microsoft world and have to build everything from scratch for AX <-> Web store integration (all the entities like products, sales orders, stock lookup, gift vouchers plus the underlying transmission stuff like Async server and Real-Time services)?

Really appreciate your thoughts on that.

Thanks,

Waldemar

*This post is locked for comments

I have the same question (0)
  • SergeyP Profile Picture
    2,928 on at
    RE: AX 2012 R3 Retail: How would you integrate a 3rd party web store with AX?

    In case of SharePoint implementation the web services are hosted on SharePoint farm, in case of SiteCore implementation the web services are hosted on SiteCore side but if you want to implement your own web host while leveraging your own online store you can host those web services in any other web service of your choice. To achieve that you don't have to implement everything from scracth, instead you can leverage eCommerce Services layer (which sits on top of eCommerce Controllers->CRT). That layer of Services (it is located in the project Ecommerce.Sdk.Services of eCommerce SDK) is an absract one which means that you can implement it in your way (by, let's say exposing it through Https Binding or anything else you need), the implementation is mainly pass through to the base methods, you can find example in the project Web.Storefront in aforementioned SDK, that project is basically demonstrating how to use a reusable set of eCommerce UI Controls (which are able to communicate to the Service) in any Web Application. So, I would suggest to have a look into that project then you would have much better understanding.

    In addition, please consider reviewing AX Retail: Create a test site using ecommerce checkout controls

  • Community Member Profile Picture
    on at
    RE: AX 2012 R3 Retail: How would you integrate a 3rd party web store with AX?

    Hi Sergey,

    Thanks a lot for the explanation and pointing me to the SDK. I have found a whitepaper about this SDK too.

    Regarding exposing the CRT services via for example HTTP: In our case (we decided to use DemandWare) the eCommerce system has it's own database and in order for the web shop to function, it need to have the data in it's database. Not sure if you can also modify it too be a "thin" frontend and request the data on the fly from CRT (coming from Channel Database I understand) without storing it in permanent eCommerce's own database. But I can imagine you will have to customise a lot.

    Another aspect is performance. I can imagine if the eCommerce has some let's say optimised product search, it will prefer to have the data in it's own structure, rather than calling CRT.

    How is it in case of SharePoint?

    Does it store come content / master data in one of the SharePoint databases or does always get it via CRT from Channel Database?

    I would really appreciate more of your input.

    Thanks,

    Waldemar

  • SergeyP Profile Picture
    2,928 on at
    RE: AX 2012 R3 Retail: How would you integrate a 3rd party web store with AX?

    In case of SharePoint eCommerce implementation there is a Timer Job (in SharePoint's terms, which, in fact is a Windows Service) which periodically (can be customized) calls to a dedicated CRT API which retrieves 2 pieces of information:

    1. About a Channel- this includes mainly navigation category hierarchy and attributes schema

    2. About Products - this includes changed (on AX side) products

    So, the Publishing Job (the "application" which is executed in a context of aforementioned Timer Job), mainly has 2 big steps:

    Channel Publishing and Catalog Publishing (these 2 correspond to an appropriate actions in AX). The channel specific information is technically pretty small (comparing to the later) amount of data but Products could result (based on specific retailer/merchant) in really big amount of data, so, to detect changes in Products the solution uses change tracking which is exposed via set of dedicated methods in ProductManager - this is the client's (top most) layer in CRT. That layer returns information about products but as you correctly mentioned any eCommerce site needs to have good search capabilities, to achieve that the SharePoint Search Service is used, so, once the Publishing Job detects changes coming from CRT those changes are published into SharePoint's Search Index, then the index is crawled (all this happens automatically during publishing time) and finally indexed data is available for end user (to issue direct search requests) and Web Parts which contain predefined search queries to populate their content in a desired way.

    In case of SharePoint eCommerce its Search Index is used for the Product Gallery, Search Page and Product Details Page (and in several other smaller cases) but when the product is being added to a Cart and the flow goes through all other stages, like selecting shipping options, providing payment details, figuring out possible discounts, creating order and so on the application makes calls to CRT to mainly load single (or few - in case cart contains more than 1 product) product by Product ID which technically is not a search but kind of lookup. There are many other CRT APIs, not directly related to product, which are being called in ShoppingCart/Checkout flows. So, to summarize - Product Search in CRT is not used when user is browsing a catalog or looking at item details but the Product (selected/identified during Browse phase) is loaded from CRT to grab all other product's details needed for ShoppingCart/Checkout flows.

    What is published into search index: all products' attributes (schema + values), related products, validity date ranges, images, products' categories, some catalog and channel IDs - in other words everything which is "must have" at Search time, but the rest of the information about Product, signed in Customer and so on is loaded from CRT - this is to avoid overloading Search Index with information which will not bring big value to a Search experience.

    But, of course, if specific retailer's implementation needs to customize this behavior - that is possible because of the SDK's availability.

  • Community Member Profile Picture
    on at
    RE: AX 2012 R3 Retail: How would you integrate a 3rd party web store with AX?

    Sergey, thanks a lot for taking time to describe it in detail.

    I guess that in our case we will have to mimic these mechanisms.

    As AX guy, I try to keep the data and business logic in one place - AX. So I try to avoid synchronizing data and storing it in too many places (same for business logic). Instead, I think best strategy is to call CRT API whenever possible, which will call AX native business logic and get the most-up-to-date data.

    However, the eCommerce channel is very important for us, so the UX and short response times have priority. Means we will need to supply our eCommerce system with the right data in right format. I hope we can still leverage AX standard as much as possible.

    Regards,

    Waldemar

  • Community Member Profile Picture
    on at
    RE: AX 2012 R3 Retail: How would you integrate a 3rd party web store with AX?

    Hi,

    Do you see this EdgeAX eCommerce Connector ?

    www.edgeax.com/.../visionet-to-unveil-its-edgeax-ecommerce-connector-at-nrf-big-show-2015

  • Community Member Profile Picture
    on at
    RE: AX 2012 R3 Retail: How would you integrate a 3rd party web store with AX?

    Thanks for the tip, Florent. I will check this out.

    Do you have any experience with this Connector?

  • Froggitt Profile Picture
    220 on at
    RE: AX 2012 R3 Retail: How would you integrate a 3rd party web store with AX?

    Waldemar - there are a number of AX/ecommerce integration services like EdgeAX into popular ecommerce platforms such as Magento/Demandware etc. What the CRT as described by Sergey gives you over and above most/all of these, is the ability to access AX Retail data (as opposed to standard Dynamics AX data) such as catalogs, and real time services (as opposed to just "interfaces files") such as the ability to evaluate the impact of AX Retail promotions on your basket.

  • Community Member Profile Picture
    on at
    RE: AX 2012 R3 Retail: How would you integrate a 3rd party web store with AX?

    Mark, thanks for the comment.

    Let me recap what we have found out so far.

    I see 3 different kinds of data we need in the eCommerce system.

    Let me list the scenarios from eCommerce user perspective.

    Keep in mind, that good UX is top priority and short response times are key part of that.

    A. User scenario: Product search / Output search results / Browse catalogue
    In this scenarios we have no choice but store the data in eCommerce own database. First, because of performance. And second, the business logic of the eCommerce doesn't have to be changed in hundreds of places to make calls to CRT

    B. User scenario: View Product details page / Change personal details (Address)
    In this scenario, the user not searching hundreds of thousands of Products and Attributes, but is looking at a single Product or details of single Customer (himself / herself).

    So at this time when the user opens the page, we could theoretically call CRT to retrieve the data from (more or less) up-to-date Channel Database.

    But then again: first, will the performance be good enough?

    And second: how complicated is it to change all the eCommerce pages / business logic to retrieve the data directly from CRT instead of the eCommerce's own database?

    C. User scenario: Redeem gift card
    This is one of the scenarios where we have to use the AX Real Time Service. And we will.

     

    So, to summarise: for me it looks like we have no choice but synchronise the eCommerce DB with AX by running say nightly jobs.

    BUT! The question is, can we leverage CRT or any other standard components to do this?

    Can we call CRT to get bulk updates from AX into eCommerce DB?

    For example, I can imagine that we can make use of the change tracking.

    So we would run the Retail scheduler jobs from AX to update the Channel DB. And then either via CRT or by accessing the Channel DB directly, we would only get the updated records.

    I hope all that make sense.

    I am keen to hear your comments on that guys.

    Thanks,
    Waldemar

  • Froggitt Profile Picture
    220 on at
    RE: AX 2012 R3 Retail: How would you integrate a 3rd party web store with AX?

    A. User scenario: Product search / Output search results / Browse catalogue
    In this scenarios we have no choice but store the data in eCommerce own database

    Agree

    B. User scenario: View Product details page / Change personal details

    Mmmmmm - you *could* access the CRT dynamically for product data, but why would you? IMHO access the CRT to pull all (changed) product data into the Demandware database.......e.g. overnight and/or on a schedule. I believe CRT is performant for online when you scale it out, but I'm yet to see it........remember at the end of the day, its a SQL server database sitting at your ecommerce hosting location, so in theory, its as performant (assuming the CRT services are optimised) as whatever you are using for your Demandware database.........EDIT DW is SAAS isn't it you would probably need the channel database and CRT services co-located with your Demandware database.......but I would probably do that whichever option you took.

    Change personal details - use the CRT service - remember personal details and addresses usually needs to go both ways......particularly if that data could change in multiple channels.

    C. User scenario: Redeem gift card

    Agree

    Can we call CRT to get bulk updates from AX into eCommerce DB?

    YES - the channel data is there, CRT services (customer, product, price, basket totalling etc) are there, you need something in or around Demandware to use those services to pull that data into the Demandware database. That way you minimise change to your code Demandware code.

    Look wider though than your three scenarios.......e.g. availability, prices (e.g. channel/RRP/sale/previous), range, dimensions, promotions, VAT, stores, exchange rates, currencies, order history across multiple channels, and using the Online Transaction to create the SO........and in future you may want loyalty, reserve and collect in store.......

    Think of all your Demandware data and how/where/when it gets updated from your master data in AX.......pretty much everything could/should/would be using the CRT, which then drives the Demandware data.....only ever maintaining data in one place.

    See attached image........the yellow box is your Demandware store, and the red box is your connector pulling data from the CRT into Demandware.

  • Community Member Profile Picture
    on at
    RE: AX 2012 R3 Retail: How would you integrate a 3rd party web store with AX?

    Sorry, but i have not experience with this connector

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Responsible AI policies

As AI tools become more common, we’re introducing a Responsible AI Use…

Pallavi Phade – Community Spotlight

We are honored to recognize Pallavi Phade as our Community Spotlight honoree for…

Leaderboard > 🔒一 Microsoft Dynamics AX (Archived)

#1
Martin Tocauer Profile Picture

Martin Tocauer 4

#2
AlissonGodoy Profile Picture

AlissonGodoy 2

#2
Community Member Profile Picture

Community Member 2

Last 30 days Overall leaderboard

Featured topics

Product updates

Dynamics 365 release plans