src/Zsdev/MarketplaceBundle/Controller/ProductSyncDataAddController.php line 19

Open in your IDE?
  1. <?php
  2. namespace App\Zsdev\MarketplaceBundle\Controller;
  3. use App\Zsdev\MarketplaceBundle\Entity\ProductSyncItem;
  4. use Doctrine\ORM\EntityManagerInterface;
  5. use Pimcore\Db;
  6. use Pimcore\Model\DataObject;
  7. use Pimcore\Model\Asset;
  8. use Pimcore\Controller\FrontendController;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. use Pimcore\Model\DataObject\Service;
  12. use Pimcore\Model\DataObject\Classificationstore\KeyConfig;
  13. class ProductSyncDataAddController extends FrontendController
  14. {
  15.     public function addDataAction(
  16.         Request $request,
  17.         EntityManagerInterface $entityManager
  18.     )
  19.     {
  20.         $response = [
  21.             'success' => false,
  22.             'recieved' => 0,
  23.             'error' => ''
  24.         ];
  25.         try {
  26.             $requestData json_decode($request->getContent(), true);
  27.             if (empty($requestData)) {
  28.                 $response['error'] = 'No request data, or invalid request data!';
  29.                 return $this->json($response);
  30.             }
  31.             foreach($requestData as $item) {
  32.                 $response['recieved']++;
  33.                 /**
  34.                  * Save in table
  35.                  */
  36.                 $sku $item['sku'];
  37.                 $syncProduct = new ProductSyncItem();
  38.                 $syncProduct->setStatus('pending');
  39.                 $syncProduct->setSku($sku);
  40.                 $syncProduct->setContent(json_encode($item));
  41.                 $syncProduct->setCreatedAt(new \DateTime('now'));
  42.                 $entityManager->persist($syncProduct);
  43.                 $entityManager->flush($syncProduct);
  44.                 unset($syncProduct);
  45.                 unset($item);
  46.             }
  47.             $response['success'] = true;
  48.         } catch (\Exception $e) {
  49.             $response['error'] = 'Exception: '.$e->getMessage();
  50.         }
  51.         return $this->json($response);
  52.     }
  53. }