How to drag an object with gravity still affecting it

I am making a 3d sidescroller and need a crate pull mechanic, it needs to drag along the ground not in the air, being pushed up or down a slope. So far ive only been able to emulate the pushing and pulling on a flat plane, however it hovers when over a ledge and gets stuck on hills.

How would you go about tackling this mechanics?