/** * Updating the full description of the product * * @param Product $product * @param unknown $param * * @return ProductController */ private function _updateFullDescription(Product &$product, $param) { //update full description if (isset($param->CallbackParameter->fullDescription) && ($fullDescription = trim($param->CallbackParameter->fullDescription)) !== '') { if (($fullAsset = Asset::getAsset($product->getFullDescAssetId())) instanceof Asset) { Asset::removeAssets(array($fullAsset->getAssetId())); } $fullAsset = Asset::registerAsset('full_description_for_product.txt', $fullDescription, Asset::TYPE_PRODUCT_DEC); $product->setFullDescAssetId($fullAsset->getAssetId()); } return $this; }
/** * Creating the product based on sku * * @param string $sku The sku of the product * @param string $name The name of the product * @param string $mageProductId The magento id of the product * @param int $stockOnHand The total quantity on hand for this product * @param int $stockOnOrder The total quantity on order from supplier for this product * @param int $stockMinLevel The minimum stock level for this product * @param int $stockReorderLevel The reorder stock level for this product * @param bool $isFromB2B Whether this product is created via B2B? * @param string $shortDescr The short description of the product * @param string $fullDescr The assetId of the full description asset of the product * * @return Ambigous <Product, Ambigous, NULL, BaseEntityAbstract> */ public static function create($sku, $name, $mageProductId = '', $stockOnHand = null, $stockOnOrder = null, $isFromB2B = false, $shortDescr = '', $fullDescr = '', Manufacturer $manufacturer = null, $assetAccNo = null, $revenueAccNo = null, $costAccNo = null, $stockMinLevel = null, $stockReorderLevel = null, $manualDatafeed = false, $weight = null, $attributesetId = null) { if (!($product = self::getBySku($sku)) instanceof Product) { $product = new Product(); } $product->setSku(trim($sku))->setName($name)->setManualDatafeed(intval($manualDatafeed) === 1); if (($mageProductId = trim($mageProductId)) !== "") { $product->setMageId($mageProductId); } if (trim($product->getId()) === '') { $product->setIsFromB2B($isFromB2B)->setShortDescription($shortDescr); if ($stockOnOrder !== null && is_numeric($stockOnOrder)) { $product->setStockOnOrder(intval($stockOnOrder)); } if ($stockOnHand !== null && is_numeric($stockOnHand)) { $product->setStockOnHand(intval($stockOnHand)); } if ($stockMinLevel !== null && is_numeric($stockMinLevel)) { $product->setStockMinLevel(intval($stockMinLevel)); } if ($stockReorderLevel !== null && is_numeric($stockReorderLevel)) { $product->setStockReorderLevel(intval($stockReorderLevel)); } if ($assetAccNo !== null && is_string($assetAccNo)) { $product->setAssetAccNo(trim($assetAccNo)); } if ($revenueAccNo !== null && is_string($revenueAccNo)) { $product->setRevenueAccNo(trim($revenueAccNo)); } if ($costAccNo !== null && is_string($costAccNo)) { $product->setCostAccNo(trim($costAccNo)); } if ((${$fullDescr} = trim($fullDescr)) !== '') { $asset = Asset::registerAsset('full_desc_' . $sku, $fullDescr, Asset::TYPE_PRODUCT_DEC); $product->setFullDescAssetId(trim($asset->getAssetId())); } if ($manufacturer instanceof Manufacturer) { $product->setManufacturer($manufacturer); } if ($weight !== null) { $product->setWeight($weight); } if ($attributesetId !== null && is_string($attributesetId)) { $product->setAttributeSet(ProductAttributeSet::get($attributesetId)); } } return $product->save(); }