<?php
namespace App\Zsdev\MarketplaceBundle\Controller;
use App\Zsdev\MarketplaceBundle\Entity\ProductSyncItem;
use Doctrine\ORM\EntityManagerInterface;
use Pimcore\Db;
use Pimcore\Model\DataObject;
use Pimcore\Model\Asset;
use Pimcore\Controller\FrontendController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use Pimcore\Model\DataObject\Service;
use Pimcore\Model\DataObject\Classificationstore\KeyConfig;
class ProductSyncDataAddController extends FrontendController
{
public function addDataAction(
Request $request,
EntityManagerInterface $entityManager
)
{
$response = [
'success' => false,
'recieved' => 0,
'error' => ''
];
try {
$requestData = json_decode($request->getContent(), true);
if (empty($requestData)) {
$response['error'] = 'No request data, or invalid request data!';
return $this->json($response);
}
foreach($requestData as $item) {
$response['recieved']++;
/**
* Save in table
*/
$sku = $item['sku'];
$syncProduct = new ProductSyncItem();
$syncProduct->setStatus('pending');
$syncProduct->setSku($sku);
$syncProduct->setContent(json_encode($item));
$syncProduct->setCreatedAt(new \DateTime('now'));
$entityManager->persist($syncProduct);
$entityManager->flush($syncProduct);
unset($syncProduct);
unset($item);
}
$response['success'] = true;
} catch (\Exception $e) {
$response['error'] = 'Exception: '.$e->getMessage();
}
return $this->json($response);
}
}