The documentation ---just explains--- [is explaining] how to use an ORM, and the example code does ---exactly--- [just] that.
"Just explains" is overly informal, and "just" is often a poor qualifier in this context as it infers a simplicity that the reader may not relate to, since they are reading a teaching article. "...does exactly that" reads in a slightly clunky way for me, for a reason I cannot quite explain. To immediately contradict myself, "just" reads much better than exactly here.
We get some benefits from having type declarations and setter[s],
Missing "s"
In this example, the Product object is not ---that--- [much] different from an array.
Again, for a reason I cannot quite explain, "much" reads better than "that" here.
---Before--- [Previously] we had to read from the object state and then write back to it.
"Before" is contextually ambiguous here, and while I can imagine someone saying this, when written down it looks like an incomplete sentence
Code becomes much more meaningful when it follows “tell, ---dont’--- [don't] ask”. Setters and getters ---doesn’t--- don't tell us much about an object ---and--- [, or] how we should interact with it.
"dont’", "doesn’t" presumably typos "object and how" - oxford comma definitely benficial here, for some reason "or" seems like a better conjunction for this context although both make sense
Sometimes it’s not immediately obvious to which class a method belongs ---to---.
superfluous trailing "to"
If that is the case...
"When" may be better than "If"?