Получение списка категорий в Акенео

Следующий код был предоставлен в документации Akeneo:
Используйте REST API
. При выполнении кода он дает результат вроде

RESULT:{"resource":"http:\/\/akeneo-pim.local\/api\/rest\/products\/OROMUG_DBO","family":"mugs","groups":OMUG_OB","OROMUG_ODB"]}}.....

Я хочу, чтобы категории, присутствующие в Akeneo, были похожими. Приведенный выше код использует ProductController из WebserviceBundle. Как мне поступить, чтобы получить категории подобным образом.

4

Решение

На самом деле, Akeneo PIM пока предоставляет REST-контроллер продукта только для внешних целей.

Ваше единственное решение — создать собственный контроллер категории для извлечения данных категории из PIM.

контроллер продукта хороший шаблон для начала

Вы также можете взглянуть на наши внутренний контроллер категории API чтобы увидеть, как правильно нормализовать категории

3

Другие решения

Вот пример кода для контроллера, отображающего форму, позволяющую выбирать из всех существующих категорий из канала «печать».

public function indexAction()
{

$channels = $this->channelRepository->getFullChannels();
$selected_channel = null;

/*
* default channels are: 'print', 'mobile' 'ecommerce'
*/
foreach($channels as $channel) {
if('print' == $channel->getCode() ) {
$selected_channel = $channel;
break;
}
}
$categories = [];

/*
* fill-in the array with the values we're interested in
*/
if($selected_channel) {
$category = $selected_channel->getCategory();
$categories_ids = array_merge([$category->getId()], $this->categoryRepository->getAllChildrenIds($category));

foreach($categories_ids as $category_id) {
$category = $this->categoryRepository->find($category_id);
$categories[] = array('id' =>$category->getId(), 'label' => $category->getLabel());
}
}

return $this->templating->renderResponse('CfXmlBundle:Form:index.html.twig', array('categories' => $categories, 'locale' => 'en_US', 'scope' => null));
}

И связанный шаблон Twig:

<form>
<div style="clear: both; width: 100%;">
<label>Choose a catalog:</label>
<select name="category_id" style="width: 100%;">
{% for category in categories %}
<option value="{{ category.id }}">{{ category.label }}</option>
{% endfor %}
</select>
</div>
<div style="clear: both; width: 100%">
<label>Catalog title</label>
<input type="text" name="title" value="" style="width: 100%;" placeholder="default is choosen catalog name" />
</div>
<div style="clear: both; width: 100%;">
<label>Catalog description</label>
<textarea name="description" style="width: 100%;"></textarea>
</div>
<div style="clear: both;">
<input style="float: left;" type="checkbox" name="prices" value="0" />
<label style="float: left;">&nbsp;Show prices ?</label>
</div>
<div style="clear: both; text-align:right;">
<input type="submit" value="Generate" />
</div>
</form>
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector