Skip to main content

On Shopify we arrange our variants in a certain order for many conversion related reasons such as cheapest first, what we want featured on collection pages (since it defaults to first variant of a product), most popular color first, putting a item line that’s mostly sold out last, etc. We always understood that Acumatica does not have its own variant priority/sort order, which is true as far as customizable, but we were fine managing that on Shopify side only. 
We have found however that template sync will rearrange all the variants on the product in Shopify even if there were no changes, if template is pushed, or if something else changed on the template.

Things we have tried:
1. Unmapping option 1,2,3 in template and stock item export mapping. This stops the variant order from being overwritten, but does not work since it doesn’t support any new variants being added or syncing a new product since it then pushes everything as an empty default with no attributes.
2. Manipulating Acumatica’s enforced matrix ordering, which is by attribute sort and then num/alp but for anyone with a large catalog as we have this also does not work since it affects ALL products sharing those attributes, when variant sort order is a specific item level strategy on Shopify side. So I may wan’t “blue” first on one page but not on every other product with a “blue”, and so on. 
3. Trying to unmap the “position” and “variant position” with various hand typed freehand text keys into the external field in export mapping. None we could figure to try including (position, Position, variant position, variantPosition, sort order, var position….) worked at all. In the json on Shopify this is defined by “position” within the variant object. 

We are using Acumatica 2023 R1 currently. If anyone could offer a solution we’d much appreciate! 

@AHanke 

You are looking for a sort order in the Matrix items? 

 


@KarthikGajendran   If Acumatica had a template item level sort order for matrix items that mapped to Shopify variant position order that would also solve the issue, however the true ask is just how to unmap Acumatica’s forced attribute-matrix-sort-order from syncing over to Shopify. There is nothing in export mapping settings we could find that works to prevent Acumatica’s default sort from overwriting Shopify. 


@AHanke , we make the sort order of variants by the following order: Option1 → Option2 → Option3.

If you don’t want to have this sort order, you can do the customization to override the method MapVariantPositions(TemplateItems local, ProductData external) in SPTemplateItemProcessor graph.


@simonliang91 , thanks for your answer above, but I need more understanding of this. In Acumatica we have Attributes with values, they are assigned to Item Classes, and then used or not used on Template Items.

In Attributes screen, we have Sort Order column, and in Item Classes we have Sort Order column. Is any of them being used to sync with Shopify?

When you say Option 1, Option 2, Option 3 - what entity are you referring to and how is the order defined (alphabetically, internal ID sequence, etc.)?

Thank you in advance!


@Yuri Karpenko , The Option 1, Option 2 and Option 3 are the ProductOption field in Shopify side:
 

The option values are from the variant attribute: 
 

 


@simonliang91 , I did some prototyping and wrote up my findings here. In short, I didn’t find any issues with how the connector works today. Yes, there is a limitation (last paragraph of my write-up), but other than that, I didn’t see any problem. Is that in line with your understanding?


@Yuri Karpenko @AHanke  - not sure if this is directly related to this issue, but I have previously synced template items to shopify and it re-arranges the variant attributes on the shopify PDP Page. 

That is to say we want Size first and Color second displayed for T-Shirts for example.

But our setup had the color as Default Column Configuration and Size as the default row column config so I switched them: 

then on the item class I also sorted the attribute order: 

 

Now every time we sync the Size always comes first.   

One thing I noticed with this in 24R1, is if the order is reversed and this is different than the Shopify PDP, it thinks you are creating new ‘variants’ and the product availability gets set to 0 for all items and the product availability sync fails saying you need to sync the template item.   THere is a published workaround from ACU to delete the prod avail entity sync record, resync the template and then it should work.  but if your order is not correct it will keep causing the error. 

 

 


@kkeating24 , I think we have departed from the OP goal, but it’s okay 🙂. Based on what you’re sharing above, Acumatica works as expected. The issue is 24R1 isn’t clear to me. Are you saying that you’re changing the order of attributes (Size and Color), and then before syncing the Template Item to Shopify, try to sync the Product Availability and it fails and sets qty in Shopify to 0? Maybe, we should start a new discussion…

When re-reading the original post, I think they are looking for an option to control sort order of attributes and attribute values on the template item level, which according to Acumatica, is coming in the future.


@Yuri Karpenko - Could warrant a new discussion just so folks are aware. I think I understand the solution to our issue.  The root of it is in Shopify the Template Item displays Size Above Color.  So when customers shop, they view it by size and see all available colors.  

However the template item in ACU was organized opposite.  Color by Size.   SO when we sync the template item it reverses them in shopify and it we have to correct it.  This has ALWAYS been the issue until I figured out that we can change the ‘column/row’ configuration and the sort order as noted above.

The new issue with 24R1 (since we just upgraded and it’s now happening) is when we sync the template it was still swapping the color and size (before I made config change) AND it was removing the pictures and product availability from the variants and when we tried to sync product availability it said none of the variants existed on Shopify.  ACU recommended we then delete the prod availability record from sync history and resync the template and resync prod avail.  but this would obviously give us the same issue where it was organized incorrectly and we enter the vicious circle....

So i had to figure out that if the Template Sync is correct in the first place (i.e. the config changes so that SIZE is above COLOR in Shopify) it does not erase availability and it does not fail on the sync!  voila we are back to normal.  But now we have to go through and correct about 50 template item configs.  which itself is a large task. 


@kkeating24 , it could be a glitch in your specific situation… I hope it’s not going to be everybody’s experience. We’ve seen similar glitches (I won’t go into details).

I must say that organizing products with variants in e-commerce platforms is simple only on the UI side. On the API level, it’s pretty complicated. Moreover, e-commerce platforms often make changes (v2 vs v3 in BigCommerce, in Shopify, they have new API version every 4 months...). Acumatica is probably trying to stick to the most basic solution, but it obviously makes our lives a lot more complicated.

I hope what you’re dealing with is a one-time issue though.


Reply