affilinet / productdata-php-sdk

Documentation and Code Package of PHP SDK for affilinet Product Data Webservices

Home Page:http://developer.affili.net/productdata-php-sdk/documentation/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Suche nach Produktnamen(Query auf productName)

drtrabant opened this issue · comments

Hallo zusammen,

ich formuliere direkt deutsch, da ich in den anderen Issues sehen konnte, dass das klappt :)

Ich habe mir gestern das SDK runtergeladen und es auch bereits erfolgreich eingebunden.

Ich nutze "productRequest" um Ergebnisse zu erhalten. Jetzt bin ich leider an der Stelle, an der ich nicht weiß, wie ich die Suche verfeinern kann. Ich habe folgendes dazu gefunden:

  1. $productRequest->addRawQuery("t-shirt"); //beispiel aus der doku
  2. $productRequest->query("Query hier"); //beispiel aus der doku
  3. $productRequest->addFilterQuery("Query hier");

Für mein Verständnis ist die 3. Variante das was ich suche.
Ich möchte gerne nur im "Produktnamen" suchen und "Produktbeschreibungen" aus der Suche ausschließen, leider konnte ich das über die 3. Variante nicht ermöglichen, da ich immer einen Fehler erhalte.
Fehler:
Error: The given SearchProductsRequest is not valid. - The given SearchProductsRequest is not valid. FilterQuery ‘productName’ is not supported (please check case and spelling

Ich habe mir natürlich das ResponseObject angeschaut um zu sehen, welche Keys mir zur Verfügung stehen -> "productName" kommt darin vor. Vermutlich verstehe ich es einfach noch nicht richtig, da ich auch erst seit ein paar Wochen an php dran bin.

Mein Code:

`
// get Search-Query from user-input
$filter = $_REQUEST['suche'];

// set filter_parameter for productsRequest
$productsRequest->onlyWithImage(); // only include results with images
$productsRequest->addProductImage(); // include the original image of the product
$productsRequest->addShopLogoWithSize90px(); // also include a shop logo with a specific width of 90px
$productsRequest->maxPrice(1000.01); // maximum price 100 euro and one cent
$productsRequest->minPrice(1);   // minimum price: one euro
$productsRequest->page(1); // show the second result page page (page parameter starts counting at 1)
$productsRequest->pageSize(7); // 20 results per page
$productsRequest->sort(\Affilinet\ProductData\Requests\ProductsRequest::SORT_BY_PRICE, true);
$productsRequest->addFilterQuery('productName',$filter);

`

Würde mich über Unterstützung freuen und sage einfach mal vielen Dank.

Hallo drtrabant,
wir freuen uns, dass Du das affilinet SDK nutzt!

Bei der von Dir erwähnten Option (3) handelt es sich um die in unseren Produktdaten Webservices implementierten "Filter Queries", deren Doku Du auch hier findest: http://developer.affili.net/productdata-webservices/documentation/#filter-queries

Hierbei kannst Du eine Kombination aus konkreten Feldwerten definieren, auf die Du filtern möchtest. Zur Verfügung stehen Dir hierbei die folgenden Data Fields:

  • AffilinetCategoryPath
    
  • AffilinetCategoryPathFacet
    
  • ArticleNumber
    
  • Brand
    
  • Distributor
    
  • Manufacturer
    
  • ProgramId
    
  • ShopCategoryPath
    
  • ShopCategoryPathFacet
    
  • Property_*
    

Das von Dir gewünschte DataField "ProductName" steht im Request nicht zur Verfügung, daher funktioniert Deine Anfrage auch nicht.

Die Option (2) "query" bietet Dir die ausgefeiltesten Suchoptionen, allerdings kannst Du nicht bestimmen, dass nur im Product Name gesucht wird. Mittels der umfangreichen Suchoperatoren, siehe auch Doku zum Request Field "query" hier: http://developer.affili.net/productdata-webservices/documentation/#get-service-search-products, kannst Du allerdings sehr gut eingrenzen.

Noch eine Anmerkung zu $filter = $_REQUEST['suche'];
Hier macht es evtl. Sinn, den Request Value abzusichern (Sonderzeichen, HTML etc. filtern) bevor Du ihn an den Service übergibst.

Wir hoffen, die Beschreibung hilft Dir weiter und freuen uns von Dir zu hören.