Это то, что я получил до сих пор, но это не работает.
public function getCompleteness(){
$searchBuilder = new AkeneoSearchBuilder();
$searchBuilder->addFilter('completeness', '=', 100);
try {
$products = $this->apiClient->getProductApi()->all(
50,
[
'search' => $searchBuilder->getFilters(),
'scope' => 'ecommerce'
]
);
} catch (HttpException $e){
echo "Message: " . $e->getMessage();
echo "Code: " . $e->getCode();
}
return $products;
}
}
Это вызов, который я пытаюсь использовать из Akeneo API.
{{url}}/api/rest/v1/products?search={"completeness":[{"operator":"=","value":100,"scope":"ecommerce"}]}
Как я могу использовать метод GetCompleteness (), чтобы он дал некоторые результаты? У меня проблема с использованием AkeneoSearchBuilder ();
Когда вы делаете:
$searchBuilder = new AkeneoSearchBuilder();
$searchBuilder->addFilter('completeness', '=', 100);
$products = $this->apiClient->getProductApi()->all(
50,
[
'search' => $searchBuilder->getFilters(),
'scope' => 'ecommerce'
]
);
Это в основном означает: «Для всех продуктов, указанных в поле «undefined», укажите все их значения для электронной коммерции.».
То, что вы пытаетесь достичь, это (я думаю): «Для всех продуктов, входящих в сферу «электронной коммерции», дайте мне все их значения».
Как вы можете прочитать на официальной документации о фильтр полноты, вам нужно указать область действия:
$searchBuilder = new AkeneoSearchBuilder();
$searchBuilder->addFilter('completeness', '=', 100, ['scope' => 'ecommerce']);
Теперь вы можете получить их значения, вызвав:
$products = $this->apiClient->getProductApi()->all(
50,
[
'search' => $searchBuilder->getFilters()
]
);
Обратите внимание, что здесь я удалил параметр «scope».
Возобновить:
Других решений пока нет …