public function getRequest() { $request = new \Magento\Framework\DataObject(); $request->setQty($this->proxyItem->getQty()); // grouped and downloadable products doesn't have options if ($this->proxyItem->getProduct()->getTypeId() == TypeGrouped::TYPE_CODE || $this->proxyItem->getProduct()->getTypeId() == TypeDownloadable::TYPE_DOWNLOADABLE) { return $request; } /** @var $magentoProduct \Ess\M2ePro\Model\Magento\Product */ $magentoProduct = $this->modelFactory->getObject('Magento\\Product')->setProduct($this->getProduct()); $options = $this->proxyItem->getOptions(); if (empty($options)) { return $request; } if ($magentoProduct->isSimpleType()) { $request->setOptions($options); } else { if ($magentoProduct->isBundleType()) { $request->setBundleOption($options); } else { if ($magentoProduct->isConfigurableType()) { $request->setSuperAttribute($options); } } } return $request; }