public function testNotFoundAction()
 {
     $ids = array("B004UMO24E", "B00B6U14XA", "B00HQ2N52K", "B00B8XYO9G", "B00L3S2LWS", "c3d33ab7-5dc5-41e6-8d2a-0aadbcffb738", "B00NH3GL96", "B00EKH4FP0", "50d98962-9561-4028-9282-37191f8772e3", "B008TUNEFG", "B00GG0GKDO", "B00CO79BXO", "B00O6BO6O0", "B00NPO529C", "B00NPIB7Z6", "B00H6MMV20", "B00NPLNUQ2", "B00NPLNRWY", "B00O5NGFBQ", "B00FXYJ568", "B005K00TLU", "B00IJEFRSY", "B00JQ4KY5C", "B00IJEFRSY", "B00J6ZHEHC", "B00J6ZHEHC", "B00B9CFYBI", "e6bb95b8-6af6-4dc8-bcd8-c6950c0ab046", "B00N02YOJ8", "B00EDGGW54", "B00D83XPTE", "B00M4YVHLQ", "B00NAGZB4Q", "B00L7N451E", "B00N1Q6Z86", "B00O1AJBU0", "B00H377PVK", "B00JPXT2WK", "B005SG6ELU", "B00LWXT17C", "B00LWXT22G", "B00O09LGIW", "B00NEF3KNW", "B00NN7B7FE", "B00JJWLB4O", "B00HS0H41S", "B00JQQPEC8", "B00O1HTQ0I", "B00GS02S8S");
     $countryCode = 'de';
     $entities = $this->itemNotFoundService->findByAsin($ids);
     #    $entities = $this->itemNotFoundService->getRepository()->findBy(['asin' => $ids]);
     foreach ($entities as $entity) {
         /** @var $entity ItemNotFound */
         $id = array_search($entity->getIdentifier(), $ids);
         if ($id) {
             unset($ids[$id]);
         }
     }
     $resultSet = $this->apaiIOWrapper->getByASINS($ids, $countryCode);
     $notFound = $this->apaiIOWrapper->getItemsNotFound();
     foreach ($notFound[$countryCode] as $item) {
         if (false === $this->itemNotFoundService->existsByAsin($item)) {
             $itemNotFound = new ItemNotFound();
             $itemNotFound->setIdentifier($item);
             $itemNotFound->setIdentifierType('ASIN');
             $itemNotFound->setSearchedDe(true);
             $this->itemNotFoundService->getEntityManager()->persist($itemNotFound);
             $this->itemNotFoundService->getEntityManager()->flush();
         }
     }
 }
Пример #2
0
 public function testEquals()
 {
     $ids = array("B004UMO24E", "B00B6U14XA", "B00HQ2N52K", "B00B8XYO9G", "B00L3S2LWS", "B00L3S2LWS", "c3d33ab7-5dc5-41e6-8d2a-0aadbcffb738", "B00NH3GL96", "B00EKH4FP0", "50d98962-9561-4028-9282-37191f8772e3", "B008TUNEFG", "B00GG0GKDO", "B00CO79BXO", "B00O6BO6O0", "B00NPO529C", "B00NPIB7Z6", "B00H6MMV20", "B00NPLNUQ2", "B00NPLNRWY", "B00O5NGFBQ", "B00FXYJ568", "B005K00TLU", "B00IJEFRSY", "B00JQ4KY5C", "B00IJEFRSY", "B00J6ZHEHC", "B00J6ZHEHC", "B00B9CFYBI", "e6bb95b8-6af6-4dc8-bcd8-c6950c0ab046", "B00N02YOJ8", "B00EDGGW54", "B00D83XPTE", "B00M4YVHLQ", "B00NAGZB4Q", "B00L7N451E", "B00N1Q6Z86", "B00O1AJBU0", "B00H377PVK", "B00JPXT2WK", "B005SG6ELU", "B00LWXT17C", "B00LWXT22G", "B00O09LGIW", "B00NEF3KNW", "B00NN7B7FE", "B00JJWLB4O", "B00HS0H41S", "B00JQQPEC8", "B00O1HTQ0I", "B00GS02S8S");
     $config = $this->getApplicationConfig()['amazon-apai'];
     $apaiIoWrapper = new ApaiIOWrapper($config);
     /*
        #     $result2 =  $apaiIoWrapper->getByASIN('B00EDGGW54', 'de');
               #      $result2 =  $apaiIoWrapper->getByASIN('B00N02YOJ8', 'de');
        #     $result =  $apaiIoWrapper->getByASIN('B00GS02S8S', 'de');
                     #$result2 =  $apaiIoWrapper->getByASIN('B00EDGGW54', 'de');
     */
     /**
      * @var $itemNotFoundService ItemNotFoundServiceInterface
      */
     $itemNotFoundService = $this->serviceManager->get(ItemNotFoundServiceInterface::class);
     $countryCode = 'de';
     $resultSet = $apaiIoWrapper->getByASINS($ids, $countryCode);
     $notFound = $apaiIoWrapper->getItemsNotFound();
     foreach ($notFound[$countryCode] as $item) {
         $itemNotFound = new ItemNotFound();
         $itemNotFound->setAsin($item);
         $itemNotFound->setSearchedDe(true);
         $itemNotFoundService->getEntityManager()->persist($itemNotFound);
     }
     $itemNotFoundService->getEntityManager()->flush();
     $break = true;
 }
 public function synchronize($wishlistId, $countryCode)
 {
     $this->amazonCrawler->setWishlistId($wishlistId);
     $this->amazonCrawler->setCountryCode($countryCode);
     $items = $this->amazonCrawler->crawlItems();
     $itemsToFetch = array();
     $products = array();
     foreach ($items as $item) {
         $product = $this->productService->getProductByAsin($item['asin']);
         if (null === $product) {
             $itemsToFetch[] = $item['asin'];
         } else {
             $products[] = $product;
         }
     }
     if (0 === count($items)) {
         echo 'no products found' . PHP_EOL;
         return;
     }
     $apaiIoResultSet = $this->apaiIOWrapper->getByASINS($itemsToFetch, $item['tld']);
     foreach ($apaiIoResultSet as $itemDetails) {
         $product = $this->productService->createProductByXml($itemDetails);
         $products[] = $product;
         $this->productService->getEntityManager()->persist($product);
     }
     $wishList = $this->wishlistService->findByWishlistID($wishlistId);
     if (null === $wishList) {
         $wishList = new Wishlist();
         $wishList->setName('IDK');
         $wishList->setWishlistOwnerName('IDK');
         $wishList->setAmazonId($wishlistId);
         $wishList->setTld($countryCode);
         //@todo owner & so on
     }
     $wishList->setProducts($products);
     $this->wishlistService->persistWishList($wishList);
     $this->wishlistService->getEntityManager()->flush();
 }