Best Practice, connect webshop with Extend Commerce API
- Martin Fransson
- pontus Carme (Unlicensed)
- Ellen Fransson
This document is written to give input on the best way to integrate an external webshop to the Extend Commerce platform via Extend Commerce REST API.
There are important general information and general best practice in this document that you also need to read:
Set the scope
First you need to decide the big picture process in the integration. This is about how many data points that should be integrated. Orders and Balances are often mandatory, generally it does not make sense to integrate without these two data points.
However, you need to make a decision about the following:
Masterdata Customer
- If you should get masterdata about customers from Extend Commerce (normally used if there is a clear B2B process and that the customer needs to be establish in Extend Commerce first to connect to right price lists, customer groups, salespersons etc.)
- Or if you should establish customers in Extend Commerce from the webshop.
- Or if no sync of customer masterdata should be done at all.
Masterdata Products
The products must exists in both systems, should there be any masterdata sync about this?
Prices
When the order is placed from the webshop into Extend Commerce , the price on the order is handled exactly as the webshop states. But If you want to have a "push" of standard prices from Extend Commerce to the webshop, then this must be one of the data points to use as well.
Orders
Create order
In Extend Commerce from the webshop:
Use POST on the method CustomerOrders
Get update on order
We recommend that you activate webhook from Extend Commerce to the webshop. When this is written we support:
- Order picked (equal to order shipped out from warehouse)
- Order reserved (when picking is started, after this no adjustment is allowed)
- Order cancelled
- OrderDeliveryDataChanged (if expected delivery date is changed on an order)
Using webhooks
If you get those hooks, then use the GET customerorders/{id} method to fetch all details about the shipment of the order.
Webhooks not possible
If you can't use the webhook as trigger to fetch data, then use the GET CustomerOrders (you get a list of ordernumber there) here you can use different parameters to find orders that has been changed shipped etc.
Balance
If you want the webshop to have info about the available balance in the warehouse you should call GET ProductAvailability
In this method you can add some parameters to find balance for products with changed balance since a timestamp, specific products and on different warehouses.
Due to that balance is a real time data we also strongly recommend that you use a webhook called AvaiableBalanceChanged from Extend Commerce.
In this hook we will send you itemnumber and new balance. This is as near real time you can get. Every change in available balance will trigger a hook.
Use the webhook as a trigger to call the ProductAvailabilty method. You could use the info in the hook to update you balance, but we recommend that you use it as a trigger to call us.
Extend Commerce will not accept you to call every xx minute for each product to update the balance.
Products
Get products
If you want to get product masterdata from Extend Commerce, then use the GET Products method.
This is also build with a logic where you can get a list with a lot of parameters, including last change date of product masterdata.
Use in this order:
1) Use this to get the a list of productnumbers that you want to get data on
2) Then call the GET single product to fetch all data.
Customers
Get customers
If you want to get customer masterdata from Extend Commerce. Then use the GET Customers method.
This is also build with a logic where you can get a list with a lot of parameters, including last change date of customer masterdata.
Use in this order:
1) Use this to get the a list of customers that you want to get data on
2) Then call the GET single product to fetch all data.
Create customers
If you want to create customers then use the POST Customers method.
Prices
Get prices
If you want to get prices you use the GET ProductPrices method.
In Extend Commerce, the prices are a net list of best price for a customer number. Meaning that if there is one pricelist, one discountlist, one special campaign pricelist active at the same time, Extend Commerce will respond in the ProductPrice Method with a list of "right now" best price for a customer.
Therefore, you need to put in a parameter of a customer number to fetch prices.
Contents |
---|