Answer
API calls need the &AO.. prefix too, not just table and view references — for example, &AO..Shop_Ord_API.Get_State(...), not just Shop_Ord_API.Get_State(...) on its own. At runtime, &AO.. gets substituted with the actual application-owner schema that owns the database objects (tables, views, and API packages alike); omitting it on an API call makes the query look for that package under your own querying user's schema instead, which doesn't have it — producing exactly the kind of deployment error you'd see from a genuinely missing/invalid object reference.