Amazon Marketplace integration

Hello,

I’ve just joined, but I already searched the forum and docs for any topics related to integration with Amazon Marketplace and I coudln’t find anything. Have you ever considered this feature or perhaps anyone is working on it already? In each case, I think I could contribute.

Thanks!

Andrew

I do not know any starndard solution for syncing Tryton and Amazon but it may be interesting to implement as web_shop backend.

We have a customer that may be also interested on having this integration but for now he is starting to upload his catalog to Amazon. I’ve they get a big volume of sales from amazon they may consider automating the integration but for now they plan is to enter sales manually on Tryton.

To upload products we are generating a route with a TSV file, which is read from an ecommerce integration platform which sends the products to Amazon.

I’m not sure if this helps you.

1 Like

First of all, it’s good to know there are possibly more of us interested in this feature. I wish your customer’s sales grow rapidly :slight_smile:

The related Amazon API doesn’t seem to be very complex so I think we could develop a relevant module in the near future.

Andrew

I have one running in production - but is not finished right now. Until now I automatically import sales an trigger the stages from draft to done. I do not need full integration right now, because there is another third party solution involved.
my TODO:

  • upload invoices
  • manage products
1 Like

Sales import is the most important.
For my cases updating stock quantities in Amazon would be the second most important.
Would you like to share some work?
What is the third party you use, if you can say?

I mean - we can do development or other related work, if needed.

If you want to contribute to tryton you should first create a topic describing the needs and a proposal of implementing it. Once we agreed on the design you can contribute a patch for it.

In this concrete case I think we should first discuss what’s are the needs (we can use this topic) and then discuss an implementation proposal.

1 Like

Yes, this is clear.
Perhaps let’s make a step back and consider if we should develop direct connectors for each channel or use any aggregation service for multiple channels and a single API for us. Forgive me if this was considered here before - I’m new to the project. Personally I’d prefer to invest into direct integration, but I may be biased and willing to have full control over the interface instead of relying on a third party.

I will prefer to have a direct connector and do not depend on any third party service.

Did you know if amazon has an API for conecting directing an where is its documentation? Is there any python adapter for it? If yes, we should consider using it.

The API is available for seller account only, I suppose, but I have it.
I haven’t had time to search for any related python libraries yet.

There’s access for developers as well: https://developer.amazonservices.com/

And there’s a Python package for interacting with Amazon Marketplace Web Services (MWS), which seems to be well maintained: https://github.com/python-amazon-mws/python-amazon-mws

:slight_smile:

python-amazon-mws covers only a fraction of the API, but I think we still should contribute to it to add the missing features and then use it for our integration. How do you think?

Sorry, I did not receive the answers. I use the official package named boto https://aws.amazon.com/de/sdk-for-python/

You need a developer account which will be authorized from a seller account to use the API on behalf of them.

The third party involved is the german Afterbuy https://www.afterbuy.de/. There you can mark a sale which is fulfilled by the seller as sent and upload an invoice. The sales fullfiled by Amazon are automatically marked as sent and you only need to upload an invoice. Since now I only import the sales to tryton and mark them as sent and paid by requesting the amazon API - so in Tryton I have more or less a mirror of the Amazon transactions.
To have a full working module we must also implement the cancellation, retour, partially sent and other stuff.

For products we should implement an other module (product_sale). In real live selling on amazon is not only uploading a product. The seller are using different names and descriptions. Sometimes they are bundling products which have different templates in tryton to one in amazon.

Stock management I have done by routing AFN (amazon fulfillment) to an ‘virtual’ warehouse and MFN (merchant fulfillment) to a real warehouse of the company. But this in reality is more sophisticated since there are different warehouses for special markets on amazon.

1 Like

@jgras, do you think it’s better to use aws sdk instead of direct API calls? In particular in the context of the new Amazon’s Selling Partner API (SP-API), https://developer.amazonservices.com/. I don’t mean to suggest this or other approach. Just want to consider everything thoroughly before we begin coding.

Didn’t know about that. Since I write an other interface right now I’m scared a little bit - after I need a bit recreation to get ready again :surfing_man: Right now there are client libraries for java, php and c# - ask them for their plans for python :slight_smile:

1 Like

@jgras We’ll have to develop our own Python libraries, I’m afraid.

The next weeks I restart developing on my amazon module and I want to ask, if someone is interested in collaboration. I need to migrate the module first and this will cleanup the sale integration.
What I’m looking for is the part of the product management. Possible someone has this part already done to not reinvent the wheel. Feel free to contact me

I think it will be good to use the web_shop module as base of the amazon connector, so we can name the module web_shop_amazon.

Then you can mimic the web_shop_vue_storefront module desing by adding the required information on the web.shop model to sync to amazon and upload all the products information to amazon.

This should be the first steps to sync products data using a cron job. If you share the development on a public review I will be happy to review and test ir… Also anyone can continue your work latter if interested.

Hope this helps

To much dependency. F.e. I have my own web shop implementation by decision.
What are the benefits of using web_shop?

For the product management I will continue to use AWS SDK für Python

It defines the fundamentals for managing web_shops conected to Tryton. This is mainly:

  • Products and categories to sync
  • The language to be used on the webshop
  • The warehouses used to compute the available stock.

Also it adds a link on the sale to the webshop that created it and an external id that identifies the sale on the webshop.

The main benefit is that is a standard module designed and maintaned by the Tryton community.

I imagine your module will add some complementari data as the one listed above. So there are two options here:

  • If the data is required for the amazon connector this should be included as part of the new module
  • Otherwise it can be included on a customization module