searchProducts

Search products and return full product records.

Description

The following fields may be used to search the database and return transaction details:

  • ProductID
  • ProductRefNum
  • SKU
  • CategoryID
  • Enabled
  • Name
  • Description
  • Model
  • Weight
  • ShipWeight
  • Price
  • WholesalePrice
  • ListPrice
  • DateAvailable
  • Manufacturer
  • Type
  • MinQuantity
  • MaxQuantity
  • ImageURL
  • URL

See also searchProductsCustom and searchProductsCount

Syntax

ProductSearchResult searchProducts ( ueSecurityToken Token, SearchParam Search, boolean MatchAll, integer Start, integer Limit, string Sort)

Arguments

Type Name Description
ueSecurityToken Token Merchant security token: used to identify merchant and validate transaction.
SearchParam Search Array of search parameters (ProductSearchParam objects) available.
boolean MatchAll If set to "true," only results matching all search criteria will be returned, if set to "false," results matching any of the search criteria will be returned.
integer Start Record number to start returning from (ie if 1,000 were found and you only want to receive the last 200 you would set Start=800 and Limit=200)
integer Limit Maximum number of transactions to return in result set.
string Sort Comma separated list of fields to sort by.

Return Value

Type Description
ProductSearchResult Returns full product records for all products matching the specified search parameters.

Examples

PHP 5

For directions on how to set up the WSDL link, create "$token" and "$client", go to PHP Soap How-to.


    <?php

    try {

      // Create search parameter list
      $search=array(
        array(
          'Field'=>'name',   
          'Type'=>'eq',
          'Value'=>'A Great Product')
        );
      $start=0;
      $limit=100;
      $matchall=true;
      $sort='created';

      $res=$client->searchProducts($token,$search,$matchall,$start,$limit,$sort);

      print_r($res);

    }
    catch(SoapFault $e) {
      echo $client->__getLastResponse();
      die("Search Products Failed :".$e->getMessage());
    }

    ?>

PHP 4 (NuSOAP)

    <?php

    include './nusoap.php';

    // Create Soap Client
    $s=new soapclient("./newtek.wsdl",'wsdl');
    $tran=$s->getProxy();

    // Source Key Setting
    $sourcekey='yQbOFkjD8wwlkZ3AhY248k3Lc9PH1l14';
    $pin='1234';

    // Prep source key
    $seed=mktime() . rand();
    $tmp=$sourcekey . $seed . $pin;
    $hash=sha1($tmp);
    $token=array('SourceKey'=>$sourcekey, 'PinHash'=>array('Type'=>'sha1', 'Seed'=>$seed,'HashValue'=>$hash));


    // Prep Request data
    $search=array(
          array('Field'=>'title', 'Type'=>'eq','Value'=>'A Great Product')
    );
    $start=0;
    $limit=10;
    $matchall=true;
    $sort='created';

    $res=$tran->searchProducts($token,$search,$matchall,$start,$limit,$sort);

    if(!$err=$tran->getError()) {
            print_r($res);
    } else {

            echo "Error: $err\n";
            echo $tran->request;  

    }

VB

    Dim MatchAll As Boolean
            MatchAll = False
            Dim searchParams(1) As newtek.SearchParam
            searchParams(0) = New newtek.SearchParam
            searchParams(0).Field = "Created"
            searchParams(0).Type = "gt"
            searchParams(0).Value = "2010-09-07"

            Dim SearchResults As newtek.ProductSearchResult = New newtek.ProductSearchResult
            SearchResults = client.searchProducts(token, searchParams, MatchAll, "0", "1000", "created")

            MsgBox(SearchResults.ProductsMatched)

.NET C

                newtek.SearchParam[] param = new newtek.SearchParam[1];
                param[0] = new newtek.SearchParam();
                param[0].Field = "Created";
                param[0].Type = "Contains";
                param[0].Value = "2010-08-12";

                Boolean matchAll = true;
                string start = "0";
                string limit = "10";
                string sort = "created";

                newtek.ProductSearchResult response = new newtek.ProductSearchResult();

                try
                {
                    response = client.searchProducts(token, param, matchAll, start, limit, sort);
                    MessageBox.Show(string.Concat(response.ProductsMatched));
                }
                catch (Exception err)
                {
                    MessageBox.Show(err.Message);
                }

Coldfusion

NOTE: this example has not been tested and is provided as is

    Start = 0;
    Limit = 10;
    MatchAll=1;
    Sort='created';
    Search=ArrayNew(1);
    Search[1]=structnew();
    Search[1].Field='created';
    Search[1].Type='gt';
    Search[1].Value='2006-09-01';

    ws = createObject("webservice", "https://secure.newtekgateway.com/soap/gate/3213EA2A/newtek.wsdl");
    Output = ws.searchTransactions(Token, Search, MatchAll, Start, Limit, Sort);

XML

    <?xml version="1.0" encoding="UTF-8"?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:ns1="urn:newtek" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
    SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <SOAP-ENV:Body>
    <ns1:searchTransactions>
    <Token xsi:type="ns1:ueSecurityToken">
    <ClientIP xsi:type="xsd:string">192.168.0.1</ClientIP>
    <PinHash xsi:type="ns1:ueHash">
    <HashValue xsi:type="xsd:string">11ac55b0a0b59f8f028dbf85bc32266fa973dd0e</HashValue>
    <Seed xsi:type="xsd:string">12678150211876663375</Seed>
    <Type xsi:type="xsd:string">sha1</Type>
    </PinHash>
    <SourceKey xsi:type="xsd:string">HB4P7C4K2w2ZCQQQXRqrxDj6agrS2NIT</SourceKey>
    </Token>
    <Search SOAP-ENC:arrayType="ns1:SearchParam[1]" xsi:type="ns1:SearchParamArray">
    <item xsi:type="ns1:SearchParam">
    <Field xsi:type="xsd:string">amount</Field>
    <Type xsi:type="xsd:string">eq</Type>
    <Value xsi:type="xsd:string">29.00</Value>
    </item>
    </Search>
    <MatchAll xsi:type="xsd:boolean">true</MatchAll>
    <Start xsi:type="xsd:integer">0</Start>
    <Limit xsi:type="xsd:integer">10</Limit>
    <Sort xsi:type="xsd:string">created</Sort>
    </ns1:searchTransactions>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>