Performance issues and rate limiting

erikteichmannerikteichmann Member Posts: 3

Hi,

I'm in the midst of migrating a client from Lightspeed eCom to Woocommerce (keeping Lightspeed POS). Our brief was to use the Lightspeed<>Woocommerce sync plugin available from Woocommerce, but the performance has been terrible. The store has nearly 10k products, and trying to import all of them through the plugin proved impossible, it would either increment the percentage complete while doing nothing, or just hang after importing anywhere from 5-50 products. I wound up having to do a manual export-import and do some voodoo to get the plugin's tables to line up right.

Anyway, I've got that working, but I'm still needing to use the plugin to pull in new products as they are added to Lightspeed, as well as sync stock quantities. And the issue that I'm having is that it seems that the API is extremely throttled, or rate-limited, or something. Is there anything I can do to get this process to move faster? I've done some work on the API directly and have also seen rate limit issues, so I know it's not the plugin itself causing the problem.

Tags:

5 comments

  • gregaricangregarican Member Posts: 522 

    While you posted this in the Retail area, I assume you are talking about E-com. For retail, here is a detailed explanation about rate limiting --> https://developers.lightspeedhq.com/retail/introduction/ratelimits/. Here is where E-Com rate limiting is explained --> https://developers.lightspeedhq.com/ecom/introduction/rate-limiting/.

    I think there are some cases where you can get a temporary rate increase. For example, when migrating over as a new customer. I'm unsure if there are cases where customers can request and pay extra for a higher rate limit.

    It is a challenge to workaround for sure, although most cloud-based service providers with API endpoints utilize some sort of rate limits. In Lightspeed's case it's rather stingy :)

  • erikteichmannerikteichmann Member Posts: 3

    Thanks @gregarican -- I am talking about the POS api, because it's an ongoing integration, client is dropping eCom in favor of POS + Woo.

    Any idea who I would talk to about rate limit increases?

  • gregaricangregarican Member Posts: 522 

    Over the years we have had a few different Lightspeed account reps. The last one I heard from was back in January --> Diego Campanile <[email protected]>. Hope this helps point you in the right direction. Good luck!

  • VintageWineGuyVintageWineGuy Member Posts: 101 ✭
    edited June 16

    I am actually surprised, is the bottle neck on the Woo side? On the LS Retail Api the "cost" of a GET is only 1, so you can run 60-120 (depending on the time of day and bucket size) GETs at 100 records per before the bucket is full and you hit the limit. I would think it would be able to serve up data faster than Woo or the sync tool would be able to write it. Based on your description of it writing 5-50 items then quitting, I would not think the rate limit would be the issue - it should have been handed 100 items in one API call every second. I am not familiar with the plug in - perhaps it is written to GET 1 item at a time? But even then it would get 60 items a minute minimum - which while painful at conversion should be fine for ongoing updates.

    Just suggesting that based on what you are describing, I wouldn't be looking at the LS Retail API as the limiting factor.

    Now if you are writing to LS Retail via API, that is super slow, but doesn't sound like that is the case.

  • gregaricangregarican Member Posts: 522 

    You are thinking along the right lines I believe. The GET's are less expensive than the PUT's and POST's. Out of curiosity are you performing these API requests and including a lot of linked areas, such as load_relations=["CustomFieldValues", "CustomFieldValues.value","ItemShops", "Images", "TagRelations.Tag", "ItemECommerce", "Category", "Note"]? If so then the response time will be slower, although this isn't the same constraint as an API limit being hit.

    What do the response headers indicate in terms of the API limits?

Sign In or Register to comment.