Solved

Shopify Upload Sales Prices - Input size greater than 250 Error

  • 30 November 2023
  • 14 replies
  • 278 views

Userlevel 7
Badge +6

Hey folks,

Working on the B2B integration of Acumatica and Shopify. While uploading Sales Prices (Price Lists), getting this error:

At least one GraphQL error has occurred. Error: Input size greater than 250.

Any ideas how to overcome this? I have a suspicion, that the issue is that I have customers / companies uploaded already, and the quantity of those companies who use this specific price list is larger than 250.

I uploaded a dozen other price lists without an issue, but they are used by less than 250 customers each.

@KarthikGajendran , @smarenich , @josh.fischer , any thoughts?

icon

Best answer by Yuri Karpenko 20 December 2023, 16:09

View original

14 replies

Userlevel 3
Badge

Hi @Yuri Karpenko, there is a limitation on Shopify side (https://shopify.dev/docs/api/usage/rate-limits and https://shopify.dev/changelog/graphql-input-objects-limited-to-250-items) and now we are doing the investigation is there any way to get around this limitation. Will keep you posted here. 

Userlevel 7
Badge +6

@KseniaBurtseva61 , thank you! I already provided 2 suggestions in the support case I have open, but will also mention them here:

  1. Incorporate condition into the connector, that will split the array into multiple arrays and multiple calls to Shopify GraphQL, when the number of assigned customer locations is over 250. BTW, it’s a good idea to do it as a separate procedure that will apply to other entities as well. Because, potentially, we can get into this issue on other entities as well.
  2. Use the bulk operation - https://shopify.dev/docs/api/usage/bulk-operations/queries. I think this is a less desirable approach, because there is no notification back when the operation is completed, rather, a host should poll the recipient on the status. I would only use bulk operation when we know nothing will fail, and that the data is squeaky clean, which might not be the case.

Thanks for your attention to this matter!

Userlevel 5
Badge +1

@Yuri Karpenko, thanks for your solution. 

for the solution 1, I did the testing, it doesn’t work for the PriceList. When we create the Catalog via GraphQL api, we can only add up to 250 CompanyLocationIDs to this Catalog, this is the limitation of Shopify GraphQL API. And then if we call the update API to update the Catalog, we have to provide the CompanyLocationIDs as well, the CompanyLocations that don’t include in the list, they will be removed from this Catalog, so that means it has the same 250 limitation.

for the solution 2, we don’t implement the bulk operation in our connector currently. 

Userlevel 7
Badge +6

@simonliang91 , thank you for your response! I will try this tomorrow, but to make sure we’re on the same page: are you using this call: https://shopify.dev/docs/api/admin-graphql/2023-07/mutations/catalogContextUpdate?

Thank you!

Userlevel 5
Badge +1

@Yuri Karpenko , thanks for your reply. 

I didn’t test catalogContextUpdate, I did test catalogUpdate(https://shopify.dev/docs/api/admin-graphql/unstable/mutations/catalogUpdate). 

I checked the document about the API catalogContextUpdate, it may be useful in this case. 

I did a small testing just now, the Ids in the contextsToAdd field would not overwrite the existing CompanyLocationIDs, that means we may use this API to add the CompanyLocations more than 250 limitation, but there is no enough CompanyLocations in my test environment, so I cannot confirm it now. 

If you have 250+ CompanyLocations in your store, you can try and tell us. If this solution works, we will improve it in our connector. Thank you.

Userlevel 7
Badge +6

@simonliang91 , I can confirm it’s working (catalogContextUpdate). I could add 1238 locations using this method. My code was cycling through the IDs and adding them 1-by-1, but I suppose it will also work with 250+250+250+...+remainder.

If you implement it, please let me know the build of Acumatica it’s available (I suppose, the support case will also get updated with that info).

Thanks for engaging with us here.

Userlevel 5
Badge +1

@Yuri Karpenko , I have created the ticket for this issue. We will fix it as soon as possible.

Userlevel 5
Badge +1

@simonliang91 we are having this same issue. Has a fix been implemented in any 23R2 updates yet? What is the solution otherwise.

Userlevel 5
Badge +1

@nathantrauscht and @Yuri Karpenko , we are planning to fix it in 2023r207.

Userlevel 5
Badge +1

@simonliang91 @Yuri Karpenko 

We have an open Case with Acumatica - I have been told the fix release is scheduled for next week.

2023r207

Userlevel 7
Badge +6

@nathantrauscht , thanks! That’s good to know!

Userlevel 6
Badge +5

They are also fixing the issue where it imports 0 after fulfilled in this next build on 1/26/2023.  Looking forward to the release notes, sounds like a good release for Shopify.

In case someone is trying to get this to work before they can update to this build, my work around was just setting one company to use the price list, I had to shorten the price list class name as well, then it synced the catalog.  

In Shopify I then bulk applied catalogs to all other companies.  

So it’ll get it going, but this fix will be nice to keep it up to date automatically.  

Userlevel 3
Badge

@Yuri Karpenko hi, I have a good news - 23.207.0025 build with fix has been released today, you can find Release Notes here: https://acumatica-builds.s3.amazonaws.com/builds/23.2/ReleaseNotes/Release_Notes_for_Acumatica_23_207_0025.pdf 

Userlevel 7
Badge +6

Thank you, @KseniaBurtseva61 !

Reply


About Acumatica ERP system
Acumatica Cloud ERP provides the best business management solution for transforming your company to thrive in the new digital economy. Built on a future-proof platform with open architecture for rapid integrations, scalability, and ease of use, Acumatica delivers unparalleled value to small and midmarket organizations. Connected Business. Delivered.
© 2008 — 2024  Acumatica, Inc. All rights reserved