Do app developers get to set their own prices for foreign app stores? Or are the prices automatically and uncontrollably set by Apple, based on US app store prices?
Apple does pricing in tiers. Tier 0 (free) to tier 87 ($1000 USD). You choose a tier which correlates to a fixed price from a drop down menu. These tiers are converted to a localized price through all the stores. The same works for in-app purchases.
Eg: Tier 87 is automatically $1399 CAD, as long as you allow that app to be available in the Canada App Store.
Not with the sale price of the app at least. Just like there is a review process for the app, there is also a separate review process for in-app purchases. 1 tier across all countries for each in-app purchase and the initial sale price.
Now, with that being said, I have not seen an instance of a developer or seller abusing the localization API for this purpose... meaning forcibly charging other stores for the same in-app purchase content. A separate in-app purchase would have to be made in any case for other stores to route to. Apple has a pretty firm fist and I imagine location abuse like this may lead to the seller's account being banned or punished. It may be perfectly allowed however, I haven't dug too deep into the TOS.
I'm not sure I understand your post? I was thinking along the lines of a developer picking a different tier for one territory over another because they disagreed with Apple's default pricing. Maybe they don't like the exchange rate, or they have unique localization costs associated with one territory, or they have additional licensing costs for one market over others. I wasn't really thinking about in-app purchases.
In that case no, you cannot set multiple tiers over multiple territories for the price of an app. There's no override for Apples default "1 tier fits all" pricing system as far as I know.
Eg: Tier 87 is automatically $1399 CAD, as long as you allow that app to be available in the Canada App Store.