I didn't know update() was a thing, so I have no idea why that "makes it work"

I changed CartPage to that, and it created with the ClassName correct value.

Looks like the deafault record creation needs to use create()->update() similar to AccountPage

anyone here using SilverShop with SS 4.2?... I'm having multiple Cart and Checkout pages being created every dev/build, and it's because existing ones aren't found using ::get() because they're in the SiteTree table with a ClassName of NULL

and IIRC in the "order" page... In Cart it works, but when it's an order i only get the "default image"

well, also in the generated email when I click "buy"