Skip to content

ShopifySharp 6.29.0 Release Notes

ShopifySharp 6.29.0 has been released and is now available on Nuget! It brings with it a new Shopify API version (2026-07); refreshed, rejuvenated and regenerated GraphQL types and fluent query builders; support for querying interfaces and operations that return interfaces using those query builders; some bug fixes; and, most importantly, support for Shopify’s Expiring Offline Access Tokens.

If you’re using ShopifySharp with a public app, this will be relevant to you. Shopify is requiring all public apps to migrate their permanent offline access tokens over to this new expiring offline access token type by January 1st, 2027. If you’re using ShopifySharp with a public app, you are very likely using these permanent access tokens and will need to migrate.

ShopifySharp 6.29.0 has added support for the new expiring token type (thanks to @GMatrixGames), along with utility methods for refreshing the tokens when they expire. We’ve also added methods for migrating your permanent access tokens over to the new expiring access tokens, which you can start doing right now.

I’ve written up a migration guide here which should cover everything you need to know about the new token type, and how to migrate your permanent offline tokens to the expiring offline tokens before January 1st, 2027.

This release includes a couple of bug fixes:

  • The JSON property name for TaxLine.ChannelLiable was fixed by @zac-schutt in #1255
  • An issue was fixed where the GraphQL serializer was improperly stripping types needed for GraphQL polymorphism.

As mentioned above, ShopifySharp now targets version 2026-07 of Shopify’s API, which means the GraphQL types and fluent query builders have all been regenerated to target the new API version as well. In addition, I’ve expanded the fluent query builder support so that it’s now possible to query interfaces and operations that return interfaces – something that wasn’t possible before this release. In practice, that means we can now use the node(Id) and nodes([Id]) queries with the fluent query builders, to query arbitrary items from the GraphQL API:

var queryBuilder = new NodeOperationQueryBuilder()
.SetArguments(args => args.Id("gid://shopify/Order/1234567890"))
.Id()
.OnOrder(order => order
.Id()
.Name()
);

I’ve set up a new documentation website for ShopifySharp! Check it out at shopifysharp.net – I’m busy working on updating the docs, but I think I’ve got most of the “important” bits in a somewhat decent state. The biggest glaring omission (in my eyes) right now is a lack of any documentation on the fluent query builders, but I’m going to keep plugging away at it.

One thing I want to point out: none of the documentation or guides are written with AI. I write it all by hand, for the love of the game.

If you find ShopifySharp useful, please consider contributing to the project! If you’d like contribute financially, you can do so by sponsoring the author here on Github, sending a one-time contribution via PayPal, by purchasing a copy of The Shopify Development Handbook on Gumroad.

Full Changelog: https://github.com/nozzlegear/ShopifySharp/compare/ShopifySharp/6.28.0...ShopifySharp/6.29.0