wishlistItemCollectionFactory = $wishlistItemCollectionFactory; $this->storeManager = $storeManager; } /** * @inheritdoc */ public function resolve( Field $field, $context, ResolveInfo $info, array $value = null, array $args = null ) { if (!isset($value['model'])) { throw new LocalizedException(__('Missing key "model" in Wishlist value data')); } /** @var Wishlist $wishlist */ $wishlist = $value['model']; $wishlistItems = $this->getWishListItems($wishlist); $data = []; foreach ($wishlistItems as $wishlistItem) { $data[] = [ 'id' => $wishlistItem->getId(), 'qty' => $wishlistItem->getData('qty'), 'description' => $wishlistItem->getDescription(), 'added_at' => $wishlistItem->getAddedAt(), 'model' => $wishlistItem, ]; } return $data; } /** * Get wishlist items * * @param Wishlist $wishlist * @return Item[] */ private function getWishListItems(Wishlist $wishlist): array { /** @var WishlistItemCollection $wishlistItemCollection */ $wishlistItemCollection = $this->wishlistItemCollectionFactory->create(); $wishlistItemCollection ->addWishlistFilter($wishlist) ->addStoreFilter(array_map(function (StoreInterface $store) { return $store->getId(); }, $this->storeManager->getStores())) ->setVisibilityFilter(); return $wishlistItemCollection->getItems(); } }