# How do I set a custom item quantity totalizer for shipping rates?

Shipping rates can define a custom item quantity totalizer to control how item quantities are calculated when determining whether a rate is applicable.

For example, you may want sample products to be excluded from the item quantity used when evaluating quantity-based shipping rules.

First, define a setting on the variant:

```php
\Aero\Catalog\Models\Variant::settings(function (\Aero\Common\Settings\ModelSettingGroup $group) {
    $group->boolean('is_sample')->default(false);
});
```

The `setItemQuantityTotalizer` method can then exclude sample products when calculating the total quantity:

```php
\Aero\Cart\Models\ShippingRate::setItemQuantityTotalizer(function ($items) {
    return $items
        ->reject(function (\Aero\Cart\Models\OrderItem $item) {
            return $item->buyable->setting('is_sample');
        })
        ->sum('quantity');
});
```

The totalizer receives the order items and the shipping rate as parameters and should return the total quantity of the items or `null`.

<p class="callout info">Returning `null` means that the default item quantity totalizer will be used.</p>

---

### Parameters

<table border="1" id="bkmrk-parameter-type-descr" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 33.3333%;"></col><col style="width: 33.3333%;"></col><col style="width: 33.3333%;"></col></colgroup><tbody><tr><td>**Parameter**</td><td>**Type**</td><td>**Description**</td></tr><tr><td>`$items`  
</td><td>`\Aero\Common\Eloquent\JavaScriptableCollection`  
</td><td>The order items being evaluated.</td></tr><tr><td>`$rate`  
</td><td>`\Aero\Cart\Models\ShippingRate`  
</td><td>The shipping rate being evaluated.</td></tr></tbody></table>