public function onProductSave(ProductSavedEvent $event)
 {
     $product = $event->getProduct();
     $this->repository->saveAvailability($product->getId()->getValue(), $product->isAvailable());
     if ($this->persister->handlesObject($product)) {
         $this->persister->insertOne($product);
     }
 }
Example #2
0
 /**
  * Persist scheduled objects to ElasticSearch
  * After persisting, clear the scheduled queue to prevent multiple data updates when using multiple flush calls.
  */
 private function persistScheduled()
 {
     if (count($this->scheduledForInsertion)) {
         $this->objectPersister->insertMany($this->scheduledForInsertion);
         $this->scheduledForInsertion = array();
     }
     if (count($this->scheduledForUpdate)) {
         $this->objectPersister->replaceMany($this->scheduledForUpdate);
         $this->scheduledForUpdate = array();
     }
     if (count($this->scheduledForDeletion)) {
         $this->objectPersister->deleteManyByIdentifiers($this->scheduledForDeletion);
         $this->scheduledForDeletion = array();
     }
 }