Compare at price needs to be higher than Price API Requirement

Shopify Partner
303 5 57

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. | Bulk Import Export Update Migrate |
3 0 3

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

Shopify Partner
303 5 57

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! | Bulk Import Export Update Migrate |
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.

Shopify Partner
34 0 7


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:

Content-Type: application/json
X-Shopify-Access-Token: X
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}}

Shopify Partner
860 74 185

@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.