Here’s an error you probably spent WAY too much time trying to figure out.
sObject type ‘OrderItem’ is not supported. If you are attempting to use a custom object, be sure to append the ‘__c’ after the entity name. Please reference your WSDL or the describe call for the appropriate names
Answer: It’s read permission on Pricebook2. Go turn that on.
Thanks to Tsenko Aleksiev for the “research”!