Compare at price needs to be higher than Price API Requirement

Cheney
Tourist
5 0 6

Hi

I use execilify to import export Items to/from shopify and I had an error message
"Failed. Compare At Price: Compare at price needs to be higher than Price"
I need both the Price and the variant price to be the same which shopify allows.
I contacted excelify and they said
"So this seems to be a new Shopify API requirement. We recently changed our Shopify API version and unfortunately it no longer allows you to set the Compare at Price equal to the actual Price."

This API requirement does not make any sense. especially when the built in Shopify Import allows it.

Is this a mistake? and how do I get it fixed?

Replies 20 (20)
Anonymous
Not applicable

Well if they don't support then you should not use their services

 

I can definaltey help with import/export using API

Tbird
Tourist
5 0 4

This happened to me as well. I am using another app and their technical support told me the same thing just a few hours ago: "Shopify recently changed their policy, and merchants can no longer set their products compare at price to lower or equal to the products price." I ended up doing a "regular" Shopify import.

Maris
Shopify Partner
313 5 68

Hello, @Tbird and @Cheney !

So sorry you have to suffer through this change, but it indeed is the new rule Shopify has enforced in their latest API version - to require Compare At Price be higher than the Price.

The most confusing here is that the Admin itself still allows you to enter any value in the Compare At Price, and also the Admin CSV import allows that.

I have raised this serious concern with the Shopify Developer Support, and passed your frustrations over. Let's see what they will reply, and what solutions there might be to this...

But I suspect that this is allowed in Admin not for long and is going to be enforced soon there too, so the best way forward for you would be to plan and adjust that this is a new rule that is going to stay. Maybe you can achieve the same effect of Compare At Price on the product page by modifying the Theme - if the Compare At Price is empty, then show the Price?

Maris
Excelify.io

Matrixify (Excelify) | Bulk Import Export Update Migrate | https://matrixify.app
durrrr
Tourist
9 0 3

Funny. I imported tens of thousands of products last week all with them the same (we're on headless and this is how we want it). Went to upload the few hundred that needed to be fixed today and now I can't. The way headed Shopify should work is to just not put the red cross if they are the same. Going back to edit the compare-at price for every change is a huge drawback of Shopify. Now I need to go in and create a variant metafield across every variant to place all of the MSRPs in there. 

Maris
Shopify Partner
313 5 68

Hi, all!

Can you please give some real-life cases on why do you need Price to be the same as Compare At Price; and why do you need sometimes Price to be higher than the Compare At Price?

That is - to raise the awareness in Shopify of this need, as the intended use for "Compare At Price" logically is "the higher price that other places usually sell for", and it's puzzling as to why the price should match the Compare At Price, or even be higher than that. Maybe some important use-cases were overlooked?

According to information from Shopify - it's planned to enforce those same validations in Shopify Admin and CSV import after Black Friday.

Thanks so much!

 

Matrixify (Excelify) | Bulk Import Export Update Migrate | https://matrixify.app
Tbird
Tourist
5 0 4

Hi @Maris , I appreciate the question and your work!

We do not set Price to be higher than Compare at Price, however we do sometimes need them to be the same.

Now, as I am not an expert Shopify user, there might be, and probably likely are, better/alternative ways of achieving my objective. Please enlighten me if you have any suggestion. 🙂

We use Compare at Price (which for us is vendor´s Recommended Retail Price) as an independent variable based upon which we determine the Price (dependent variable). For example, we sometimes use a bot that runs sales during certain hours of the day where it calculates the sales price as a percentage of the RRP (Compare at Price). When the sales period is over (often early AM hours), it is set to return the sales price to RRP. What happened  - probably the day when this new policy went into effect when the bot tried to restore Price to be equal to RRP after a sale - is that we ended up with lots of Compare at Price fields in blank. Does this example make sense?

More generally speaking, we have been using API resources to run bulk price updates.  I get a masterdata sheet from vendors with thousands of SKUs and I normally wouldnt worry about having SKUs in there whose Compare at Price and Price are equal.  With this new policy, apparently what happens is that where I have Compare at Price equal to Price in the data I am trying to bulk edit, it will leave a blank field in Compare at Price.

Our store owner moves the Price up and down all the time, and he uses Compare at Price as a reference (as mentioned above).

Also, often with new releases of products in the luxury space, selling at RRP is recommended (if not a requirement!).

It would be great if Shopify could let us continue loading prices where Compare at Price and Price are the same. We do not need the customer to see both prices when they are equal, we just need to be able to load them bother in the system and be able to use Compare at Price as a reference value for our pricing decisions.

I hope I was able to explain our needs. As you can see, it is really more a backend issue for us, isnt it?

 

Cheney
Tourist
5 0 6

Hi

 

Thanks for following this up Maris.

 

One reason is lots of different people within the company alter prices in Shopify and some will just go in and change 1 variant within a product to the new sell price (as we have low price point set so all variants will sell at the lowest price) other people will change all the sell prices of all the variants, but within Shopify without using imports. If they do this well will lose the Compare at price the item will not end up 'on sale' on our website as the user intended along with losing the SRP it was originally set to. This means lots of items on Shopify will end up with unknown compare at prices and will not show up as sale items on our website.

Another reason is lots Imports I do using spreadsheets have both products on sale and at full price on them and having to remove the compare at prices for the ones at full price is going to add another process which is not required now.

Also occasionally we sell at above the Suggested Retail Price where additional costs have occurred when purchasing Products or making products, but we still need to know the usual Suggested Retail Price for reference.

I have also spoken to the owner of our business and he says having the Compare at Price is Key and he uses it as a reference point when setting sell prices. Also If he is doing it using an exported Spreadsheets not having the SRP all in 1 column of spreadsheet will make it more difficult.

Another thing that may been overlooked is that if people are setting prices in other platforms and then are automatically imported to Shopify by third party companies which may have not updated their APIs to match Shopify’s. so, lots of companies are going to end up with problems just before Christmas.

Can I ask: What is the reason they are giving to why this change needs to happen?

This change is going to cause problems for so many companies, especially in the run up to Christmas and the New Year Sales. This change needs to be stopped completely or at least put on hold until next year; and API requirement for this issue reversed. I cannot see a good reason to change it when it works perfectly as it is. It just makes no sense.

And thank you again Maris with your help in this situation, I do appreciate it.

Tbird
Tourist
5 0 4

Another reason is lots Imports I do using spreadsheets have both products on sale and at full price on them and having to remove the compare at prices for the ones at full price is going to add another process which is not required now.

Yep, exactly. Adding more work = making it more costly to use Shopify.

Maris
Shopify Partner
313 5 68

@Tbird and @Cheney - thank you both for your elaborate responses!

I will make sure Shopify Developer Support sees them and can take them into account when making further decisions on how to proceed with this change.

Just a couple of ideas how to potentially work around this issue:
1. Use the "Cost per item" field to store the SRP (I know it's not the same, but still - a field where to keep a reference number).
2. Use the Variant Metafield, any one you would like, to store the SRP or any other reference numbers that you can see in exports.

I know, those solutions are much more clumsy if compared to Compare At Price, but it might be a more "correct" way to do those things from the point of view of how Shopify has designed the meaning of the "Compare At Price" field.

If you use Excelify to import/export those fields, you will still get them aligned on the exported table for each variant row. Just the problem will be here that any imports or exports with Cost per item or Variant Metafields will be much slower. Another issue when using Variant Metafield will be that you will not be able to see the values on the Admin (because you "normally" can't see or edit Metafields in Admin) - you will be able to see them and edit them in the exported Excelify spreadsheets.

Let me know if you need help with that.

Meanwhile, hoping that Shopify will step in here with also the explanations on how else you could achieve the same (very understandable) use-cases.

Maris

Matrixify (Excelify) | Bulk Import Export Update Migrate | https://matrixify.app
Maris
Shopify Partner
313 5 68

Hi, all!

Letting you know that we have made a workaround in the Excelify app which now allows both - importing/exporting the new Product Status field with the new Shopify API, AND also allows setting the Variant Compare At Price such that it's not required to be higher than the Variant Price.

All your earlier imports that were setting the Compare At Price as equals or lower than the Price should work now.

There is a high probability that Shopify will move forward and will enforce that requirement in the Admin after the BFCM, but still, a slight chance that all of your feedback made them reconsider this requirement as well.

Anyway, for now - it should work as you were used to (in the Excelify app).

So sorry for this stressful period, and really hoping it's some good news, for now, to live through the sales season.

Matrixify (Excelify) | Bulk Import Export Update Migrate | https://matrixify.app
Cheney
Tourist
5 0 6

Thankyou @Maris for fixing the issue in Excelify. Done lots of imports now with varying Prices and it works as it used to.

Can you also pass on a suggestion to the Shopify developers you have been corresponding with which will help if there are moving forward and enforcing the price API requirement:

Can they instead add a field Call 'Reference Price' next to the 'Cost Per Item'. In the same way they did when they added the 'Cost Per Item' Field. Just like the image below.

This could then be imported/Exported in the same way the cost is.

I would still prefer them not alter how it works, because I will still have to blank the 'Compare at price' Cell in the spreadsheet every time where the 'Price' equals the 'Compare at price' and if they do not add a new Field I will lose some of my compare at prices/SRPs which my company needs.

Pricing Image.PNG

Again Thankyou for your help, I really appreciate it

Maris
Shopify Partner
313 5 68

Hello, @Cheney !

Thanks for this mockup and idea - honestly, I totally agree that your provided solution totally matches what's actually needed (for which Compare At Price is being used at the moment as a workaround). Very good point!

I have passed it to Shopify Developer Support.

🤞- fingers crossed!

Matrixify (Excelify) | Bulk Import Export Update Migrate | https://matrixify.app
FrankAuwers
New Member
2 0 0

I have the same problem.

If we don't wont a compareAtPrice anymore, we must be able to clear it out.

I can't find any Rest API or GraphQL instruction for this.

JOSEPH_ANDERSO1
Shopify Partner
35 0 7

Hi,

Can I just leave the compare_at_price as null? I just create product variants in the API as needed. My code works with no errors. Will this satisfy their requirement? Otherwise, I would make the price a penny above the regular price and that seems odd:

POST https://jmatestshop.myshopify.com/admin/api/2020-10/products.json HTTP/1.1
Content-Type: application/json
X-Shopify-Access-Token: X
Host: jmatestshop.myshopify.com
Content-Length: 427
Expect: 100-continue
Connection: Keep-Alive

{"product":{"body_html":"Test","created_at":"0001-01-01T00:00:00","product_type":"simple","title":"Test Item 1234","updated_at":"0001-01-01T00:00:00","variants":[{"created_at":"0001-01-01T00:00:00","fulfillment_service":"manual","inventory_management":"shopify","inventory_policy":"continue","option1":"Medium","position":0,"price":"1","requires_shipping":true,"sku":"123","taxable":false,"updated_at":"0001-01-01T00:00:00"}]}}

Response 200 OK

{"product":{"id":4856677826603,"title":"Test Item 1234","body_html":"Test","vendor":"JMATestShop","product_type":"simple","created_at":"2020-12-08T08:21:40-05:00","handle":"test-item-1234","updated_at":"2020-12-08T08:21:41-05:00","published_at":"2020-12-08T08:21:40-05:00","template_suffix":null,"status":"active","published_scope":"global","tags":"","admin_graphql_api_id":"gid:\/\/shopify\/Product\/4856677826603","variants":[{"id":33029379391531,"product_id":4856677826603,"title":"Medium","price":"1.00","sku":"123","position":1,"inventory_policy":"continue","compare_at_price":null,"fulfillment_service":"manual","inventory_management":"shopify","option1":"Medium","option2":null,"option3":null,"created_at":"2020-12-08T08:21:40-05:00","updated_at":"2020-12-08T08:21:40-05:00","taxable":false,"barcode":null,"grams":0,"image_id":null,"weight":0.0,"weight_unit":"lb","inventory_item_id":34779043758123,"inventory_quantity":0,"old_inventory_quantity":0,"requires_shipping":true,"admin_graphql_api_id":"gid:\/\/shopify\/ProductVariant\/33029379391531"}],"options":[{"id":6325804400683,"product_id":4856677826603,"name":"Title","position":1,"values":["Medium"]}],"images":[],"image":null}}

Greg_Kujawa
Shopify Partner
1020 83 261

@JOSEPH_ANDERSO1 To play it safe and ensure no future "gotchas" I would suggest explicitly setting the compare at price to be null when issuing the request. See my example, which is using GraphQL. But the REST JSON element would be similar. Just named compare_at_price.

 

https://community.shopify.com/c/Shopify-APIs-SDKs/GraphQL-clear-CompareAtPrice/m-p/976153#M59555

 

Cheney
Tourist
5 0 6

Hey @Maris 

Looks like the have reverted the API Validation for Compare at Price

https://shopify.dev/changelog/pricing-validations-removed-from-all-api-versions

"Developer changelog

Recent changes
Pricing validations removed from all API versions

Effective January 27, 2021

In our 2020-04 API version, we added validation requiring the compare_at_price field to always be greater than the price field on variants.

After further review of use cases around the current use of the compare_at_price field, we're reverting the addition of validation between the price and compare_at_price fields on variants, and notifications about this change as we will be removed from all versions."

Thankyou for all your help with this.

Regard Richard Cheney

 

Maris
Shopify Partner
313 5 68

Yee, @tourist!

 

Thats fantastic news for all of us! 🤸‍♀️

Thanks for walking this path together! 👍

 

Maris

Matrixify (Excelify) | Bulk Import Export Update Migrate | https://matrixify.app
Dank13
Tourist
10 0 6

Well for starters Compare at price really should be called RRP or MSRP, which is the correct nomination of it, we use Lightspeed POS and that syncs our products to Shopify using Accumula.co as a link between them.

After this change the RRP (how we call it in Australia) is no longer being sent to Compare at Price (even tho i can still set it manually on shopify).

We installed a plugin called https://apps.shopify.com/advanced-custom-collections and that creates a Specials collection that compares the price and the compare at price and when ever the price is lower it adds the product automatically to that collection, however when there is no compare at price, when we drop the price of an item there is nothing to compare to... so that means we need to change the price and also add the compare at price, which it doesn't make the process any easier.

The other thing our site has is a Finance calculator, that uses RRP or compare at price to calculate repayments as buy our store rules, even if the item is on special if you decide to finance you will be financing it at full price or RRP, so yes we DO NEED compare at price there even if it's the same. Because if you don't our finance calculator displays $0.00

Screen Shot 2021-02-10 at 11.08.58.pngScreen Shot 2021-02-10 at 11.05.48.png

Tbird
Tourist
5 0 4

Hi, friends.   What is the current policy with respect to Compared Price? Can Compared Price be equal to Price?