> ## Documentation Index
> Fetch the complete documentation index at: https://docs.slm.m1amdocs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Product.fetchAll

The `fetchAll` method returns all the `Product` objects.

This method supports paging to limit the number of records returned per call. Returning a large number of records in one call may swamp buffers, and might cause a failure. Vindicia recommends that you call this method in a loop, incrementing the page for each loop iteration with an optimal page size (number of records returned in one call) until the page contains a number of records that is less than the given page size.

## Input

*srd*: sparse response description, a SOAP string (which must be a JSON object), in which you specify the elements you want returned.This parameter enables the calling system to constrain a `method` call to return only components you specify. This gives you greater control over returned content, and improves response time within the Vindicia platform by reducing the processing needed for the call.

Some fields are required, either practically or in the WSDL, and will be returned regardless of the *srd*. A null *srd* returns the complete response.

*page*: the page number, starting at 0, for which to return the results. For example, if the total number of results is 85 and *pageSize* is 10:

* Specifying 0 for *page* gets the results from 1 through 10.
* Specifying 2 for *page* gets the results from 21 through 30.

*pageSize*: the number of records to display per page per call. This value must be greater than 0.

## Output

*return*: an object of type `Return` that indicates the success or failure of the call.

*products*: an array of returned `Product` objects.

## Returns

In addition to those listed in [The Return Object](The_Return_Object), this call returns:

| Return Code | Return String |
| - | - |
| `404` | `No products found for merchant.` |

## Example

```

$product = new Product();
$page = 0;
$pageSize = 10;
do {
   $ret = $product->fetchAll($page, $pageSize);
   $count = 0;
   if ($ret['returnCode'] == 200) {
      $fetchedProducts = $ret['products'];
      if ($fetchedProducts != null) {
         $count = sizeof($fetchedProducts);
         foreach ($fetchedProducts as $prod) {

         // process a fetched product here …
         $page++;
         }
      }
   } while ($count > 0);
}
```

**Parent topic:**[Product Methods](../topics/Product_Methods)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.