2015-10-07 2 views
4

В документации Akeneo: Use REST API . Об исполнении кода, это дает результат, какСписок категорий в Akeneo

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

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

ответ

3

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

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

product controller хороший шаблон, чтобы начать

Вы также можете посмотреть на нашем internal API category controller, чтобы увидеть, как правильно нормировать категории

+1

благодаря @julien, я буду смотреть на него. :) –

0

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

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> 
Смежные вопросы