## Step 1: Define the symbolic representation of the problem

Let's define the symbolic variables:
- $x_1$ = number of postal service pickups
- $x_2$ = number of vans hired

The objective is to maximize the number of gifts sent, which can be represented as $100x_1 + 80x_2$.

## Step 2: Define the constraints

The constraints given are:
1. The cost per pickup from the postal office is $50 and the cost per van is $40, with a budget of $1000: $50x_1 + 40x_2 \leq 1000$
2. The number of vans cannot exceed the number of postal service pickups: $x_2 \leq x_1$
3. Non-negativity constraints: $x_1 \geq 0, x_2 \geq 0$
4. Since $x_1$ and $x_2$ represent the number of pickups and vans, they must be integers: $x_1 \in \mathbb{Z}, x_2 \in \mathbb{Z}$

## 3: Convert the problem into a symbolic representation

```json
{
'sym_variables': [('x1', 'postal service pickups'), ('x2', 'vans hired')],
'objective_function': '100*x1 + 80*x2',
'constraints': [
    '50*x1 + 40*x2 <= 1000',
    'x2 <= x1',
    'x1 >= 0',
    'x2 >= 0',
    'x1 ∈ ℤ',
    'x2 ∈ ℤ'
]
}
```

## 4: Implement the problem in Gurobi code

```python
import gurobi

def solve_gift_store_problem():
    # Create a new model
    model = gurobi.Model()

    # Define the variables
    x1 = model.addVar(name="postal_pickups", vtype=gurobi.GRB.INTEGER, lb=0)
    x2 = model.addVar(name="vans_hired", vtype=gurobi.GRB.INTEGER, lb=0)

    # Define the objective function
    model.setObjective(100*x1 + 80*x2, gurobi.GRB.MAXIMIZE)

    # Define the constraints
    model.addConstr(50*x1 + 40*x2 <= 1000, name="budget_constraint")
    model.addConstr(x2 <= x1, name="vans_vs_pickups_constraint")

    # Solve the model
    model.optimize()

    # Print the solution
    if model.status == gurobi.GRB.OPTIMAL:
        print("Optimal solution found.")
        print(f"Number of postal pickups: {x1.varValue}")
        print(f"Number of vans hired: {x2.varValue}")
        print(f"Total gifts sent: {100*x1.varValue + 80*x2.varValue}")
    else:
        print("No optimal solution found.")

solve_gift_store_problem()
```