The "oracle problem" is what I think you are referring to but I have a strong view that the problem of low quality data can be solved with existing mechanisms and tools.
My favourite method to dealing with information quality is by providing incentives to good quality sources and having a method that allows a third-party (anyone with an account...) to submit a fraud proof.
On-chain, the solution is to have an oracle provide a third vote somehow. Off-chain, the solution is for the seller to report the buyer and its address to the authorities.
I can make a contract that relies on one single third party and in that case you are correct that there is some existing trust relationship. However, the protocols are designed such that the trust you need to have on the service provider is minimised with trusted computing systems and the contract's mechanism design.
Conversely, I can also write a contract that trusts a pool of oracles, or a prediction market (here the trust would be in the prediction market protocol and not on its operator), or a token curated registry where individuals are paid to give accurate information.
1) the contract is initiated by the seller (sets amount, payable accounts, etc)
2) the contract is signed by the buyer, moving (or locking) an amount of money in the contract pending one of two situations:
2.1) the seller signs a message that the product has been shipped and the buyer signs a message the product has been received
2.2) the seller signs a message that the product has been shipped and after 30 days of no further message from the buyer's side the contract releases the funds
In this case, the solution is to have a commitment from the buyer that unless they take action (sign a special message to denounce the transaction / pull out of the contract) the seller gets paid. To address the scenario where the seller is malicious, the buyer can use the on-chain commitments from both parties as evidence of malpractice and report the situation.
(edit: formatting)