Kalen’s home alone, “free” to code but mostly bonding with a stress-relief rock, while David tries to work through spring-break birthday chaos. They swap NetSuite-to-Shopify battle plans, celebrate a Flow glitch that caught Toby’s 👀, and gripe about forum spam and pricey AI tokens. Add in the eternal mystery of showing discounts on product pages, a quiet-fidget quest, and a shout-out to Dino-Sort for wrestling unruly collections, and you’ve got an hour of dev therapy, Shopify gossip, and plenty of laughs.
[00:00:00]
It's kind of a combination of, I put push into it. I see if I get any bites. I see if the bites are actually real bites, like they actually wanna spend money or they're just saying nice things. And then if so, I go a little more. If not, I come back up for air and then, you know, I survey the landscape and see if maybe it's just something else.
[00:01:03]
Kalen Jordan: How's it going? I, I'm liking this two week, cadence. Because, you know, some weeks I definitely am like, ah, it'd be good to po it up.
[00:01:13]
Kalen Jordan: But then, , it's good to kind of miss it a little bit so that, you know, like that way you're, you're sort of like looking forward to it,
[00:01:53]
Kalen Jordan: My wife and kids are in la they're visiting, , family right now. So, um, yeah, they're, so I'm flying solo for the next few days,
[00:02:04]
Kalen Jordan: to get in too much trouble. Um, but
[00:02:09]
David: So are you like at the grindstone right now? Or what are you doing with your extra time?
[00:02:15]
Kalen Jordan: you know what's funny is that I, like, like yesterday I was working and then I was like, uh, by the way, do you have, do you have a loud fidget right now? Or a quiet one? Because I'm starting to hear some stuff.
[00:02:28]
David: hear this? Dang it. I thought it was
[00:02:30]
Kalen Jordan: I started hearing something.
[00:02:34]
Kalen Jordan: Sorry. We need get something. Can we get Elon on this too? I think we need some high precision engineering because like. By definition you need a, you need a fidget to have some oomph to it in order for it to be a proper, fidget. So like
[00:02:52]
David: But it has to be absolutely space, age, quiet.
[00:02:56]
Kalen Jordan: Right, but like Play-Doh honestly might do the trick.
[00:03:16]
Kalen Jordan: dude, this one time I had this friend that I met out out here in my town and, , he is like this super country dude, super cool guy. I was talking to him one time about like, I was like, yeah, I've just been feeling stressed and anxious. He's like, yeah man, you need like a rock or some petrified wood, you know, just to.
[00:03:35]
Kalen Jordan: Hold onto. And I was like, when he said it, I was like, that sounded kinda like weird and new agey, you know? But it, it was like, it like hit different 'cause he is like country
[00:03:48]
Kalen Jordan: so then literally like after Sam saying that to me, I like grabbed a rock like by my house and it just fit perfectly in my palm.
[00:03:59]
Kalen Jordan: And I just felt calmer holding it, dude. So I started keeping it in my car and stuff. My kids would make fun of me. Um,
[00:04:09]
David: It brings you closer to the earth
[00:04:11]
Kalen Jordan: but I believe in it. Yeah. so like yesterday I was like, somewhere towards the afternoon I was like, I thought, oh God, I gotta hurry up because I gotta, take care of kids and do stuff.
[00:04:23]
Kalen Jordan: And then, and I was like, wait, I don't, I can just work all night if I want to. And I felt like this immediate, like, oh my God, like my bandwidth got doubled. And then the workday ended and I was like, all right, I'm gonna do some stuff. And, and then I didn't do any extra work.
[00:04:38]
Kalen Jordan: I actually, I build less hour I only build like six and a half that day, which like a good day for me is more like seven or eight. And then today I'm not gonna get that many hours. So I'm basically not doing any extra work, but I feel like I could if I needed to. So I have this,
[00:05:17]
Kalen Jordan: \ NetSuite thing is, is chugging along. I did, I've been doing some work on it for this one project. I had a couple people that seemed interested. Nobody else has really taken a solid bite, I'm not really like full speed ahead on it, but I'm ready to go if somebody pings me on it.
[00:05:33]
Kalen Jordan: And if so, that could be a good little product niche to go nuts on.
[00:05:37]
David: just like a generic NetSuite Shopify connector situation.
[00:05:41]
Kalen Jordan: Well, probably something in between that and just like a code base that I can kind of like. Adapt somewhat easily slash maybe open source some of it slash maybe bake some of it into gadget and then have more like a library that would be kind of easy to use.
[00:06:05]
Kalen Jordan: I'd probably just write a bunch of code, but I'd be able to use a bunch of, like, if I had a NetSuite integration come in the pipe, I'd just be able to reuse a lot of code and hopefully get it done pretty fast and then start figuring out how to, , make it like productize it.
[00:06:19]
Kalen Jordan: But I'd need to get a couple reps in before the, it would really make sense.
[00:06:28]
Kalen Jordan: nah, I got nothing. I got absolutely nothing for it. That's just the closest, closest idea. I have got a few things cooking, something will pop. Something's gonna work out. Dude. We're gonna get there, man.
[00:06:54]
David: at some point that'll be like. Oh, everyone needs this thing.
[00:06:59]
Kalen Jordan: Yeah, exactly. It's kind of this dis search and discovery like phase where, I forget the word for this, but it's like I go in a certain little bit of a depth and then I come back up. I don't get an idea and go, all right, I'm gonna spend six months every day, all day building it and then go find customers.
[00:07:18]
Kalen Jordan: It's kind of a combination of, I put push into it. I see if I get any bites. I see if the bites are actually real bites, like they actually wanna spend money or they're just saying nice things. And then if so, I go a little more. If not, I come back up for air and then, you know, I survey the landscape and see if maybe it's just something else.
[00:07:35]
Kalen Jordan: But I think something will, I think something will land at some point, you know?
[00:07:41]
Kalen Jordan: Yeah, Exactly like that. Like find something then it, iteratively, spend more time on it as you get people that are, customers as you get some custom is.
[00:07:53]
David: For some reason I've been stuck on watching documentaries about this guy who spent seven years building a video game
[00:08:33]
Kalen Jordan: Right. There was something I saw, I feel like it was maybe on Netflix and it was very similar, but I don't, I don't know if it was that dude, but it was somebody that had made an indie game it was like years and years and he'd kept iterating on it, and then finally it hit and it did well.
[00:08:50]
Kalen Jordan: But he just, I mean the, just the sheer Okay.
[00:08:56]
Kalen Jordan: And just, yeah, it's super cool, man. I, I remember being really inspired watching that. Just the sheer amount of hours that they throw in for like, just the absolute love of the game. I mean, for a lot of those indie game devs goes nowhere.
[00:09:21]
David: a very cool, like back in the day everyone would like spend their life, like they would choose something that they were gonna spend their whole
[00:09:29]
David: It doesn't happen that much these days.
[00:09:31]
Kalen Jordan: Yeah, it's, it's kind of a beautiful thing when you see it, and then the dark side of that is when people put time into it, it goes nowhere. They get depressed, they lose their job, you know, like, because you know that, that, like, that so much of the time, society celebrates the wins and then people, you know, so that's kind of, but on the flip side, when it works out, it's pretty awesome.
[00:09:56]
David: the, uh, it to work out thing to happen.
[00:10:00]
Kalen Jordan: yeah, not the bad stuff. So on the BFS situation, this guy e Aan, E-E-Y-T-A-N, how do you pronounce that? Ean. Ean. He's a, uh, product guy at Shopify posted today about the, , built for Shopify updates that, that they're gonna make in response to the shenanigans that people were posting about.
[00:10:22]
Kalen Jordan: And, um, dude, I just like Shopify, dude. , they just get it. Like, I honestly, like when I saw that post today, it made me so happy because. Honestly, I didn't think it was gonna go anywhere. I was like, there's all these indie Shopify devs talking shit about how frustrated they are with Bill for Shopify.
[00:10:48]
Kalen Jordan: And I'm like, they're not gonna do anything about this dude. , and they completely did. Like, I mean, I read the thread briefly. Most of it I like, as far as what they're gonna do, they're going to like loop in product managers into, the, , review flow for certain type categories.
[00:11:06]
Kalen Jordan: And they're totally like gonna handle it. It was cool to see that, you know, because
[00:11:11]
David: like if you, if you're already in the Built for Shopify program, you'll be able to actually reply to
[00:11:23]
Kalen Jordan: Right. Yeah. That seemed to be a big thing people wanted, like, which makes sense. I mean, you can't even,
[00:11:30]
David: Yeah, and if you've already got a bill for Shopify app, then you know what's going on. just like, obviously your feedback is probably gonna be important to the team
[00:11:41]
David: or your reverse feedback or whatever it is.
[00:11:43]
Kalen Jordan: yeah, so that was cool to see dude, like, people say like, oh, Shopify's going up, up market. They don't care about the little guys anymore, blah, blah, blah. It's so not true, man. I mean, they have to deal with the enterprise side of things and stuff like that. But, and granted, if you don't get any traction on Twitter, probably no one's and you don't have a direct personal contact, then yeah, nobody's gonna listen to you.
[00:12:09]
Kalen Jordan: But probably, but the fact that an indie Shopify dev is able to get the traction on Twitter by posting about something like that is where the magic is. Like however that all bubbled up, I forget the dude's name, but it's the Plat mart swatches dude that we, we talked about.
[00:12:31]
Kalen Jordan: But it's the fact that it's able to bubble up through social and then they pay attention to that. That is like, it's awesome dude. So cool.
[00:12:38]
David: I agree. It feels, like they're and it's like they're weirdly accessible 'cause they're a huge company, but they still care enough about understanding what's going on in this, the community sphere and adjusting based off of it, which
[00:12:56]
Kalen Jordan: Yeah. So that was cool man. That was good to see. On the not so bright side, I gotta talk about the my boy Amal in the community forums. , who, like this dude, I think I mentioned it, but this dude replies to like every forums post he's sort of, there's some information in his post, but he's clearly playing the volume game.
[00:13:17]
Kalen Jordan: He's trying to apply to replied as many posts as he can. So it's like, he'll reply and it, it won't really answer the question. It'll somehow be related to it, but it's, you know, so there was this post he replied on, and then when he replies, you know, and once you've got a reply on a thing, I don't think Shopify pays attention to it.
[00:13:38]
Kalen Jordan: 'cause they're like, they gotta reply, they're,, good shape and then you never hear from anybody else. So it puts you in this like purgatory situation. So I had, he did that again. End.
[00:13:51]
David: this guy posting on every, like, what is the goal of
[00:13:54]
Kalen Jordan: I think he's just, I think he's just trying to get leads probably for work ultimately, or, you know, same reason anybody, and it's not, like spam, spam, auto spam type spam. It's, it's like he's definitely doing it himself, but it's just, it's not answering the question, you know?
[00:14:11]
Kalen Jordan: And then he also had done some AI generated replies in the past. I was like, this is an AI reply. He's like, no, it wasn't an AI reply. I just used the AI to like fix my grammar after I wrote, looked into the thing myself. I'm like, okay, whatever.
[00:14:25]
Kalen Jordan: Anyways, so I replied to the dude and I was like, Hey, , honestly, I'd prefer that you not reply to my posts anymore because of this and that.
[00:14:34]
Kalen Jordan: And because he replied on this question, didn't answer it, okay, blah, blah, blah. And then, he replied and he was like, oh, I, I've never used AI just to my grand blah, blah. Anyways, so then I saw today that my reply got moderated and it got flagged and it got removed, for not, you know, not, you know, not being,
[00:15:01]
Kalen Jordan: Fuck this guy, man. But, so, uh, but on the other hand, , I don't know if the, if me getting moderated was like organic, like maybe a moderator saw it and was like, Hey, this guy shouldn't be telling people not to reply, or, I don't know if he's found a way to get me reported by enough people.
[00:15:21]
Kalen Jordan: I don't know. I don't know what happened. So maybe I'm the asshole, it's like maybe I'm be,
[00:15:30]
David: Is there not a way to vote on response, like, relevance or something?
[00:15:36]
Kalen Jordan: I don't think there's a down vote. But there's just a report, you know, and I'm, I'm, I'm not gonna report, I'm, I'm tired of it, but it's just fucking guy, man.
[00:15:52]
David: mean, how are, are they off? Like they just talk about the thing that you mentioned and don't actually give a,
[00:15:57]
Kalen Jordan: They're on topic like this particular one, which actually there's an interesting little nugget in here. This particular one was, when you're trying to get the vaulted card, against an order when you're using vaulted cards in, B2B, if a customer or a company location has multiple cards, the, the API for, it's like payment details, connection on an order object gives you the vaulted cards.
[00:16:23]
Kalen Jordan: There's no indication of which card is the one that they selected. Like when they placed the order, right, they picked a card. Right? And so there's nothing in the docs that says which one's the default, which one they selected. So that was my question is how do you know which card they intended to use?
[00:16:37]
Kalen Jordan: And his reply was. You can get the payment details on the order, which was, which was like the premise of my question. I was like, yeah, when you, once you get the payment details on the order, which of the two cards do you use? That was my question. And his answer was, you can get the payment details on the order.
[00:16:58]
Kalen Jordan: But so it turns out that, and we got some feedback and we tested this and we got a confirmation from a solutions arc, , engineer person that, \ the first, , card that comes back is the one they selected. So it'll, put them in the right order, um,
[00:17:15]
David: based on what you told me, it sounds like there's a card vault and there's an order that was placed and you want to actually charge the card
[00:17:36]
Kalen Jordan: right. It gives you all the vaulted cards that they have, where you would think, which I guess, you might use that in case one fails. You wanna try the next card,
[00:18:05]
Kalen Jordan: I've been, We've been finally cutting over this payment processing for this thing. And so I, I've been running these batch jobs locally where it's like, attempting charges for like, up to like $16,000 at a time.
[00:18:24]
Kalen Jordan: I know, I know. And I haven't seen any payments go through for like, more than a few thousand. Like I think I've seen a few for like three 4,000, which is kind of nuts, but all of the ones that were like over 10,000 got declined.
[00:18:59]
Kalen Jordan: like especially on, on a vaulted card. Like I, I, they must know if it's, point of sale versus if it's like, you know, after the fact, If you need cards, let me know, man, because I, I got, I got,
[00:19:16]
David: I'm so happy to not be dealing with cards like we tried to store payment details in NetSuite and then charge the card like exactly when it was shipped
[00:19:28]
Kalen Jordan: Yeah, that's what we're doing
[00:19:30]
David: would fail. Oh, in NetSuite or in Shopify.
[00:19:33]
Kalen Jordan: it well in Shopify from NetSuite, like events, and they used, they were using NetSuite, payments prior to this, but it was like a manual process.
[00:19:45]
David: We were trying to do it with like an adian bundle in NetSuite and it like didn't work sometimes and it was like scary to deal with payment transactions in NetSuite where like NetSuite is the one that's doing the charge. It just was not reliable.
[00:20:01]
Kalen Jordan: Yeah. I can imagine. It's, it's gnarly.
[00:20:05]
David: I'm trying to get out of NetSuite. That'll that. We'll see. That'll take forever.
[00:20:09]
Kalen Jordan: right. Yeah. It's gonna take you some time, dude. Get onto that, uh, good day software.
[00:20:15]
David: Yeah, I'm trying to get everything, like all historical orders in a nice, like all the way back to 2015, I think is what we have right now. So we're trying to get all that stuff in Shopify like the location that it was purchased from, which 2015 was two ERPs ago,
[00:20:36]
David: order transfers ago. So that'll be fun.
[00:20:41]
Kalen Jordan: That's gonna be tricky. Yeah, that's gonna be nasty. So I got a little tweet reply from Toby. I basically, I basically now, yeah, I basically, I mark my life stages now in, Toby replies, you know, like, you've got, you know, I had my kid, I had my, got married, I had my firstborn, got my first Toby retweet.
[00:21:01]
Kalen Jordan: And then a few years later, you know, I got a like, , and then I got another reply. It's always an ex, it's always an exciting, exciting moment. I posted about this thing with flow where it does this to me all the time. And it might have to do with having multiple windows open where it says you're not currently on the latest version of the flow.
[00:21:22]
Kalen Jordan: So you have to like. Refresh it. And, um, so that I, I just posted like, that's drive me crazy. And then he like replied with the eyeball emojis. So I was like, dang, dude, we got the big man's attention on this one.
[00:21:36]
David: How do you en encounter that scenario?
[00:21:38]
Kalen Jordan: so Paul also replied on it and, and he was saying that in some cases it could be if you have two windows open, which I was like, you know, I might have had two windows open in those cases, like two windows open where you actually have the flow canvas loaded. , I was like, that could make sense. And then he was also looking into it and he said they, they found, , like a race condition related to when you're dragging steps.
[00:22:05]
Kalen Jordan: And I was like, yeah, it always happens when I'm dragging steps. So.
[00:22:10]
David: you might not have two tabs open, but you're dragging steps around.
[00:22:15]
Kalen Jordan: Yeah. Um, you know how it is when you've seen something like 19 times in the last month and then you're trying to remember like, did I always have two tabs open? Like I, you know, but it's slows you down. 'cause you know, you just clicked into a run code step. You just modified some things, you close the window and then it says you're on the old version and you gotta refresh and Yeah, yeah,
[00:22:41]
Kalen Jordan: So like that, yeah, that D drives and then when I posted a bunch of, quite a, a good chunk of other people also said that they were, seeing that. So hopefully we get that worked out. That was cool. But mostly, I'm just excited I got the toes reply. That's really,
[00:22:59]
Kalen Jordan: that's, yeah. Glen popped in. We got all the head honchos on the tweet. That was, that was exciting. Little moment, little five minutes of fame. Um,
[00:23:11]
David: cool, dude. I need to like find a reason to get back into flow for something.
[00:23:15]
Kalen Jordan: get in there, do some damage,
[00:23:20]
Kalen Jordan: run some freaking code. Dude. , one little pro tip I ran into on, on the mutations, like if you're doing a send admin, API, uh, mutation, it's nice now that they log everything. So they log, the mutation that you're sending and the response, but you really, like when I was, I was billing one out recently, and I'm still constructing the mutation in a run code step and logging it out in a run code step because when they log it, they log the escaped version.
[00:23:55]
Kalen Jordan: So it's like, it's a mutation. Yeah, dude, with tons of slashes in there. And I'm looking, I'm always like, well, I probably should be able to like, parse this with my eyeballs, but like,
[00:24:08]
David: gotta get into the matrix, bro. You know I don't
[00:24:13]
Kalen Jordan: Yeah. I'm just not that smart. Like it just, you know, especially like, it ends up being something like, you're not passing in an array of, it's like you're basically missing a couple squigglies or couple brackets, and you're looking at a just ball of, you know, inline escape.
[00:24:35]
David: You gotta get a double lexical analyzer going in your brain.
[00:24:38]
Kalen Jordan: Yeah. So really the only way to live is just log out the mutation in a format that you can copy paste directly into Postman. And that's the easiest way to just, if you hit an error post, drop it into Postman and you'll be able to see exactly what's going on.
[00:24:57]
David: it give you the response in the log also
[00:25:01]
Kalen Jordan: it gives you the response, but I think the response was like, it was something like invalid, it was something like generic enough,
[00:25:10]
David: Flow that wasn't from the actual API
[00:25:13]
Kalen Jordan: I think it was from the API, but it was like invalid input path. And it gives you like the path, I think it gives you the line number or something like that of the, but the line number doesn't mean anything because it's because the mutation is, condensed down. It's not, it lost its new lines.
[00:25:42]
Kalen Jordan: hell's going on. So, still, still useful to log some stuff out, stuff, but, um,
[00:25:50]
David: I gotta do that. Gotta get some logging done.
[00:25:53]
Kalen Jordan: Let's workshop this dude. What are some things you can get your hands dirty in with flow for some of your meta fields? Meta objects.
[00:26:03]
David: I've been seeing that there's meta field attention in flows, but I gotta go back and see if I can get variant meta field values yet. 'cause I wanna do some auto of products after an exit date and the exit dates on the variant meta field. my situation look like?
[00:26:23]
Kalen Jordan: Okay. Okay. That, that should work. So what are you gonna need a trigger on?
[00:26:28]
David: The trigger would probably be something like a time trigger, and then it goes through and looks for product variants that are past their exit date.
[00:26:52]
Kalen Jordan: Yeah, you still can't. You could filter products on the variant meta fields, like using a collection, but then you'd have to iterate over the variance and figure out what was what.
[00:27:04]
David: When are variants gonna be first class citizens? That's what I want to
[00:27:23]
David: Indexable. see which variants are past their exit date so I can shut 'em down.
[00:27:30]
Kalen Jordan: Yeah. But how many variants do you typically have on products? 'cause you might just be able to iterate over those bad boys.
[00:27:38]
David: Oh, yeah. But then I would have to loop through every product, right? 'cause it's not at the, like, the exit date's, not at the product level. It would be like a, we have a color that's no longer available, and so
[00:27:51]
Kalen Jordan: Well, you could. I think you could. Yeah, I I think you could filter on the variant meta field at the product level, but then you'd still have, it would pull up any product that had at least one variant with that meta field value.
[00:28:24]
Kalen Jordan: Yeah. Dude, that would be a perfect, if there was a hackathon at additions, that'd be a perfect little hackathon thing.
[00:28:32]
David: Yeah. Gimme access to the private APIs and let me do some stuff, and then you'll release them to the public. You know, they got the ability to do it. It's probably a performance issue. give them to me for a little bit. I'll test it out.
[00:28:50]
Kalen Jordan: Well, actually, yeah, I mean. I don't think they're indexing at the variant level because it's probably just too expensive.
[00:29:00]
David: Maybe, but they're still meta fields, so they're somewhere,
[00:29:04]
David: they're not attached to variants and they have a reference to a variant, just like , me a way to get all of the product variant meta fields that are past a certain date, and then I'll do the work to go back and find the product or the variant.
[00:29:25]
Kalen Jordan: Well, I mean, yeah, I don't think they're indexed anywhere. Like they're just.
[00:29:32]
David: They're available. Sometimes I feel like sometimes you can get at variant meta fields, but I don't know. I should complain about it on Twitter more.
[00:29:41]
Kalen Jordan: Yeah, dude, you gotta go a little nuts, man. I recommend s saying something to the effect of you're gonna claw your own eyes out because that, that is, that worked for me.
[00:30:04]
Kalen Jordan: have you been doing any ai coding, any, uh, cursor stuff or,
[00:30:09]
David: need to get into it. I have an idea for a cursor project. I gotta do a bunch of, like data transfer stuff. We might've talked about this, but I, I haven't tried it yet. I'm still in like the figuring out all the stuff I gotta do. Phase of this data project.
[00:30:22]
Kalen Jordan: oh, okay. Nice, nice. Trying to remember. It sounds vaguely familiar. ,
[00:30:45]
David: take this opportunity to like, try and Shopify as our source of truth for transactions. So that's why I gotta make sure all the transactions look good.
[00:31:10]
David: shop on store. So when you go and return an item, you can exchange it quotes immediately. So like you can go click a button and it'll take you to the website and then you can pick the thing that you wanted to exchange it for.
[00:32:00]
David: And then they have a, like happy returns sends you like a big pallet of, of a box of stuff that they've gotten from all of their return bars. And so have to like open that box up and scan the QR code that's on the bag. And we've
[00:32:19]
Kalen Jordan: Yeah. So they send 'em to you in bulk. They send you all the returns in batches. Ah, that's cool.
[00:32:25]
David: They have a web hook for like, when they're sending out a new shipment, so we listen for the web hook and do stuff in NetSuite to make sure the bad codes are on the RMAs, so when someone scans it, it, it pulls up and all that
[00:32:40]
Kalen Jordan: nice. I have this workflow for the cursor coding I've been doing where like, I basically, like on this code base, which is a little complicated, it doesn't really one get it right in one shot anymore. So, and also I was having to do a lot of refactoring 'cause it was like I was realizing I need to clean some of the coat up.
[00:33:01]
Kalen Jordan: So that makes it even worse. 'cause if it doesn't, like if the code base isn't consistent, then it doesn't know, like, okay, you know, always use this class for an order or, always store data on the class, you know, in this way, whatever.
[00:33:18]
David: the way that you do things as just a like convention or something?
[00:33:22]
Kalen Jordan: Yeah. Yeah. Like now that I've gotten a little more consistent, it'll follow like those patterns pretty easily. But still, basically like what I do is I'll give it a prompt and then I'll go through, I'll like read, so I'm kind of like reading code constantly now, which is kind of cool because kind of like when normally, like when I'm writing code.
[00:33:46]
Kalen Jordan: It sounds kind of silly to say, but it's like when I'm writing a bunch of code, I'm not reading code, like
[00:33:52]
Kalen Jordan: I'm just getting it to work. I'm not thinking about how readable is this, how maintainable is this? I've been horrible at like, refactoring in general. You know, like I get the thing working and then I hope I don't have to look at it again.
[00:34:07]
Kalen Jordan: You know what I mean? Or you, like, you come back to it and it, it's like kind of gnarly, but you kind of know how it works. So you, but it's like, how's the cards that eventually, you know, the technical debt gets worse and worse? So like, now I'm like, I give it a prompt, it doesn't much shit. And then I'm reading it.
[00:34:26]
Kalen Jordan: I go, well, let's do this. And then I'll go to another window and I'll go, I'll start writing notes. No, don't do this. No, do that. And then I'll read the whole diff and then maybe there's three different files and I read the diff on the three different files and I write a bunch of notes.
[00:34:42]
Kalen Jordan: About six different things to do. And then I paste that in and I let it crank. And then I'll do that several other times. And then it'll kind of get there closer and closer. And then when I'm done, I'll be like, Hey, can you refactor this like, whole file? And it'll just tighten things up, make nice little sub methods to like , cut down on really long methods that are, you know, long and convoluted.
[00:35:07]
Kalen Jordan: And then, it's kind of cool, man. It's kind of a cool little workflow and it's like, feel like the code,
[00:35:13]
David: Does it, like I've been seeing things about these other thing that like index the entire code base. Does Cursor do that? Does it have this like where it knows context across files and like, okay, what are they trying to do here? Or is it you have to
[00:35:40]
Kalen Jordan: I just tried it. I tried the other day. Gill had posted about it. It's a command line terminal. You just, you download it, you install it, you type Claude, it opens it up. And I'm pretty sure it indexes your whole code base.
[00:35:53]
Kalen Jordan: I think it's a lot better at making changes across the whole code base. Whereas cursor, like, it'll incrementally figure things out. Like if you go, Hey, do this with an order and this with a customer, , it'll like gre for certain things to find things and then it'll like find them and it'll like figure it out.
[00:36:12]
Kalen Jordan: But I think it's missing that index. So I think the cloud terminal is probably a lot better, but I tried the other day, I install it. I'm like, cool. It's like pay five bucks to get started. I'm like, cool. Five bucks will last me a couple weeks. Easy. I get in there, I have it do like one thing, I exit out.
[00:36:34]
Kalen Jordan: It charge me like 70 cents for like, so it's like,
[00:36:56]
Kalen Jordan: doing something. And it was a little bit of a scary moment for me because up until now I've been like, Hey, AI is cool. I can totally afford this. It's making me way faster. And then I was like, wait a minute. If I gotta start spending like 10 bucks a day on this, you know, I might not.
[00:37:15]
Kalen Jordan: I might not wanna spend that. And then now all of a sudden I'm,
[00:37:32]
Kalen Jordan: I mean, yeah, it depends on the type of stuff I guess you're doing, but honestly, it's probably worth it. And I think it depends.
[00:37:39]
Kalen Jordan: I think if you're doing stuff that's very code-based wide, it probably is really worth it. I'm so used to where you're just paying a few cents here and there for everything you're doing. That like paying a dollar for an edit seems like a bit much.
[00:37:58]
Kalen Jordan: I know, dude. I know, but it's like, it's crazy because all this stuff is so insanely cheap that like, what if it does get to the point where like, and the funny thing is the really expensive things kind of suck.
[00:38:13]
Kalen Jordan: Like the $200 GPT thing kind of sucked. Like, but what happens when it really does cost 10 grand a month for like the thing that you really, really wanna be using? Or like, or a thousand dollars a month, you know, like,
[00:38:36]
Kalen Jordan: yeah, I mean if they get, if they get that expensive, so hopefully, hopefully this, the prices stay good, but
[00:38:42]
David: I'll have to try that out. I'm interested to see like a, something that knows a bit more about what's going on.
[00:38:48]
Kalen Jordan: dude, and try for that thing. You mentioned with the NetSuite thing, where I think you said you have like a hundred files, it needs to refactor. Dude, I bet it'll nail that. Especially if you can expense it, then you're not, you know, it's not coming outta your pocket. You, and it's 'cause it's worth it. I mean,
[00:39:26]
David: it, it is really nice to just like have it chugging there and I put like of credits in a couple months ago or something.
[00:39:33]
Kalen Jordan: Yeah, it's like, insanely cheap actually. I saw that, Stewart, from Revo, he posts a lot about AI stuff and, he's always like, dude, our engineers are like eight times more productive. We're cranking out code. Um, and he posted about a tool called, I think it's called ellipsis dash dev.
[00:39:53]
Kalen Jordan: It was like one of those GitHub bots that, comments on your commits or pull requests and stuff. This one project I'm on uses one, I can't remember what it's called. I think it's like something rabbit, like AI rabbit or something like that. And it kind of sucks, like it kind of seems.
[00:40:15]
Kalen Jordan: Well, you know, it basically, it reviews code. You're committing automatically behind the scenes anytime you push to GitHub. And then it'll, find problems, you know, be like, oh, you're loading this in a loop, or, you know, you like, I don't know. It'll, you know, it'll just find things not just like syntax errors, but more advanced stuff than that.
[00:40:34]
Kalen Jordan: It'll be like, you're not checking for types here, or like, this is inefficient, or, you know, you modified this code over here, but you should have also modified this code over there that does the same thing. Like,
[00:40:48]
Kalen Jordan: but like, I've looked at a few of 'em and on this rabbit one, and I'm just like, man, this is garbage.
[00:40:54]
Kalen Jordan: So I just started ignoring them. But when I saw Stewart post it about this one and he said like that, it was great. He, I think he posted like, this is gonna replace an $80,000 junior engineer or something like that on their team. So I was like, dang, I gotta try that one out. See if it's good.
[00:41:10]
David: Yeah, they have a pretty website and they have a free trial.
[00:41:28]
Kalen Jordan: it's kind of crazy. Well, you know, it's like, , talking about AI in general is kind of done. I, I mean, it's kind of abstract and it's like everybody has a theory on it, but like,
[00:41:59]
David: the vibe coding then. You're not a vibe coder. You're not gonna start a video game.
[00:42:03]
Kalen Jordan: oh God, dude, how cool would that be, man, to be able to do that? God, I would love that dude. Make a cool 50 grand a month. Just vibe, coding, video games instead of this NetSuite bullshit. That sounds amazing.
[00:42:21]
David: code NetSuite. That sounds so horrible.
[00:42:24]
Kalen Jordan: I mean, I think that like, as the code base scales, like you gotta pay more attention to the code. 'cause things break. Weird things happen. It stops getting things right, you know?
[00:42:36]
David: with you though. It does feel like I'm reading code a lot more, and I wonder if that ends up improving the quality of like what you're working on overall
[00:42:52]
Kalen Jordan: I really think it is. Like I'm really happy that I'm like spending so much time reading code 'cause I'm just like, I really didn't, I didn't read my own code. Like, you know, write it to get the job done. Then a few months later look at it again and be like, oh God. And then, you know, try to figure it out.
[00:43:18]
David: I, I think that's one of the most fun things is someone's like, oh man, I wish I could do this. And I'm just like, you know, that could probably be like a 20 minute
[00:43:34]
Kalen Jordan: That's awesome. That's cool. Certain types of things is just like, it's just gonna nail it. Like, you know, it doesn't have some weird code base. It has to understand, I was doing these badges, , where you generate a badge with a certain background color, and then the foreground color is white.
[00:43:54]
Kalen Jordan: But then I saw that some of the lighter background colors, the white text was not visible. And then this dude, Jake, he goes, oh, well you can calculate the,, contrast using the hexa decimal codes. You can calculate it, the contrast between white and black. And I was like, oh, damn. I had no idea that that was even possible.
[00:44:15]
Kalen Jordan: But once I knew that that was possible, I prompted it and it fucking nailed it. First shot, it just mathed it out.
[00:44:23]
David: out the contrast, or there is a math like equation
[00:44:26]
Kalen Jordan: math. Yeah. Yeah. There's like a, yeah, there's like an equation. It converts it to RGB and then it, it's like some, probably some,
[00:45:14]
Kalen Jordan: there's stuff going on, dude. There's, but it was like a very computer sciencey thing, so it just nailed it, you know, which was cool. , okay, dude, discounts on product pages. Uh,
[00:45:45]
Kalen Jordan: Yeah, I think we both went through the same flow recently where you're working on discount, you build the discount function, and then you go, oh, they need it to show on the product page.
[00:45:56]
Kalen Jordan: So you go, I gotta get stuff into meta fields quick. Right.
[00:46:02]
Kalen Jordan: For some meta fields. Is that what you ended up doing on that one that you were telling me about, that you were working on discount function and then
[00:46:10]
David: Yeah. Yeah, it wasn't, we were working with a discount app and it, I had to like request like, Hey, is there any way to get this to show up on the PLP and PDP?
[00:46:21]
David: started working on it together for a little bit and it just, it wasn't reliable. So I, I went ahead and like a pre-calculated, price on a variant meta field and just hook that into like , the calculation for the compare at price and that stuff on the cart and
[00:46:43]
David: just had to live on a meta field.
[00:46:46]
Kalen Jordan: right, right, right. Yeah, dude, I was, talking to the client about it after I'd done the discount function, I was all happy with myself. And then it was just this throwaway last minute question. I was like, oh, yeah, by the way, you know, this isn't gonna show on the product page.
[00:46:59]
Kalen Jordan: Right. That's not a problem. And then they're like, oh, no, it has to show on the product page.
[00:47:04]
Kalen Jordan: And, and so then I'm just like, okay. And then I talked to, my other, uh, the, well, the agency client about it. he's like, what do you mean they don't show? Why don't discounts show up on the product page and Shopify by default?
[00:47:18]
Kalen Jordan: And I'm like. I don't know. I don't know why that's not like more of a thing, but it just, it just, isn't. So I, I don't know if there's,
[00:47:27]
Kalen Jordan: yeah. So I don't know if that's something that maybe, that, maybe that's a good app to work on, is like getting those discounts on to product pages, but, um,
[00:47:39]
David: one of those things though that like, it feels like every merchant expects it to be a thing,
[00:47:46]
David: app does not do it outta the box. And it's like something that you have to set up. And maybe it's just because Shopify already has this it price thing that's very deeply built into the default but.
[00:48:22]
Kalen Jordan: And it does exactly this, it displays the discount on the front end, but it only works for like some specific native Shopify discounts. Like a percent off, just like a basic percent off.
[00:48:45]
Kalen Jordan: it's an automatic discount, so it's not a coupon code, but it just like, I think it only works off of like percentage discounts versus like the one, like, I have this custom discount function that, it wouldn't tie into that because it's a custom discount function and if you're using an.
[00:49:06]
David: an item in a cart to get the discount, right?
[00:49:10]
Kalen Jordan: Yeah, you gotta have an item in the cart. , and which their app would work for that if you're, using a native Shopify discount with like a percent off, then it would work for that. But if you're, doing a more complicated discount with like another discount app or a custom discount, then it's not gonna hook into that.
[00:49:30]
Kalen Jordan: And then I have like different price tiers for different customers, so it's not gonna handle that as well. So, um,
[00:49:37]
David: So it seems like you have two options. Do you create a fake draft order behind the scenes and just see what happens?
[00:49:54]
Kalen Jordan: Right. So I ended up going that route. I ended up just creating a meta object for the promos, and then I'm gonna , go off and recalculate my variant price meta fields based off of those promo meta objects. The promo meta object will have the percent off in the collections. And then I'll go off and have a background job that'll calculate the variant meta field, , price prices.
[00:50:21]
Kalen Jordan: But I really wanted it to work outta discounts, you know, because then it could, you know, support other types of discounts. It could stack with other types of discounts. That's sort of like the right way to do it, but it's like it's so much heavier to have to, and it's not just one draft order. I'd have to have like 10 for
[00:50:39]
Kalen Jordan: , different customer types I think would have to have their each, their own draft order. Per each product?
[00:50:54]
Kalen Jordan: while I do with the meta field, like I have a, on the variant, I have a meta field with like 10 price points. Now the, the, the price that any one customer's gonna get is dependent on meta fields on the customer or on the company,
[00:51:08]
Kalen Jordan: they're always gonna get one of those 10 price points on the variant.
[00:51:14]
Kalen Jordan: So if I know it's a 25% off discount, all I gotta do is update those 10 price points on the variant and I'm done.
[00:51:23]
Kalen Jordan: When I just do it that way. So that's how I ended up doing it. It's just like faster. But I would've liked to have done something with actual discounts and it just kind of,
[00:51:50]
Kalen Jordan: fields are liquid. So we have some stuff that looks at those. So I'm gonna just, I'm gonna have it look at, uh, these promo prices. But yeah, I mean it seems like this is a problem that a lot of people have.
[00:52:30]
Kalen Jordan: If they could index , the discounted price points on the variant, then that's what they'd need to render it on the product page.
[00:52:40]
David: I mean, I feel like what would be nice is if there was a blessed way to run a discount function in a test scenario. Like, like tell me if this would be discounted if I put it in my cart based on everything that's going on right now.
[00:52:55]
Kalen Jordan: Right. Like other than having to spin up a whole ass draft order,
[00:53:16]
David: Did you figure out what, the thing is that people do to get it to work?
[00:53:20]
Kalen Jordan: I I don't know exactly what people, I don't know exactly how people handle this. don't think the draft order thing would scale.
[00:53:30]
David: like it didn't seem like there's a way for you to test a discount code's impact, but I, I just like very briefly looked at the APIs night.
[00:53:39]
Kalen Jordan: Yeah. I mean, I'm guessing a draft order is the only way to do it. I haven't, I haven't checked exactly.
[00:53:45]
David: cart. I wonder if you can create a cart, like a guest cart and see what happens in the cart.
[00:53:50]
Kalen Jordan: Yeah. That's a good question. Yeah, I'd have to look at that. I don't think there's a lot of cart admin APIs. Because I know I was looking to see if there's a way to fetch carts with the admin, API and there there wasn't. I don't,
[00:54:05]
Kalen Jordan: yeah. ' cause we wanted to see if we could let them, when they were impersonating a customer, we wanted to see if we could let 'em fetch a cart so that they can see their cart.
[00:54:16]
Kalen Jordan: But I don't think that exists.
[00:54:18]
David: There's a storefront cart, but maybe not an admin
[00:54:25]
Kalen Jordan: Yeah. Just on the storefront.
[00:54:29]
David: Cart. Transform API. That'd be cool. That would probably be the way to do it.
[00:54:34]
Kalen Jordan: Well, the cart transform is just like a function that runs in, that like, you can't do a cart transform API from the admin API that just runs whenever. Yeah. Whenever.
[00:54:48]
David: when it needs it, kind of like, uh, discount functions. Gotcha.
[00:54:52]
Kalen Jordan: And then, um, our last thing, app of the week, there's, Hey, what happened to your little sound effect thing?
[00:55:01]
David: This one. We haven't had any sad things yet.
[00:55:06]
Kalen Jordan: we had the whole Amal situation that was highly sad and disturbing. Um, so, Dino sort collections, gives you like, lets you, I believe, 'cause Jake,
[00:55:24]
Kalen Jordan: Jake was saying that it lets you define arbitrary collections with like, you know, you can't combine and, and or operations when you're defining a collection.
[00:55:34]
Kalen Jordan: Um, so I think it lets you do that and then it lets you sort them in various ways. And there's this, the developer's dude named Wade. He's a Twitter guy, like an Indie Twitter guy. So, um, 'cause yeah, I was thinking about collections.
[00:55:52]
Kalen Jordan: I think, yeah, I think it probably, that's a good question. , well, I guess it, it, I mean the collections are gonna always have to be at the product level, but.
[00:56:02]
Kalen Jordan: if it has some smart variant support. But when I was looking at this collection targeting and discount stuff, I was thinking like, oh, maybe it'd be cool to have a discount app that you could define arbitrary discounts and show 'em on the product page. And then I was like, it, you could also have a similar, similar logic for collections to have like arbitrary logic for collections and then just calculate those behind the scenes in a background job.
[00:56:29]
Kalen Jordan: And then Jake was like, oh, the, that's what dinosaur does. So
[00:56:38]
Kalen Jordan: with collections. Yeah. Yeah. I just, in my head, the collection thing is similar to the discount thing because you've got like,
[00:56:46]
David: like a lot of the time when you're trying to make discounts, it, it would be helpful to just have stuff in a collection and then apply the discount to the
[00:56:53]
Kalen Jordan: yeah. Yeah. And it's a similar type of thing where you gotta like, you gotta calculate, , like an association in the background. So that seems like a cool app, but yeah, dude, think that about, I think that about does it