public function testSingleProductFromEdited()
 {
     $ay = new \AY(53, 'h]vWu6PAuz7sfdYNZ5VqkfM^93W0k{3m');
     $result = $ay->fetchProductsByIds([1966800], [ProductFields::CATEGORIES, ProductFields::VARIANTS]);
     $products = $result->getProducts();
     $this->assertEquals(1, count($products));
     $product = array_shift($products);
     $categories = $product->getLeafCategories();
     foreach ($categories as $category) {
         $breadCrumb = json_encode(array_map(function ($category) {
             return $category->getName();
         }, $category->getBreadcrumb()));
     }
 }
 /**
  * {@inheritdoc}
  *
  * @return Model\VariantsResult
  */
 public function createVariantsResult(stdClass $jsonObject)
 {
     $variants = [];
     $errors = [];
     $productSearchResult = false;
     foreach ($jsonObject->variant_product as $variantId => $productId) {
         if (!is_numeric($productId)) {
             $errors[] = (int) $variantId;
         } else {
             $variants[$variantId] = (int) $productId;
         }
     }
     $productIds = array_unique($variants);
     if (count($productIds) > 0) {
         // search products for valid variants
         $productSearchResult = $this->ay->fetchProductsByIds($productIds, [ProductFields::ATTRIBUTES_MERGED, ProductFields::BRAND, ProductFields::CATEGORIES, ProductFields::DEFAULT_IMAGE, ProductFields::DEFAULT_VARIANT, ProductFields::DESCRIPTION_LONG, ProductFields::DESCRIPTION_SHORT, ProductFields::IS_ACTIVE, ProductFields::IS_SALE, ProductFields::MAX_PRICE, ProductFields::MIN_PRICE, ProductFields::VARIANTS, ProductFields::INACTIVE_VARIANTS]);
     }
     return Model\VariantsResult::create($variants, $errors, $productSearchResult);
 }