本文整理汇总了PHP中Mage_Catalog_Model_Product::save方法的典型用法代码示例。如果您正苦于以下问题:PHP Mage_Catalog_Model_Product::save方法的具体用法?PHP Mage_Catalog_Model_Product::save怎么用?PHP Mage_Catalog_Model_Product::save使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mage_Catalog_Model_Product
的用法示例。
在下文中一共展示了Mage_Catalog_Model_Product::save方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: saveAction
public function saveAction()
{
if ($data = $this->getRequest()->getPost()) {
$adminuser = Mage::getSingleton('admin/session');
$adminuserid = $adminuser->getUser()->getUserId();
$data['user_id'] = $adminuserid;
$model = Mage::getModel('catalogmaster/catalogmaster');
$model->setData($data)->setId($this->getRequest()->getParam('id'));
$id = $this->getRequest()->getParam('id');
try {
if ($model->getCreatedTime == NULL || $model->getUpdateTime() == NULL) {
$model->setCreatedTime(now())->setUpdateTime(now());
} else {
$model->setUpdateTime(now());
}
//print_r($model);
$model->save();
$item_id = $model->getId();
$manu_id = $model->getManufacturer_id();
$product_type = $model->getProducts_type();
//exit;
/* Create products for the catalog */
if (!isset($id)) {
$no_of_products = $data['no_of_products'];
for ($i = 1; $i <= $no_of_products; $i++) {
$six_digit_random_number = mt_rand(100000, 999999);
try {
//create new product
$newProduct = new Mage_Catalog_Model_Product();
$newProduct->setAttributeSetId(4)->setTypeId('simple')->setVisibility(Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE)->setTaxClassId(0)->setCreatedAt(strtotime('now'))->setName('test')->setSku($manu_id . '-' . $item_id . $product_type . $six_digit_random_number)->setWeight(0)->setStatus(Mage_Catalog_Model_Product_Status::STATUS_ENABLED)->setPrice(0)->setCategoryIds(array(3))->setWebsiteIds(array(1))->setDescription('')->setShortDescription('')->setMetaTitle('')->setMetaKeyword('')->setMetaDescription('')->setCatalogmasterId($item_id)->setManufacturers_id($manu_id)->setStockData(array('is_in_stock' => 1, 'qty' => 0));
$newProduct->save();
} catch (Exception $e) {
$result['status'] = 3;
$result['message'] = 'There is an ERROR happened! NOT ALL products are created! Error:' . $e->getMessage();
echo json_encode($result);
return;
}
}
//end for
}
/* End Create products for the catalog */
Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('catalogmaster')->__('Item was successfully saved'));
Mage::getSingleton('adminhtml/session')->setFormData(false);
if ($this->getRequest()->getParam('back')) {
$this->_redirect('*/*/edit', array('id' => $model->getId()));
return;
}
$this->_redirect('*/*/');
return;
} catch (Exception $e) {
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
Mage::getSingleton('adminhtml/session')->setFormData($data);
$this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
return;
}
}
Mage::getSingleton('adminhtml/session')->addError(Mage::helper('catalogmaster')->__('Unable to find item to save'));
$this->_redirect('*/*/');
}
示例2: productMediaFixture
public static function productMediaFixture()
{
$product = new Mage_Catalog_Model_Product();
$product->load(1);
$product->setTierPrice(array());
$product->setData('media_gallery', array('images' => array(array('file' => '/m/a/magento_image.jpg'))));
$product->save();
}
示例3: modifyProduct
protected function modifyProduct(\Mage_Catalog_Model_Product $product, \Zend_Config $settings)
{
foreach ($settings as $attribute => $value) {
$product->setData($attribute, $value);
Logger::log('* change attribute <comment>%s</comment> of product #%d: "%s"', array($attribute, $product->getId(), $value));
}
$product->save();
}
示例4: _relateProducts
private function _relateProducts(Mage_Catalog_Model_Product $_product, $data)
{
$this->log($this->__('Relating products for %s', $_product->getSku()));
$relatableData = array();
foreach ($data as $i => $relatedSku) {
$relatedProductId = Mage::getModel('catalog/product')->getIdBySku($relatedSku);
if (!$relatedProductId) {
throw new Exception($this->__('No product with sku: %s' . $relatedSku));
}
$relatableData[$relatedProductId] = array('position' => $i);
$this->log($this->__('Related %s', $relatedSku), 1);
}
$_product->setRelatedLinkData($relatableData);
$_product->save();
$this->log($this->__('Finished relating products for %s', $_product->getSku()));
}
示例5: addCustomer
public function addCustomer($data)
{
$connection = Mage::getModel('core/resource')->getConnection('core_read');
$product = new Mage_Catalog_Model_Product();
$product->setAttributeSetId(Mage::getModel('eav/entity_attribute_set')->getCollection()->setEntityTypeFilter($this->typeId)->addFieldToFilter('attribute_set_name', $data['attribute_set_id'])->getFirstItem()->getAttributeSetId());
unset($data['attribute_set_id']);
$product->setWebsiteIDs(array(1));
//// assign product to the default website $product->setWebsiteIds(array(Mage::app()->getStore(true)->getWebsite()->getId()));
$product->setStoreIDs(array(1));
foreach ($data as $key => $value) {
switch ($key) {
case 'store_id':
case 'website_id':
break;
case 'status':
switch ($value) {
case 'Enabled':
$val = 1;
break;
case 'Disabled':
$val = 2;
break;
default:
$val = '';
}
$product->setData($key, $val);
break;
default:
in_array($key, $this->attrsWithOpts) ? $product->setData($key, $this->optByCode($key, $value)) : $product->setData($key, $value);
}
}
//unset($value);
$product->setIsMassupdate(false);
$product->setExcludeUrlRewrite(true);
try {
$product->save();
//Mage::getResourceSingleton('catalog/product_indexer_price')->reindexProductIds(array($productId));
} catch (Exception $ex) {
mage::D($ex);
#mage::log($ex->getMessage(), null, 'prodsimp.log');
}
}
示例6: saveAnimalAction
public function saveAnimalAction()
{
$request = $this->getRequest()->getPost();
$leiloeiro = Mage::getModel('leilao/leiloeiro')->getCurrentLeiloeiroSession();
$leiloeiro_product = Mage::getModel('leilao/product');
$product = new Mage_Catalog_Model_Product();
$product->setAttributeSetId(4);
// #4 is for default
$product->setTypeId('simple');
$product->setName($request['name']);
$product->setDescription($request['description']);
$product->setShortDescription('Short description here');
$product->setSku(time());
$product->setWeight(1.0);
$product->setStatus(1);
$product->setVisibility(Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH);
//4
$product->setPrice($request['price']);
// # Set some price
$product->setTaxClassId(0);
// # default tax class
$product->setStockData(array('is_in_stock' => 1, 'qty' => 1));
//$product->setCategoryIds(array(27)); // # some cat id's,
$product->setWebsiteIDs(array(1));
// # Website id, 1 is default
//Default Magento attribute
$product->setCreatedAt(strtotime('now'));
//print_r($product);
try {
$product->save();
$leiloeiro_product->setData('id_leiloeiro', $leiloeiro->getData('entity_id'));
$leiloeiro_product->setData('id_product', $product->getId());
$leiloeiro_product->save();
echo "Product Created";
} catch (Exception $ex) {
//Handle the error
echo "Product Creation Failed";
}
}
示例7: date
// Build the product
$product->setSku($sku);
$product->setAttributeSetId($setId);
# 9 is for default
$product->setTypeId('simple');
$product->setName('Lens 1');
$product->setCategoryIds(array(3));
# some cat id's,
$product->setWebsiteIDs(array(0, 1));
//only array!!!!! # Website id, 1 is default
$product->setStoreIDs(array(0, 1));
$product->setDescription('Full description here');
$product->setShortDescription('Short description here');
$product->setPrice(39.99);
# Set some price
$product->setWeight(4.0);
$product->setVisibility(Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH);
$product->setStatus(Mage_Catalog_Model_Product_Status::STATUS_ENABLED);
$product->setTaxClassId(0);
# default tax class
$product->setStockData(array('is_in_stock' => 1, 'qty' => 99999));
$product->setCreatedAt(strtotime('now'));
try {
$product->save();
echo "product created";
} catch (Exception $ex) {
zend_debug::dump($ex->getMessage());
}
echo date("\nY-d-m H:i:s\n");
?>
示例8: CreateGeneralProducts
public function CreateGeneralProducts()
{
try {
$parent_category = Mage::getStoreConfig('oscommerceimportconf/mageconfiguration/conf_category', Mage::app()->getStore());
$storeId = Mage::getStoreConfig('oscommerceimportconf/mageconfiguration/conf_website', Mage::app()->getStore());
$AttributeSetId = Mage::getStoreConfig('oscommerceimportconf/mageconfiguration/conf_attribute', Mage::app()->getStore());
/////////////////////////////////////////////////////////////////////////////////////
// Create Custom Product for Import Shipping
/////////////////////////////////////////////////////////////////////////////////////
$pro_Model = 'osc-shipping';
$pro_Name = 'Shipping';
$oProduct = Mage::getModel("catalog/product")->getCollection()->setStoreId($storeId)->addAttributeToSelect("sku")->addFieldToFilter("sku", array('eq' => $pro_Model))->getFirstItem();
if (sizeof($oProduct->getData()) == 0) {
$product = new Mage_Catalog_Model_Product();
// Build the product
$product->setSku($pro_Model);
$product->setAttributeSetId($AttributeSetId);
$product->setTypeId('simple');
$product->setName($pro_Name);
$product->setCategoryIds($parent_category);
$product->setWebsiteIDs(array($storeId));
$product->setDescription('-');
$product->setShortDescription('-');
$product->setPrice(0);
$product->setWeight(0);
$product->setVisibility(Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE);
$product->setStatus(1);
$product->setTaxClassId(0);
# My default tax class
$product->setStockData(array('is_in_stock' => 1, 'qty' => 10000));
$product->setCreatedAt(strtotime('now'));
$product->save();
}
/////////////////////////////////////////////////////////////////////////////////////
// Create Custom Product for Import Discount
/////////////////////////////////////////////////////////////////////////////////////
$pro_Model = 'osc-discount';
$pro_Name = 'Discount';
$oProduct = Mage::getModel("catalog/product")->getCollection()->setStoreId($storeId)->addAttributeToSelect("sku")->addFieldToFilter("sku", array('eq' => $pro_Model))->getFirstItem();
if (sizeof($oProduct->getData()) == 0) {
$product = new Mage_Catalog_Model_Product();
// Build the product
$product->setSku($pro_Model);
$product->setAttributeSetId($AttributeSetId);
$product->setTypeId('simple');
$product->setName($pro_Name);
$product->setCategoryIds($parent_category);
$product->setWebsiteIDs(array($storeId));
$product->setDescription('-');
$product->setShortDescription('-');
$product->setPrice(0);
$product->setWeight(0);
$product->setVisibility(Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE);
$product->setStatus(1);
$product->setTaxClassId(0);
# My default tax class
$product->setStockData(array('is_in_stock' => 1, 'qty' => 10000));
$product->setCreatedAt(strtotime('now'));
$product->save();
}
/////////////////////////////////////////////////////////////////////////////////////
// Create Custom Product for Import Taxes
/////////////////////////////////////////////////////////////////////////////////////
$pro_Model = 'osc-tax';
$pro_Name = 'Tax';
$oProduct = Mage::getModel("catalog/product")->getCollection()->setStoreId($storeId)->addAttributeToSelect("sku")->addFieldToFilter("sku", array('eq' => $pro_Model))->getFirstItem();
if (sizeof($oProduct->getData()) == 0) {
$product = new Mage_Catalog_Model_Product();
// Build the product
$product->setSku($pro_Model);
$product->setAttributeSetId($AttributeSetId);
$product->setTypeId('simple');
$product->setName($pro_Name);
$product->setCategoryIds($parent_category);
$product->setWebsiteIDs(array($storeId));
$product->setDescription('-');
$product->setShortDescription('-');
$product->setPrice(0);
$product->setWeight(0);
$product->setVisibility(Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE);
$product->setStatus(1);
$product->setTaxClassId(0);
# My default tax class
$product->setStockData(array('is_in_stock' => 1, 'qty' => 10000));
$product->setCreatedAt(strtotime('now'));
$product->save();
}
/////////////////////////////////////////////////////////////////////////////////////
// Create Custom Product for Import Other
/////////////////////////////////////////////////////////////////////////////////////
$pro_Model = 'osc-other';
$pro_Name = 'Other Charges';
$oProduct = Mage::getModel("catalog/product")->getCollection()->setStoreId($storeId)->addAttributeToSelect("sku")->addFieldToFilter("sku", array('eq' => $pro_Model))->getFirstItem();
if (sizeof($oProduct->getData()) == 0) {
$product = new Mage_Catalog_Model_Product();
// Build the product
$product->setSku($pro_Model);
$product->setAttributeSetId($AttributeSetId);
$product->setTypeId('simple');
$product->setName($pro_Name);
//.........这里部分代码省略.........
示例9: createBundleProduct
public function createBundleProduct(&$item, $asid)
{
$attributeSetModel = Mage::getModel('eav/entity_attribute_set');
$attributeSetModel->load($asid);
if (count($attributeSetModel) > 0) {
$p_status = (string) $item->isActive == 'Y' ? 1 : 2;
$p_taxclass = (string) $item->isTaxable == 'Y' ? 2 : 0;
$product = new Mage_Catalog_Model_Product();
$product->setTypeId('bundle');
$product->setVisibility(Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH);
//New and created data code start
$format = 'Y-m-d H:i:s';
$catalogNewproductDays = Mage::getStoreConfig('catalog/newproduct/days', Mage::app()->getStore());
if (!empty($catalogNewproductDays) && $catalogNewproductDays >= 0) {
$currenDateTime = date("Y-m-d H:i:s", Mage::getModel('core/date')->timestamp(time()));
$new_from_date = date($format, strtotime('1 days' . $currenDateTime));
$new_to_date = date($format, strtotime($catalogNewproductDays . ' days' . $new_from_date));
$product->setNewsFromDate($new_from_date);
$product->setNewsToDate($new_to_date);
}
if ($product->getCreatedTime == NULL || $product->getUpdateTime() == NULL) {
$product->setCreatedTime($currenDateTime)->setUpdateTime($currenDateTime);
}
//New and created data code end
$product->setSku((string) $item->id);
//Product custom id
$product->setWebsiteIds(array(Mage::app()->getStore(true)->getWebsite()->getId()));
$product->setStoreIDs(array($this->_store_id));
// Default store id .
$product->setAttributeSetId($asid);
$product->setData('name', (string) $item->name);
$product->setPrice((double) $item->price);
$splAmt = (array) $item->specialPrice->amount;
if (isset($item->specialPrice->amount) && $item->specialPrice->amount != NULL) {
if (!empty($splAmt)) {
$product->setSpecialPrice((double) $item->specialPrice->amount);
}
//special price in form 11.22
}
$fromDate = (array) $item->specialPrice->fromDateTime;
if (isset($item->specialPrice->fromDateTime) && $item->specialPrice->fromDateTime != NULL) {
if (!empty($fromDate)) {
$product->setSpecialFromDate(Mage::helper('customimport')->getCurrentLocaleDateTime($item->specialPrice->fromDateTime));
}
//special price from (MM-DD-YYYY)
}
$toDate = (array) $item->specialPrice->toDateTime;
if (isset($item->specialPrice->toDateTime) && $item->specialPrice->toDateTime != NULL) {
if (!empty($toDate)) {
$product->setSpecialToDate(Mage::helper('customimport')->getCurrentLocaleDateTime($item->specialPrice->toDateTime));
}
//special price to (MM-DD-YYYY)
}
$product->setWeight((double) $item->weight);
$product->setStatus($p_status);
$product->setTaxClassId($p_taxclass);
$product->setDescription((string) $item->longDescription);
$product->setShortDescription((string) $item->shortDescription);
$product->setMetaTitle((string) $item->pageTitle);
$product->setMetaKeyword((string) $item->metaKeywords);
$product->setMetaDescription((string) $item->metaDescription);
$product->setExternalImage((string) $item->originalImageUrl);
$product->setExternalSmallImage((string) $item->largeImageUrl);
$product->setExternalThumbnail((string) $item->smallImageUrl);
$product->setShipmentType(0);
//shipment type (0 - together, 1 - separately
try {
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
$product->save();
$stockItem = Mage::getModel('cataloginventory/stock_item');
$stockItem->assignProduct($product);
$stockItem->setData('stock_id', (int) 1);
$stockItem->setData('use_config_manage_stock', (int) 1);
$stockItem->setData('min_qty', (int) 0);
$stockItem->setData('is_decimal_divided', (int) 0);
$stockItem->setData('qty', (int) 0);
$stockItem->setData('use_config_min_qty', 1);
$stockItem->setData('use_config_backorders', 1);
$stockItem->setData('min_sale_qty', 1);
$stockItem->setData('use_config_min_sale_qty', 1);
$stockItem->setData('use_config_max_sale_qty', 1);
$stockItem->setData('is_in_stock', 1);
$stockItem->setData('use_config_notify_stock_qty', 1);
// Added Manage Stock Functionality
// Manage Stock
$inventory = $item->inventory;
$manageItem = (string) strtoupper($inventory->manageStock);
if ($manageItem == 'N') {
$stockItem->setData('use_config_manage_stock', 0);
$stockItem->setData('manage_stock', 0);
}
$stockItem->save();
$stockStatus = Mage::getModel('cataloginventory/stock_status');
$stockStatus->assignProduct($product);
$stockStatus->saveProductStatus($product->getId(), 1);
} catch (Exception $e) {
$this->customHelper->reportError($e->getMessage());
$this->customHelper->sendLogEmail($this->logPath);
}
} else {
//.........这里部分代码省略.........
示例10: _saveProductCustomOption
/**
* Save product custom option data. Used for custom option add and update.
*
* @param Mage_Catalog_Model_Product $product
* @param array $data
* @return void
*/
protected function _saveProductCustomOption($product, $data)
{
foreach ($data as $key => $value) {
if (is_string($value)) {
$data[$key] = Mage::helper('catalog')->stripTags($value);
}
}
try {
if (!$product->getOptionsReadonly()) {
$product->getOptionInstance()->setOptions(array($data));
$product->setHasOptions(true);
// an empty request can be set as event parameter
// because it is not used for options changing in observers
Mage::dispatchEvent('catalog_product_prepare_save', array('product' => $product, 'request' => new Mage_Core_Controller_Request_Http()));
$product->save();
}
} catch (Exception $e) {
$this->_fault('save_option_error', $e->getMessage());
}
}
示例11: importProducts
//.........这里部分代码省略.........
$sku = $_product["code"];
} elseif ($_product["code2"]) {
$sku = $_product["code2"];
} else {
$sku = $_product["code3"];
}
$product = Mage::getModel('catalog/product')->loadByAttribute('sku', $sku);
if (!$product) {
$product = Mage::getModel('catalog/product')->load($_product["productID"]);
if (!$product->getName()) {
$product = new Mage_Catalog_Model_Product();
$product->setId($_product["productID"]);
Mage::helper('Erply')->log("Creating new product: " . $_product["productID"]);
} else {
Mage::helper('Erply')->log("Editing old product: " . $_product["productID"]);
$update = true;
}
} else {
$update = true;
}
if ($_product["displayedInWebshop"] == 0) {
if ($update) {
try {
$product->delete();
Mage::helper('Erply')->log("Delete existing product which should be in webshop id: " . $_product["productID"] . " - sku: " . $sku);
} catch (Exception $e) {
Mage::helper('Erply')->log("Failed to delete product with message: " . $e->getMessage());
}
}
continue;
}
$product->setStoreId($storeId);
// product does not exist so we will be creating a new one.
$product->setIsMassupdate(true);
$product->setExcludeUrlRewrite(true);
$product->setTypeId('simple');
$product->setWeight(1.0);
$product->setVisibility(Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH);
$product->setStatus(1);
$product->setSku($sku);
$product->setTaxClassId(0);
// set the rest of the product information here that can be set on either new/update
if (!$update) {
$product->setAttributeSetId((int) Mage::getStoreConfig('eepohs_erply/product/attribute_set', $storeId));
// the product attribute set to use
}
$product->setName($_product["name"]);
$category = Mage::getModel('catalog/category')->load($_product["groupID"]);
if ($category->getName()) {
$product->setCategoryIds(array($_product["groupID"]));
// array of categories it will relate to
}
if (Mage::app()->isSingleStoreMode()) {
$product->setWebsiteIds(array(Mage::app()->getStore(true)->getWebsiteId()));
} else {
$product->setWebsiteIds(array($store->getWebsiteId()));
}
$product->setBatchPrices(array());
$product->setStockPriorities(array());
//$product->setPrice($_product["price"]);
// set the product images as such
// $image is a full path to the image. I found it to only work when I put all the images I wanted to import into the {magento_path}/media/catalog/products - I just created my own folder called import and it read from those images on import.
// $image = '/path/to/magento/media/catalog/products/import/image.jpg';
//
// $product->setMediaGallery (array('images'=>array (), 'values'=>array ()));
// $product->addImageToMediaGallery ($image, array ('image'), false, false);
// $product->addImageToMediaGallery ($image, array ('small_image'), false, false);
// $product->addImageToMediaGallery ($image, array ('thumbnail'), false, false);
// setting custom attributes. for example for a custom attribute called special_attribute
// special_attribute will be used on all examples below for the various attribute types
//$product->setSpecialAttribute('value here');
// setting a Yes/No Attribute
// $product->setSpecialField(1);
// setting a Selection Attribute
//$product->setSpecialAttribute($idOfAttributeOption); //specify the ID of the attribute option, eg you creteated an option called Blue in special_attribute it was assigned an ID of some number. Use that number.
// setting a Mutli-Selection Attribute
//$data['special_attribute'] = '101 , 102 , 103'; // coma separated string of option IDs. As ID , ID (mind the spaces before and after coma, it worked for me like that)
// $product->setData($data);
if (isset($_product["attributes"])) {
$erplyAttributes = $_product["attributes"];
$mapping = unserialize(Mage::getStoreConfig('eepohs_erply/product/attributes', $storeId));
if (!empty($erplyAttributes) && !empty($mapping)) {
$mappings = array();
foreach ($mapping as $map) {
$mappings[$map["erply_attribute"]] = $map["magento_attribute"];
}
foreach ($erplyAttributes as $attribute) {
if (in_array($attribute["attributeName"], array_keys($mappings))) {
if ($attribute["attributeValue"]) {
$product->setData($mappings[$attribute["attributeName"]], $attribute["attributeValue"]);
}
}
}
}
}
$product->save();
Mage::helper('Erply')->log("Added: " . $product->getSku());
}
}
}
示例12: addProduct
public function addProduct($data)
{
$connection = Mage::getModel('core/resource')->getConnection('core_read');
$product = new Mage_Catalog_Model_Product();
$product->setAttributeSetId(Mage::getModel('eav/entity_attribute_set')->getCollection()->setEntityTypeFilter($this->typeId)->addFieldToFilter('attribute_set_name', $data['attribute_set_id'])->getFirstItem()->getAttributeSetId());
unset($data['attribute_set_id']);
$product->setWebsiteIDs(array(1));
//// assign product to the default website $product->setWebsiteIds(array(Mage::app()->getStore(true)->getWebsite()->getId()));
foreach ($data as $key => $value) {
switch ($key) {
case 'is_in_stock':
case 'qty':
case 'media_gallery':
case 'related':
case 'upsell':
case 'crosssell':
case 'options':
break;
case 'visibility':
switch ($value) {
case 'Not Visible Individually':
$val = 1;
break;
case 'Catalog':
$val = 2;
break;
case 'Search':
$val = 3;
break;
case 'Catalog, Search':
$val = 4;
break;
default:
$val = '';
}
$product->setData($key, $val);
break;
case 'status':
switch ($value) {
case 'Enabled':
$val = 1;
break;
case 'Disabled':
$val = 2;
break;
default:
$val = '';
}
$product->setData($key, $val);
break;
default:
in_array($key, $this->attrsWithOpts) ? $product->setData($key, $this->optByCode($key, $value)) : $product->setData($key, $value);
}
}
//unset($value);
$product->setStockData(array('is_in_stock' => $data['is_in_stock'], 'qty' => $data['qty']));
$product->setIsMassupdate(false);
$product->setExcludeUrlRewrite(true);
try {
$product->save();
//Mage::getResourceSingleton('catalog/product_indexer_price')->reindexProductIds(array($productId));
# ----------- set media gallery ---------------- #
// TODO: move folder Media need fix.
$product = Mage::getModel('catalog/product')->load($product->getId());
$product->setMediaGallery(array('images' => array(), 'values' => array()));
foreach ($data['media_gallery']['images'] as $img) {
$mediaGalleryData['images'][] = array('file' => $img['file'], 'position' => $img['position'], 'label' => $img['label'], 'disabled' => $img['disabled']);
$product->setData('media_gallery', $mediaGalleryData);
/*if (!is_null($mediaAttribute)) {
Mage::('catalog/product_attribute_backend_media')->setMediaAttribute($product, $mediaAttribute, $fileName);
}*/
}
$product->save();
# ----------- set custom options ---------------- #
$options = array();
$sku = $data['sku'];
$i = 0;
foreach ($data['options'] as $opt) {
$options[$i][$sku] = array('title' => $opt['describe']['title'], 'type' => $opt['describe']['type'], 'is_require' => $opt['describe']['is_require'], 'sort_order' => $opt['describe']['sort_order'], 'values' => array());
if (!empty($opt['values'])) {
foreach ($opt['values'] as $val) {
$options[$i][$sku]['values'][] = array('title' => $val['title'], 'price' => $val['price'], 'price_type' => empty($val['price_type']) ? 'fixed' : $val['price_type'], 'sku' => $val['sku'], 'sort_order' => $val['sort_order']);
}
}
++$i;
}
foreach ($options as $option) {
foreach ($option as $sku => $opt1) {
$product = Mage::getModel('catalog/product')->load($product->getId());
if (!$product->getOptionsReadonly()) {
$product->setProductOptions(array($opt1));
$product->setCanSaveCustomOptions(true);
try {
$product->save();
} catch (Exception $e) {
echo $e->getMessage();
}
}
Mage::getSingleton('catalog/product_option')->unsetOptions();
}
//.........这里部分代码省略.........
示例13: addProduct
public function addProduct($data)
{
$product = new Mage_Catalog_Model_Product();
// Build the product
$setId = Mage::getResourceModel('eav/entity_attribute_set_collection')->setEntityTypeFilter($this->typeId)->addFilter('attribute_set_name', $this->attributeSet['name'])->getFirstItem()->getId();
// firstItem becouse of filter ($this->typeId) and filter ('attribute_set_name') design single attribute set.
$product->setSku($data['sku']);
$product->setAttributeSetId($setId);
# 9 is for default
$product->setTypeId('simple');
$product->setName($data['name']);
$product->setWebsiteIDs(array(1));
//only array!!!!! # Website id, 1 is default
$product->setStoreIDs(array(0, 1));
$product->setDescription($data['description']);
$product->setShortDescription($data['short_description']);
$product->setPrice($data['price']);
# Set some price
$product->setWeight($data['weight']);
$product->setStatus(Mage_Catalog_Model_Product_Status::STATUS_ENABLED);
$product->setVisibility(Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH);
$product->setTaxClassId(0);
# default tax class
if ($catId = $this->getCategoryIdByName($this->categoryName)) {
$product->setCategoryIds(array($catId));
# some cat id's,
}
$product->setStockData(array('is_in_stock' => 1, 'qty' => $data['qty']));
$product->setCreatedAt(strtotime('now'));
try {
$product->save();
echo "product created. ID: {$product->getId()} \n";
} catch (Exception $ex) {
zend_debug::dump($ex->getMessage());
}
}
示例14: _createProducts
protected function _createProducts($productsToCreateCount)
{
$skus = array();
$initialProductCount = $this->_getProductCount();
$randValues = array('general_name' => 'crife_Simple Product Required', 'general_sku' => 'wkdov_simple_sku_req_zuknf');
// Set an Admin Session
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
Mage::getSingleton('core/session', array('name' => 'adminhtml'));
$userModel = Mage::getModel('admin/user');
$userModel->setUserId(1);
$session = Mage::getSingleton('admin/session');
$session->setUser($userModel);
$session->setAcl(Mage::getResourceModel('admin/acl')->loadAcl());
for ($c = 0; $c < $productsToCreateCount; $c++) {
array_walk_recursive($randValues, array($this, 'randomizeData'), array('general_name', 'general_sku'));
$newProduct = new Mage_Catalog_Model_Product();
$newProduct->setTypeId('simple');
$newProduct->setCategoryIds(array(42));
$newProduct->setWebsiteIDs(array(1));
$newProduct->setWeight('1.000');
$newProduct->setVisibility(Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH);
$newProduct->setStatus(1);
$newProduct->setSku($randValues['general_sku']);
$newProduct->setTaxClassId(0);
$newProduct->setStoreId(Mage::app()->getStore()->getId());
$newProduct->setAttributeSetId(9);
$newProduct->setName($randValues['general_name']);
$newProduct->setDescription('Description');
$newProduct->setShortDescription('Short Description');
$newProduct->setPrice(9.99);
$newProduct->setStockData(array('is_in_stock' => 1, 'qty' => 99999));
$newProduct->setCreatedAt(strtotime('now'));
$newProduct->save();
$skus[] = $randValues['general_sku'];
}
$finalProductCount = $this->_getProductCount();
$this->assertEquals($productsToCreateCount, $finalProductCount - $initialProductCount);
return $skus;
}
示例15: addProduct
public function addProduct()
{
echo date("\nY-d-m H:i:s\n");
//$this->query("TRUNCATE TABLE `cataloginventory_stock_status_idx`");
$processes = Mage::getSingleton('index/indexer')->getProcessesCollection();
$processes->walk('setMode', array(Mage_Index_Model_Process::MODE_MANUAL));
$processes->walk('save');
$connection = Mage::getModel('core/resource')->getConnection('core_read');
//$product = Mage::getModel('catalog/product');
$product = new Mage_Catalog_Model_Product();
// get data array
$select = $connection->select()->from('oberig_products');
$result = $connection->query($select)->fetchAll();
//(PDO::FETCH_ASSOC); //mage::d($row); //echo $select->__toString();//die;//mage::D($result);
//category mapping
$result2 = array();
foreach ($result as &$row) {
if (empty($row['category_ids'])) {
$row['category_ids'] = array();
$result2[] = $row;
continue;
}
$cats = explode(',', $row['category_ids']);
foreach ($cats as &$cat) {
$select = $connection->select()->from('oberig_category_mapping', 'new_cat_id')->where('old_cat_id=?', $cat);
$res = $connection->query($select)->fetch();
$cat = $res['new_cat_id'];
}
$row['category_ids'] = $cats;
$result2[] = $row;
}
$result = $result2;
foreach ($result as $row) {
//mage::d($row['category_ids']);
$product = new Mage_Catalog_Model_Product();
// Build the product
$product->setSku($row['sku']);
$product->setAttributeSetId('4');
# 9 is for default
$product->setTypeId('simple');
$product->setStatus(1);
$product->setWebsiteIDs(array(1));
$product->setCategoryIds($row['category_ids']);
$product->setVisibility(Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH);
$product->setPrice($row['price']);
$product->setData('store', $row['store']);
//$product->setData('websites', $row['websites']);
$product->setData('attribute_set', $row['attribute_set']);
$product->setData('type', $row['type']);
$product->setData('sku', $row['sku']);
$product->setData('has_options', $row['has_options']);
$product->setData('name', $row['name']);
$product->setData('meta_title', $row['meta_title']);
$product->setData('meta_description', $row['meta_description']);
$product->setData('url_key', $row['url_key']);
$product->setData('url_path', $row['url_path']);
$product->setData('options_container', $row['options_container']);
$product->setData('extra_title', $row['extra_title']);
$product->setData('frame_gender', $row['frame_gender']);
$product->setData('frame_shape', $row['frame_shape']);
$product->setData('cost', $row['cost']);
$product->setData('weight', $row['weight']);
$product->setData('manufacturer', $row['manufacturer']);
//$product->setData('status', $row['status']);
$product->setData('tax_class_id', $row['tax_class_id']);
//$product->setData('visibility', $row['visibility']);
$product->setData('enable_googlecheckout', $row['enable_googlecheckout']);
$product->setData('is_imported', $row['is_imported']);
$product->setData('frame_type', $row['frame_type']);
//$product->setData('sell_by_phone_only', $row['sell_by_phone_only']);
$product->setData('description', $row['description']);
$product->setData('short_description', $row['short_description']);
$product->setData('meta_keyword', $row['meta_keyword']);
$product->setData('special_from_date', $row['special_from_date']);
$product->setData('min_qty', $row['min_qty']);
$product->setData('use_config_min_qty', $row['use_config_min_qty']);
$product->setData('is_qty_decimal', $row['is_qty_decimal']);
$product->setData('backorders', $row['backorders']);
$product->setData('use_config_backorders', $row['use_config_backorders']);
$product->setData('min_sale_qty', $row['min_sale_qty']);
$product->setData('use_config_min_sale_qty', $row['use_config_min_sale_qty']);
$product->setData('max_sale_qty', $row['max_sale_qty']);
$product->setData('use_config_max_sale_qty', $row['use_config_max_sale_qty']);
$product->setData('low_stock_date', $row['low_stock_date']);
$product->setData('notify_stock_qty', $row['notify_stock_qty']);
$product->setData('use_config_notify_stock_qty', $row['use_config_notify_stock_qty']);
$product->setData('manage_stock', $row['manage_stock']);
$product->setData('use_config_manage_stock', $row['use_config_manage_stock']);
$product->setData('stock_status_changed_automatically', $row['stock_status_changed_automatically']);
$product->setData('use_config_qty_increments', $row['use_config_qty_increments']);
$product->setData('qty_increments', $row['qty_increments']);
$product->setData('use_config_enable_qty_increments', $row['use_config_enable_qty_increments']);
$product->setData('enable_qty_increments', $row['enable_qty_increments']);
$product->setData('product_name', $row['product_name']);
$product->setData('store_id', $row['store_id']);
$product->setData('product_type_id', $row['product_type_id']);
$product->setData('product_status_changed', $row['product_status_changed']);
$product->setData('product_changed_websites', $row['product_changed_websites']);
$product->setData('custom_design', $row['custom_design']);
$product->setData('page_layout', $row['page_layout']);
//.........这里部分代码省略.........