In response
variable, I am getting the last product only; not getting all products but in my log file, I am getting all products.
Here is my code:
class SalesOrderSaveAfter implements ObserverInterface {
protected $scopeConfig;
protected $date;
public function __construct(\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\Framework\Stdlib\DateTime\DateTime $date)
{
$this->scopeConfig = $scopeConfig;
$this->date = $date;
$this->orderData = $orderData;
}
public function execute(\Magento\Framework\Event\Observer $observer) {
$enable=$this->scopeConfig->getValue('abc/orderconfig/mkt_order_integration', \Magento\Store\Model\ScopeInterface::SCOPE_STORE);
if($enable){
$order = $observer->getEvent()->getOrder();
$status = 0;
$name='';
$data['Email'] = $order->getCustomerEmail();
$data['FirstName'] = $order->getCustomerFirstname();
$data['LastName'] = $order->getCustomerLastName();
$response= $this->orderData->orderData($data,$status,$name);
$res= json_decode($response, true);
if($res['success']==1){
$productobjectname= $this->scopeConfig->getValue('abc/orderconfig/productcustomobject', \Magento\Store\Model\ScopeInterface::SCOPE_STORE);
$orderobjectname= $this->scopeConfig->getValue('abc/orderconfig/ordercustomobject', \Magento\Store\Model\ScopeInterface::SCOPE_STORE);
$status = 1;
foreach($order->getAllVisibleItems() as $item){
if($item->getData()){
$digits = 3;
$rndno= rand(pow(10, $digits-1), pow(10, $digits)-1);
$cname= $productobjectname;
$pdata['emailAddress'] = $order->getCustomerEmail();
$pdata['orderId']= $order->getIncrementId();
$pdata['incrementId'] = $order->getIncrementId().$item->getProductId();
$pdata['productId'] = $item->getProductId();
$pdata['productName'] = $item->getName();
$pdata['productAmount'] = $item->getPrice();
$pdata['productSku'] = $item->getSku();
$pdata['productQty'] = (int)$item->getQtyOrdered();
$writer = new \Zend\Log\Writer\Stream(BP . '/var/log/orderData3.log');
$logger = new \Zend\Log\Logger();
$logger->addWriter($writer);
$logger->info($pdata);
$response = $this->orderData->orderData($pdata,$status,$cname);
}
}
}
}
return $this;
}
}
Please check my code and guide me on how can I get all the products to the response
variable?
Thanks!