/**
  * Transforms Category entity into ES document.
  *
  * @param Category         $category
  * @param CategoryDocument $document
  */
 public function transformCategoryToDocument(Category $category, CategoryDocument $document)
 {
     $document->setId($category->getId());
     $document->setActive($category->isActive());
     $document->setHidden($category->isHidden());
     $document->setLeft($category->getLeft());
     $document->setRight($category->getRight());
     $document->setRootId($category->getRoot()->getId());
     $document->setSort($category->getSort());
     $document->setTitle($category->getTitle());
     $document->setDescription($category->getDesc());
     $document->setLongDescription($category->getLongDesc());
     $document->setAttributes($this->attrToDocService->transform($category->getAttributes()));
     $this->extractUrls($category, $document);
     $parent = $category->getParent();
     $parentId = $parent ? $parent->getId() : null;
     if (empty($parentId) === false) {
         $document->setParentId($parentId);
     } else {
         $document->setParentId('oxrootid');
     }
 }
 /**
  * Adds product variant to document.
  *
  * @param ProductDocument $document
  * @param Article         $variant
  */
 protected function modifyVariant($document, $variant)
 {
     $variantObject = new VariantObject();
     $variantObject->setId($variant->getId());
     $variantObject->setActive($variant->isActive());
     $variantObject->setSku($variant->getArtNum());
     $variantObject->setTitle($variant->getTitle());
     $variantObject->setDescription($variant->getShortDesc());
     $variantObject->setPrice($variant->getPrice());
     $variantObject->setOldPrice($variant->getTPrice());
     $variantObject->setStock($variant->getStock());
     $variantObject->setAttributes($this->attrToDocService->transform($variant->getAttributes()));
     $this->extractExtensionData($variant, $variantObject);
     $document->addVariant($variantObject);
 }
 /**
  * Test transform with non-traversable entity.
  */
 public function testTransformNonTraversable()
 {
     $entity = new Attribute();
     $this->assertEquals([], $this->service->transform($entity));
 }