## Problem Description and Formulation

The problem is a linear programming optimization problem. Pierre wants to maximize his profit by buying sandals and slippers with a limited budget of $3000. The demand for sandals is at least three times the demand for slippers. The profit per sandal sold is $70, and the profit per slipper sold is $30. The cost of a sandal is $50, and the cost of a slipper is $20.

## Decision Variables

Let $x$ be the number of sandals Pierre buys, and $y$ be the number of slippers he buys.

## Objective Function

The objective function is to maximize the total profit: $70x + 30y$.

## Constraints

1. Budget constraint: $50x + 20y \leq 3000$
2. Demand constraint: $x \geq 3y$
3. Non-negativity constraint: $x \geq 0, y \geq 0$

## Gurobi Code

```python
import gurobi

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

    # Define decision variables
    x = model.addVar(name="sandals", lb=0, vtype=gurobi.GRB.INTEGER)
    y = model.addVar(name="slippers", lb=0, vtype=gurobi.GRB.INTEGER)

    # Objective function: maximize profit
    model.setObjective(70 * x + 30 * y, gurobi.GRB.MAXIMIZE)

    # Budget constraint
    model.addConstr(50 * x + 20 * y <= 3000, name="budget")

    # Demand constraint
    model.addConstr(x >= 3 * y, name="demand")

    # Solve the model
    model.optimize()

    # Print the solution
    if model.status == gurobi.GRB.OPTIMAL:
        print(f"Optimal solution: x = {x.varValue}, y = {y.varValue}")
        print(f"Maximum profit: ${70 * x.varValue + 30 * y.varValue}")
    else:
        print("No optimal solution found")

    return model

# Run the model
model = pierre_ecommerce_problem()
```