Free YouTube Transcribe

Video transcript

Shopify's Biggest AI Update Yet (Editions 2026)

Coding with Jan - Shopify Developer · 6,635 words · 31 min read

Want to search this transcript, jump the video from any line, or download it as TXT, SRT, or VTT?

Open in the transcript tool

Full transcript

What's in today

0:00Hey everyone, Jan here, coding with

0:01Jan.com. So, Shopify Editions just

0:04dropped with tons of new updates for

0:06developers, and to understand what they

0:08all mean, we'll break them down with no

0:11one less than the VP of product for

0:13developer platform, admin experience,

0:15analytics, and flow. I'm excited for

0:18this one. Let's have a look. All right,

Meet VP of Product

0:20Ethan, super excited for our talk today.

0:22We have lots of good topics to cover,

0:24and before we dive right in, the last

0:26time [snorts] we spoke, your role at

0:27Shopify was slightly different. You were

0:29director of the developer platform, and

0:31now I also saw keywords like analytics,

0:33Shopify flow, admin experience. So,

0:36yeah, before we dive right in, what does

0:37your day-to-day look like now?

0:39>> Uh yeah, so I basically work on a team

0:41called Shopify Foundations. We work on

0:43the end-to-end developer experience,

0:45think like shopify.dev, dev docs, dev

0:47community,

0:48the the CLI for building apps,

0:52dev dashboard, and then all of the

0:54distribution that developers might do to

0:56things like the app store, also our

0:57partner directory.

0:59I work on a lot of the primitives that

1:00developers use to build their apps, like

1:02things like metafields, meta objects for

1:03storage,

1:05Shopify functions, which is a key

1:06primitive for for doing business logic

1:08at checkout,

1:09our Polaris UI toolkit, all all of those

1:11capabilities for for developers.

1:14Yeah, and then I also work on flow and

1:15analytics, which are kind of like two

1:17merchant power tools, but also are

1:20critical parts of developer capabilities

1:22as well. We have flow triggers and

1:24actions that they can use

1:26to plug into that surface, and now we

1:27have increasing number of like APIs and

1:29capabilities for analytics as well.

1:31>> Okay, that's awesome, because yeah,

1:32today we have a lot of technical topics

1:34as well, and you are a good sparring

1:36partner for that, because you do have

1:37the technical knowledge. Why don't we

1:39dive right in? Apps are a super hot

Webhooks are changing completely

1:41topic right now.

1:42>> Yeah.

1:42>> Lots of people are shipping apps,

1:43especially in the agentic era, and one

1:46of the things I saw on Shopify Editions

1:48is that webhooks are completely rebuilt

1:51from scratch.

1:52>> Yeah.

1:52>> And I think we should catch the audience

1:54up here a little bit, because not

1:55everyone might be aware what webhooks

1:57even are. So, when you build an app and

2:00you need to request data, you can do

2:01that through Shopify's API. Let's say

2:03you need some product data,

2:05but there are also instances where you

2:06need to be notified about certain

2:08events, like an incoming order, right?

2:09Then it would be inefficient to like

2:11query the API every 5 seconds, is there

2:12a new order? Is there a new order? So,

2:14then you subscribe to these webhooks,

2:16which is kind of like Shopify's event

2:17system.

2:18>> That's right.

2:19>> What is changing?

2:20>> What's changing? Yeah, great question.

2:22So, today, uh let's compare before and

2:24after. Um as you described, webhooks, um

2:28current webhooks are a way to be

2:29notified when something happens. So,

2:31let's say, for example, um I want to be

2:33notified um when a price changes. Like,

2:35hey, I do something that involves like

2:37warranties and the price of a product

2:39matters a lot for my use case. Um with

2:42webhooks today, you would subscribe to a

2:43product update webhook, and what we

2:46would do is we would send you this

2:47ginormous payload of

2:49the entire product and everything uh

2:52about that product in its new state.

2:55Um the biggest challenge with today's

2:57webhooks is that the developer is left

3:00figuring out what actually changed. And

3:02so, you get this massive payload of a

3:04product, which could have 60, [snorts]

3:0580, 100 fields on it. Um and what you

3:09really care about is did the price

3:11change?

3:12And so, that puts a lot of work on the

3:13developer to basically store probably

3:16locally some sort of version of like the

3:18before and then look at this webhook and

3:20be like, wait a second, what actually

3:22changed? Oh, wait, the price didn't

3:23change. I don't care. Throw in the

3:25trash, right? Um and so, you're getting

3:28a massive volume of webhooks, um only

3:31which a portion of it you might care

3:32because again, most developers have a

3:34specific use case in mind. They don't

3:35necessarily care about an entire product

3:37being updated.

3:38>> True.

3:38>> So, um enter uh next-gen events, uh

3:42Shopify events. Um and the big There's a

3:45number of a number of things that we've

3:46improved, but I'd say the biggest one is

3:48that um in your subscription, you can

3:51include what is called a trigger. Um

3:53[snorts] and the trigger allows you to

3:55specify the exact field um

3:59uh that you that when that thing

4:01changes, you want to be notified. Um so

4:04you can do a subscription and say,

4:05"Okay, I want to trigger on

4:07variance.price

4:09and I want to trigger on

4:10variance.compare_at_price."

4:12And then when the that event fires, we

4:15will actually tell you specifically what

4:18actually changed. Um and we'll tell you

4:20like, "Hey, okay, you wanted to be

4:22notified if either of these two change.

4:23I'm telling you right now that price

4:25changed or compare_at_price changed."

4:27Um so that's really nice because it just

4:29dramatically for that developer who's

4:31like, "I just want to be notified about

4:33price changes." Now it's like, "Okay, I

4:35can be confident that I'm only going to

4:37get either price changes or

4:38compare_at_price changes."

4:40Um

4:41>> Yes. Yeah, so far so good. I mean, that

4:43sounds awesome. Yeah, you explained it

4:44super thoroughly. I don't even have many

4:46follow-up questions. Yeah.

4:47>> It kind of sounds you can build your own

4:49webhooks now and not not own webhooks,

4:50but you you have a lot more fine-grained

4:52control of when you want to receive

4:53them, also what to receive because if

4:56you subscribe to certain events, then

4:57obviously the payload changes. Is that

4:59correct?

4:59>> Yeah, so so basically you can think of

5:01it as almost like by default, it's kind

5:03of like payloadless. And what you do is

5:06you give us a query, a GraphQL query

5:08that you want to run when it triggers,

5:11and then we'll go pull the data that you

5:13want. And so you basically form up your

5:15own payload. So you'll get a custom

5:17payload. So like maybe, "Hey, when price

5:18changes" I'm making it up "I want to get

5:20the ID uh of the product, the title, and

5:24the status." I don't know. Whatever it

5:26is. Yeah.

5:27>> So it's kind of like the shift that we

5:28saw on the API from when we went from

5:31REST to GraphQL, it's kind of the same

5:33thing for webhooks now, right?

5:34>> Exactly. [clears throat]

5:35Yep. Yeah. It's It's custom GraphQL

5:37queries that basically define your

5:38payload.

5:39>> Yes. Okay, that that's really cool. Um

5:42that's all I want to know about

5:43webhooks. I have two other topics. What

5:45would you What would you like more?

5:46Staying on the app side and my great or

5:49transitioning to sidekick or UCP product

5:51catalog? What's your favorite topic?

5:54>> Or maybe we just do one more thing on

5:55events. So just to kind of close off

5:57that topic, it's available today for the

6:00products resource and for the customers

6:02resource.

6:03Um and our intention is to bring it to

6:05all resources and make it a complete

6:08replacement of the old webhook system.

6:10>> Okay, yeah, that's good to know. I I

6:12have to imagine you rolled this out

6:13gradually. I it only makes sense. Yeah.

Honest take on Sidekick AI

6:15>> Yeah.

6:16>> Okay. And then your favorite topic?

6:17Sidekick first or UCP product catalogs?

6:20>> Uh let's do sidekick.

6:22>> Okay. So, have you used sidekick in in

6:25recent days or weeks? Are you using it a

6:27lot in your day-to-day? Are you do you

6:28have touch points with it?

6:30>> Uh I do. So I mean I I I use it a fair

6:32amount. Like I'm I'm not a merchant

6:34myself, but I I definitely try and use

6:35our products all the time a whole bunch.

6:37Um and so yeah, I I I use sidekick quite

6:39a bit um just to get a feel for like

6:41what it can do. Um I have my own

6:43internal staff shop which I which I use

6:45it again just again to to to run queries

6:47and play around with it.

6:48>> Okay, what do you what do you like most

6:50for? Can you speak on that even? I mean

6:52>> Yeah.

6:53>> You're working on it, but it's you

6:54probably have an opinion, right?

6:56>> Yeah, I do. Um ooh, I like it for a lot

6:58of I mean so

7:00All right. Cheesy but true answer. I I

7:03think one of the things that is getting

7:05really nice about sidekick is that

7:08um its capabilities are just increased

7:09dramatically.

7:11Right. So it used to start off where it

7:12could kind of answer basic questions

7:13about your shop. Um but now you can

7:17um for example say, "Hey, I want to

7:19build an automation that will uh tag all

7:22customers who spend $5,000 or more as

7:24VIP." And that will [snorts] immediately

7:26start to kick off uh the ability to to

7:28to to to to do a workflow to create a

7:30workflow. Um you can ask it analytical

7:32questions. "Hey, um tell me like how

7:35many orders I had in the last 30 days

7:36and how many of them were over again

7:38$5,000."

7:39Um

7:40and so just the capabilities have

7:42increased dramatically. Um

7:45Yeah, I mean I I think like one of my

7:47favorite is probably a lot of the

7:48analytics use cases are really cool

7:51because you know it takes something that

7:53either like you'd have to go write

7:54custom Shopify QL for

7:56or you'd have to go into an editor and

7:59like you know do all these kind of fine

8:01grain selections and now you can just

8:02talk like you normally would to ask

8:04these questions and and just in plain

8:06simple English or whatever your language

8:07is

8:08and

8:09yeah and and Sidekick will just give you

8:10answers and so I don't like I don't like

8:11I find that one just really cool.

8:13>> Yes, I agree. I actually interesting you

8:15mentioned that because I tell this all

8:16the time like the talk to your analytics

8:19aspect of it is really cool because

8:20analytics are kind of not necessarily

8:23frustrating but they can be confusing if

8:25you have like a lot of data points and

8:26now you can just ask hey what's my best

8:28performing marketing channel and then it

8:29gives you like the full breakdown which

8:30is awesome.

8:32Personally I also like it for as you

8:34said documentation and if you have a

8:36question regarding a specific setting or

8:38where to find something in the admin

8:39dashboard.

8:41Theme set theme sections I don't use it

8:43as much to be honest because I'm more of

8:45a fan of having my local development

8:46environment and maybe my own AI of

8:48choice and then some more fine grain

8:50control also with Git commits I think

8:51that's like fair point.

8:53>> Yeah.

8:53>> Um building apps is super interesting

Generating Apps with Sidekick

8:55with Sidekick. You mentioned

8:56automations.

8:58I think a shop like Sidekick is now also

9:00capable of building apps but I haven't

9:02tested it too much yet. This is only

9:05admin extensions or like extension only

9:08apps because there's no real hosting

9:10right? You couldn't set up a server and

9:11then do third party queries or like

9:13what's the deal with that?

9:14>> Yeah there so there's no back there's no

9:15back end to it is the best way to think

9:17of it right? There's no back end hosting

9:18to it so it it is you know think of it

9:21as like front end only apps for from

9:23Sidekick app generation.

9:25You're like hey I want to build a form

9:27of some kind it can go and do that but

9:29right at the moment it does not have any

9:30back end capabilities.

9:32>> Okay that makes sense. But the admin UI

9:34extension check out UI extensions is

9:36that the is that a Because they're

9:37partially hosted on Shopify and then

9:39>> Um not not from Sidekick. Uh

9:42so,

9:43checkout UI extensions are not possible

9:46to do from Sidekick app trend currently.

9:47>> Okay, got it. Okay. But but possibly in

9:49the future.

New Sidekick AI Extensions for Developers

9:50>> Yep.

9:51>> Okay. And yeah, now with additions, I

9:54also saw there are Sidekick app

9:56extensions coming. So, similar to how

9:59you could integrate your app into, let's

10:00say, a product page or like admin UI

10:02extensions. Um

10:05you can now integrate the Sidekick

10:07conversation. Like, how do I have to

10:08imagine this?

10:09>> Yeah. Yeah, so um we announced this in

10:12dev preview at the last edition. Um

10:14we're now GA with it. It's available to

10:17all developers and on all shops. Um

10:20yeah, so I think one of the biggest

10:21things about Sidekick is that like, hey,

10:23let's say I'm a merchant and I utilize a

10:25bunch of apps to run my business.

10:28Um like, I might use Klaviyo for email.

10:31I might use some other app for

10:32subscriptions,

10:33um etc. Um

10:35currently, that data is not really is

10:38not available to Sidekick. It does not

10:40know about that app really doesn't know

10:42Well, previously, today it does. It did

10:44Previously did not know about that app.

10:45It didn't know about that data. So, with

10:47Sidekick app extensions, we solved that

10:48problem. Right? What we enable app

10:50developers to do

10:51um is to implement um you know, one or

10:54two of two extensions. One is a data

10:55extension and the other is an action

10:57extension. Um let's start with a data

10:59extension first. The data extension is

11:00basically a way to answer questions that

11:03a merchant might have about your app

11:05that involve giving back data. So, if we

11:06if we go with example about like, "Hey,

11:08I use some

11:10third-party app for email like Klaviyo

11:12or Seguno or some other." Um I could ask

11:14a question like, "Hey, Sidekick, tell me

11:16how my last campaign called Spring Promo

11:21um went." And

11:23it would then basically figure out,

11:24"Okay, like you probably want to invoke

11:26your app that does um campaigns." Um it

11:29would tell you like, "Hey, we're

11:31searching this app uh as the merchant.

11:34That app would then be passed that

11:36context and it would respond back with

11:38that information and tell you like hey,

11:39the campaign was sent to a million

11:41people. There were 200,000 opens, you

11:44know, whatever, 100,000 clicks

11:47and and these number of purchased. And

11:49so now all that information of the app

11:51becomes available

11:53to the merchant in a really seamless

11:54manner.

11:55>> Okay, yeah, that sounds interesting. So

11:57basically as the app developer, I would

11:58have to create my own API endpoints for

12:01Sidekick to request the data in real

12:03time.

12:04>> Yeah, so basically you create an

12:06extension like you would any other

12:07extension if you're building a checkout

12:09like, you know, it's it's our kind of

12:10same extension

12:11mechanism.

12:13You define a set of routes

12:15that and then for each of the routes

12:17basically what you you tell us in like

12:20in English the description of what is

12:22what that route will solve.

12:25And so you might have a search campaigns

12:27endpoint, you know, routes. You might

12:28have a get campaigns detail endpoint,

12:30things of that nature. So you define all

12:32these basically routes. You tell us what

12:35they do and then we're the ones doing

12:36the orchestration to figure out what to

12:38invoke. Yeah.

12:40>> Yeah, that's that's actually amazing.

12:41Especially the natural language part

12:43because then you don't have to follow

12:43like a super rigid protocol. You can

12:45just describe what it is in plain

12:47language. That's awesome. And hopefully

12:48it also speaks all languages but I think

12:50English might still be the best.

12:51>> Yeah.

12:52>> No, this this is really cool. And also

12:54if you already have an app and you have

12:55something like an analytics page or

12:57similar, most of the queries will

12:59already be implemented on your server

13:00side and then you can just build on this

13:01new API. That's amazing

13:03>> That's exactly right. Yeah,

13:05exactly right. But from a developer

13:06standpoint, the thing I've heard

13:07speaking we've had many developers

13:09who've already implemented it kind of

13:10prior to going GA and they said it was

13:12super simple because like hey, I just

13:14write the extensions. I I, you know,

13:16have the routes and then I'm just

13:17pointing at at existing things that my

13:19app already has.

13:20>> And this is this is only limited to text

13:22data because I mean on my app I could

13:24also maybe display a product or a

13:26similar, right? Is this Is this also

13:28possible in like do we have maybe like

13:30React-based components that are

13:31available in this chat or similar?

13:33>> Yeah, so so we talked about data

13:35extensions, which is again data.

13:38And then we also have action extensions,

13:39so I can action extensions. And what

13:41Sidekick action extensions enable

13:43developers to do is to basically load up

13:47a part of their app.

13:50You know, with it potentially pre-filled

13:52and ready to go for the merchant to

13:53execute some action. So, if we if we

13:56stick with our email example, let's say

13:58a merchant comes into Sidekick and says,

14:00"Hey, I'd like to go and create

14:03a new campaign or a new transactional

14:05mail

14:06using my my email provider or like

14:09Seguno, let's say."

14:11Again, Sidekick interprets that, figures

14:13out, "Okay, hang on. This developer has

14:16registered an action extension. Oh,

14:17okay, it's the create campaign one."

14:20>> [snorts]

14:20>> We would pre-fill it as best we could

14:23based on the data we have from the

14:24developer. And then we don't we don't

14:27actually execute the action on behalf of

14:28the merchant. It's actually very

14:29important that we really insist that for

14:32anything that is not read but is

14:34potentially doing mutations or creating

14:36things, that the merchant is in the

14:38loop. And so we stage everything, but

14:40the merchant will then go and like say,

14:42"Okay, like send." Or whatever it is. Or

14:44create.

14:45>> Yes, okay, that makes sense. Not no YOLO

14:47mode yet for Sidekick.

14:48>> No YOLO mode for Sidekick, yeah.

14:50>> Okay, got it.

New AI Sales Channels unfolding

14:51>> [snorts]

14:51>> Okay, then yeah, okay, this is Sidekick.

14:53Um

14:55Now off to the theme of this year's

14:59Shopify edition. Some people would have

15:00led with that topic, not on this

15:02channel.

15:03Um so, it is everywhere because on the

15:06website it states the way that merchants

15:08are shopping and where they find

15:09products is multiplying.

15:11And I have to imagine this is part of an

15:12evolution we've seen for like many years

15:14now. It started with single channel

15:16where you had your online store in the

15:17past. And then you had multi-channel

15:18online store, maybe Facebook

15:19Marketplace. Then you had omni-channel,

15:21maybe like five market places, POS, B2B

15:24online store.

15:25And now we have a bunch of new channels

15:26with AI. Is that where it's like coming

15:28from?

15:29>> Exactly right. Yeah, it's exactly right.

15:30So like, you know, one of the obviously

15:33the big new set of channels is

15:36agentic channels. Think ChatGPT, Claude,

15:38and others.

15:40But we also see this like

15:42going back to our paradigm, like this

15:43renaissance of new channels and new

15:46consumer experiences that we think are

15:48going to come to light because of these

15:50new capabilities.

15:51And so we we we've got a whole bunch of

15:53things that are tailored to that, one of

15:54which is our catalog API, which which

15:56has gotten a lot better over the recent

15:58weeks and months. Um to help enable

World Wide Product Catalog API

16:00these new these new use cases.

16:02>> Okay, yeah, awesome that you're making

16:04this transition already because these

16:05would have been my next two topics,

16:06catalog API and UCP.

16:08>> Yep.

16:09>> Um I think they kind of go hand in hand,

16:10but here we also have to catch up the

16:11audience a bit. So catalog API, from my

16:14understanding, is basically a huge API

16:17listing all the Shopify products across

16:19millions of stores, make it searchable.

16:21Is that roughly correct?

16:23>> Yep. It's exactly correct. So um it is

16:25it is millions of Shopify merchants,

16:27billions of products

16:29um that are searchable through a single

16:30search endpoint. Um it is search that uh

16:34I I like we think is quite good in terms

16:35of being able to just ask it questions

16:37of like, "Hey, you know, find me all

16:40like where I'm into like pizza making a

16:41lot. Uh find me all pizza ovens that

16:44will fit two pizzas." And it will come

16:45back with answers for you.

16:47Um we also do a lot of things of like

16:49helping to cluster results. So be like,

16:51"Hey, this is a a product a unique

16:55product that is being sold

16:57uh like a UPI

16:58um universal product indicator, and then

17:00here all the like offers behind that

17:03that canonical product." Um

17:06>> Okay, so it so it could almost be like a

17:07price comparison even that case, right?

17:09If it's like a like a branded product,

17:11and then people see the different

17:12offers. Interesting.

17:13>> Yeah. Yeah.

17:14>> Okay, I haven't Yeah, I haven't thought

17:15about it way yet. Um okay, but can you

17:17also like as a developer, can you filter

17:19this these results? For example, if you

17:21only want pizza ovens in Germany, for

17:22example, right? Because US shipping

17:23might be difficult for me. Uh, are there

17:26other capabilities?

17:27>> Yeah, you can do exactly like yeah, so

17:28filter like that you can definitely do

17:29like, "Hey, I only want to see products

17:31that ship to Germany or I only want to

17:32see products that ship to like the US."

17:34You can do that. Um, you can also filter

17:37on price like min price, max price. Um,

17:39you can filter you you can filter things

17:41like color.

17:42Um, so so yeah, there's a whole bunch of

17:45filters and the the rationale like one

17:49of the key things that we think is

17:50interesting like why we think this is

17:52interesting is because we envision a

17:54world where people can create like very

17:56unique bespoke experiences, right? So if

17:58we continue on our our pizza example,

18:01it's [snorts] like, "Hey, like let's

18:02imagine I want to create a site for

18:03pizza making enthusiast and I want to

18:05cover like have a set of books and ovens

18:07and pizza peels and all these sort of

18:09things." I could create a catalog,

18:12define a catalog in the dev dashboard

18:14that that basically

18:16narrows down to a set of shops and a set

18:18of search terms for that, even price

18:21range perhaps, even perhaps like

18:22shipping constraints and then build a

18:25consumer experience on that. Um,

18:27and and that's that we think that's

18:28quite unique. Um,

18:29yeah.

UCP (Universal Commerce Protocol)

18:31>> Yeah, it sounds awesome. Especially like

18:32in the era of AI, you can now spin up

18:34quick websites, quick apps. So I think

18:35it's going to be used a lot.

18:37And [snorts]

18:38yeah, this also gets me to the second

18:39half of it, UCP, because okay, catalog

18:42is one thing, you have all the products

18:43sortable, listed all the data. But UCP

18:46from my understanding is an open

18:47protocol co-built by [snorts] yeah,

18:49Shopify and Google which basically

18:51allows the agents to also build carts,

18:54lead them to check out.

18:56Correct until here? Do you can you fill

18:58in the blanks a little bit?

18:59>> Yeah, yeah, that's right. You you've got

19:01a lot of it. So yeah, UCP, uh, Universal

19:03Commerce Protocol,

19:04um,

19:05which was developed by Google, Shopify,

19:07Wayfair and many others and it has

19:09participation from many others. Um, is

19:12designed to be like the lingua franca,

19:14if you will, of commerce. Um, and so

19:16every storefront that,

19:19um, that implements UCP, today all of

19:21all Shopify stores de facto support UCP,

19:24um, will have that ability to, um, to,

19:29you know, to basically be introspected

19:30and to create a card on it from it and

19:32then do a handoff to a a checkout on on

19:35that, um,

19:36on that merchant site. And so what this

19:38enables uh, folks to do is now I can

19:42agentically, right? Well, I can go query

19:44the Shopify catalog, we offer that

19:46uniquely, but then I can go, um, and

19:49introspect and for anybody that merchant

19:52that supports, um, UCP, um, I can go and

19:55build a card from it, um,

19:57add all the line items, um,

20:00you know, give it give it context, and

20:01that will basically return a card to me

20:04as the agent, um, and then also a a URL

20:08where I can go and continue with that

20:10checkout. Um, and so if you kind of

20:12continue on that example now, I could

20:13actually have products from other

20:15merchants beyond your Shopify ones, and

20:17as long as they speak UCP, as long as

20:19merchants speak UCP, you can then

20:20assemble cards that could get handed off

20:23to those merchants and do that all

20:24within one experience.

20:26>> Okay, I see. Yeah, that's that's really

20:27the beauty of an open protocol, I I

20:29assume.

20:30>> Yeah.

20:30>> Uh, it's the whole point, I guess. And

20:32um, yeah, okay, I mean there are

20:32probably still some challenges around

20:34this, like what if you have mixed cards

20:35from different stores, and then there's

20:37going to be shipping and everything,

20:38right? So

20:40that's something I would need to take

20:41care of in my application, pretty much,

20:42right?

20:43>> Correct, yeah. Yeah, so so I I I think

20:44like, you know, like this is kind of the

20:46the the the early version of it that

20:47enable this like sort of agentic

20:49shopping across many merchants. Uh,

20:51there are still

20:53additional parts that have to be sorted

20:54out.

20:55>> Yeah, sure, but I mean you're you're

20:56basically facilitating the

20:57infrastructure, and then what I build

20:58with it is is kind of upon me, right?

UCP CLI for Developers

21:00>> Exactly.

21:02>> Okay, that makes sense. Um, then also in

21:04terms of building tools, I saw Shopify

21:06has sort of this UCP CLI. I mean CLI is

21:09always like developer tooling, but what

21:11is that or what does that allow me to

21:12do?

21:13>> Yeah, so UCP CLI just makes it really

21:16easy to do these sort of things, right?

21:18So, again, like

21:20all Shopify shops support UCP.

21:24Uh many other many other folks that are

21:25participating in the protocol, their

21:27shops will also be supporting UCP. Um

21:29and so it's a CLI that enables you to do

21:31a a bunch of things. So, first is you

21:32can search our catalog completely

21:33unauthenticated. You can just you say,

21:35"Hey, again, going back to our search,

21:37you from the command line you can go and

21:39search for like uh pizza ovens that fit

21:41two pizzas.

21:42Um

21:43you can give it all the context

21:45filtering that you want, and then it'll

21:46return a set of results.

21:48Um

21:49you can the um

21:52the CLI will enable you to create carts.

21:54You're like, "Hey, I want to create a

21:55cart for this chosen merchant that I

21:57have." You can go and add line items to

21:59it.

22:00Again, it's that context, and when you

22:02create that cart from the CLI, it will

22:04give you back a URL. So, it makes it

22:06really easy as a developer to get

22:08started with UCP, right? Because it's

22:10like, "Okay, I don't need to build all

22:13of the tooling to go and introspect

22:15these things." Think of it almost like,

22:17you know, you think about HTTP, you have

22:18a browser, right? And the browser is

22:20actually implementing HTTP to go and

22:22talk to other servers. The CLI is doing

22:25all that plumbing to help you as an

22:27agent talk to these sites that that

22:29speak UCP.

22:30>> Okay, yeah, that makes a lot of sense. I

22:31also need to play around a lot more with

22:33these things because it's actually quite

22:34interesting, and the use cases are

22:36pretty broad.

22:37Um so, I have to imagine like a lot of

22:38app developers with uh chat apps,

22:40support apps, search engine-based things

22:43are going to use this a lot, I have to

22:44imagine.

22:44>> Yeah. Yeah, like you say, "Hey, I want

22:46to go build again in our example, I want

22:47to go build an agentic experience to

22:49help you search for like pizza-related

22:50things." You can go and you can go and

22:52implement this.

State of Agentic Commerce

22:53>> Yes. Agentic commerce, I keep hearing

22:55this more and more. I mean, it's kind of

22:56like a new emerging topic. It's super

22:58interesting for merchants as well. Do we

23:00already have data on whether buyers are

23:04using like do we see Shopify sales

23:05coming through such

23:07through chat GPT through other agents

23:09too? Is that something we can measure?

23:11>> Uh yes, 100%. So we like something that

23:13we talked about in our last earnings

23:14call publicly. We didn't

23:16it is how much of an increase we've seen

23:18year-over-year in terms of sales that

23:21are happening from a generative channel.

23:22So absolutely it's happening and I think

23:24that like you know

23:26like commerce is I think uniquely suited

23:28in a lot of ways to to a generative

23:30channels, right? Because you have this

23:32ability now to discover products in a

23:34way that would probably hard before,

23:36right? Cuz like now you can be like you

23:38can get into a chat session on say chat

23:41GPT or on Gemini and have a conversation

23:44of like hey, I'm looking for this thing

23:45that will help me cook, you know, pizzas

23:48like from multiple pizzas at a time and

23:51and that sort of thing might have been

23:52hard before like oh, you know, do you

23:53want a gas-powered? Do you want a

23:54wood-fired? You know, a whole bunch of

23:57questions that it might have and now you

23:59can really hone in and then once you

24:01have found it, you just get deep linked

24:02directly to the product and you're ready

24:04to buy.

24:05>> Okay, yeah, because also when I think

24:07about agentic commerce sometimes I think

24:08about fully autonomous shopping which I

24:11wouldn't probably trust for the pizza

24:12oven, but maybe for a USB cable, right?

24:14It's commodity product. You just buy

24:15one, right? It's

24:17the financial risk

24:18>> Yeah.

24:18>> relatively low. Okay, but interesting.

24:20But I mean the the other side of it is

24:22of course building the cards UCP having

24:24my own app for that. No, that's really

24:25cool.

24:26Okay, I think we already covered quite a

24:28few topics, interesting topics

24:30>> Um

24:30>> that I was also personally super

24:31interested in because I didn't have so

24:32much time to research everything yet. So

24:34we covered the UCP product catalog, we

24:36covered sidekick app extensions, we

24:37covered the new webhooks. And I actually

24:40have so many other questions for you to

24:42ask but

24:43or to ask to you. But we also wanted to

24:45limit this to Shopify editions. So are

24:46there any other updates developers

24:48should be aware of? Anything I've been

24:49missing? Were these the highlights? What

24:51do you think?

24:52>> Yeah, I mean I think we we covered a lot

24:54for sure. Other directions we can we can

24:56talk about are static apps

24:59which we enable with like no where you

25:01can basically host apps fully on Shopify

25:04or or Shopify pressing. So so whatever

25:05direction you want to go in with it on.

Static Apps (Shopify Hosted Apps)

25:07>> Uh yes, static apps is great. Good that

25:09you bring that up. Um this has been in

25:11the talks for a while I think. What do

25:13you think? Is it going to Is it going to

25:15cost us? How much is the hosting? How

25:17does it work?

25:18>> Yeah.

25:19Um yeah, so uh it is currently free of

25:21charge. Um so um

25:25let's talk about the use case and like

25:26why why we did this. So we've had admin

25:29extensions. We have um a number of

25:32extensions around the admin that enable

25:34you to kind of configure things.

25:36Um but one of the use cases that we

25:38There are many use cases where you're

25:40like, "Hey, I'm building some kind of

25:42function, right?" Or I'm building some

25:43sort of customization where I need to

25:46give them, you know, a merchant the

25:48ability to go and customize it, right?

25:49So let's let's actually take functions

25:51where it's like, "Hey, uh you know,

25:53maybe it's a discounting scenario where

25:55it's like, 'Hey,

25:56I'm an agency building a custom

25:58discounting for a merchant and there's a

26:00few toggles and configuration that would

26:02be available um in that instance,

26:04right?' So maybe it's like, you know, a

26:06volume-based thing or something or

26:07something of that nature." So in today's

26:09world,

26:11you know, in this use case, an agency or

26:13or sorry, prior, an agency would have to

26:15basically build this app and then likely

26:19host an

26:20host a server that will run an iframe as

26:23the main embedded app to go and do this

26:24configuration. Um static apps eliminates

26:27all that because now with a static app,

26:29um

26:30we give you the ability to have an app

26:32home um that is powered by Shopify's um

26:35UI extensions. And it basically supports

26:37all the components that a menu UI

26:38extension supports. It supports direct

26:39API access. Um and so it just And now

26:43you can take this app HTML, CSS,

26:46JavaScript, even images, we allow you to

26:48to host like static assets.

26:50Um and you can ship it to Shopify and

26:51we'll we fully host and run that app.

26:54Um, and we think it's going to be

26:55uniquely good for the scenarios that I

26:57just spoke about, like with agencies,

26:58where it's like, "Hey, you know, I want

27:00to go build this thing for the merchant,

27:01but I don't want to have to like,

27:02you know, maintain a server like

27:04basically forever,

27:06um, for this like what is a fairly

27:08simple configuration." So, that's

27:10basically, um, static apps in a nutshell

27:11and why why we built it.

27:13>> Okay, so it's so it's more like whole

27:15being able to host

27:17app configuration pages.

27:19>> Yeah. [snorts]

27:20Yeah, I mean, think about like, I mean,

27:21I think you like like that is a use

27:23case. I think there are other use cases,

27:24like configuration pages could be one.

27:26>> [snorts]

27:26>> Uh, like, you know, there could be other

27:28use cases where, you know, maybe I have

27:31a simple editor that I want to give to

27:33merchants to add metadata to products,

27:35right? And I but I want to happen

27:37through a bespoke editor, and then it's

27:38it's hitting a meta field that I'm going

27:39to save on the product, but I I just

27:40prefer to do it through a bespoke editor

27:41because that's what I have. Okay, great.

27:44Hey, that sort of, again, maybe you can

27:46call it configuration, but that sort of

27:47app, um, can now just live fully on

27:50Shopify, merchant gets to use it, and

27:53the agency doesn't have to worry about

27:54like maintaining something and running

27:56something forever.

27:57>> Okay, no, this is really cool. Also,

27:58when I was summarizing it, I I I didn't

27:59want to play it down. I mean, this is

The New App Pricing Model

28:01huge because common problem. I was just

28:03like trying to see if I get it right.

28:05>> Yeah.

28:06>> Uh, no, this is really cool. Um, any

28:08other updates from Editions that are

28:09that are coming to mind?

28:11>> Um, Shopify app pricing, um, is is is

28:14another big update.

28:16>> Okay, what is it?

28:17>> What is it? Um, so,

28:20um,

28:22prior to this, we had, um, the billing

28:24API. Um, the billing API was like fairly

28:28simplistic, um, because it was basically

28:30like a credit and debit mechanism.

28:32Um, and as a result of it, it despite

28:35its like it had good power, uh, but it

28:37would very often create, um, opaque

28:39pricing situations for merchants.

28:41Because, let's say you have an app, and

28:43your app has a monthly recurring in of

28:45whatever, 19 bucks a month, And then you

28:47also have some usage-based fees Uh, um,

28:50that

28:51that that that that that your app is

28:52charging. Like maybe you're again you're

28:53doing email scenarios, and so you're

28:55charging per thousand emails sent or per

28:57thousand SMS sent, which is done on a

28:59usage basis.

29:01With the old billing API,

29:04um that all the usage-based stuff in

29:06particular was quite opaque to merchants

29:09because they wouldn't have an

29:10understanding of what um

29:13of all of of of of of all of all of all

29:14the charges happening.

29:15Which our flat pricing, we basically

29:17took the managed pricing that we already

29:19had, which is which does monthly

29:20recurring charges, and we added a

29:22usage-based

29:24component to it. So now what happens is

29:26a

29:27developer partner will set up their

29:29meters in the partner dashboard and say,

29:31"Hey, I have a meter for emails sent. I

29:34have a meter for SMS sent. And here is

29:36how I charge for those meters." Right?

29:39So again, per thousand emails, I'm

29:41charging 10 cents. Per thousand SMS, I'm

29:43charging 20 cents.

29:45All that information is then displayed

29:47properly on the app store page.

29:50Um and so we we we take all the

29:52information, and then it also cascades

29:54down into the install experience um and

29:56and and beyond.

29:57>> [snorts]

29:58>> Then at runtime, the developer is

30:01incrementing those meters using our app

30:03like using our app event API, not to be

30:06confused with events, but our app event

30:07API allows [snorts] them to increment

30:10those meters for the shop and say,

30:11"Okay, this shop just consumed this

30:14number of emails sent."

30:16We then aggregate all that information

30:19um

30:20and produce

30:21a a monthly bill for the merchant where

30:23we can then show them, "Okay, here's

30:25exactly how it breaks down for emails

30:27you sent, SMSs you you sent, and your

30:30monthly recurring charge." So um

30:33it makes it way simpler for developers

30:35to build the pricing they want, and then

30:37it makes it way better for merchants who

30:40have the transparency

30:41>> [snorts]

30:42>> um into how they're

30:44into how they're getting charged.

30:45>> Okay, I feel this this is really cool.

30:48So I imagine this sort of like the usage

30:50page on my AI tool of choice. I'm not

30:52sure if we can cross-reference other

30:53brands.

30:54>> Yeah. Yeah, yeah.

30:55>> But it shows me like tokens used per

30:57month, right? Tokens per week. And I

30:59kind of imagine like this SMS sent this

31:01month, email sent this month, whatever

31:03it might be.

31:04And then you get like the full breakdown

31:05and price transparency if you want.

31:07>> Exactly.

31:09>> Awesome. I don't have anything in chat,

31:10but

31:11>> Nice. All right, cool.

Wrapping up

31:12>> Cool.

31:13>> [clears throat]

31:13>> Yeah, looking at the clock here, we've

31:14been talking for about half an hour,

31:16which was also the the aim time.

31:18Um so if you don't have any other like

31:20super urgent topics, I think we covered

31:22a lot for one podcast, and I would like

31:24let people digest it and then ask

31:26questions if they have some.

31:27Um but otherwise, I would like thank you

31:29so much for your time. Thank you for

31:31elaborating everything. I think you're

31:32like one of the best partners to

31:34interview about these technical topics.

31:36Um so yeah, really appreciate you taking

31:37the time.

31:38>> Thank you, Jan. This was awesome. Always

31:40wonderful to chat with you. And and so

31:41thank you so much for the opportunity.

31:43>> Thanks so much.

More from Coding with Jan - Shopify Developer

Recently added transcripts

Browse the whole transcript library

This transcript was generated from the captions YouTube publishes for this video. Get the transcript of any YouTube video atfreeyoutubetranscribe.com, free, unlimited, no sign-up.