cancel
Showing results for 
Search instead for 
Did you mean: 

Add product attribute that will auto_increment aftersave

   Did you know you can see the translated content as per your choice?

Translation is in progress. Please check again after few minutes.

Add product attribute that will auto_increment aftersave

Hello , i am trying to add an attribute like product_id for products that will have auto_increment.

 

What i did so far and is not working:

 

etc/config.xml

<?xml version="1.0"?>
<config>
  <modules>
    <Mymodule>
      <version>0.1.0</version>
    </Mymodule>
  </modules>
  <global>
    <helpers>
      <mymodule>
        <class>Mymodule_Helper</class>
      </mymodule>
    </helpers>
  <models>
                    <Mymodule>
                       <class>Mymodule_Model</class>
                    </Mymodule>
                </models>
	<resources>
	  <mymodule_setup>
		<setup>
		  <module>mymodule</module>
		</setup>
		<connection>
		  <use>core_setup</use>
		</connection>
	  </mymodule_setup>
	  <mymodule_write>
		<connection>
		  <use>core_write</use>
		</connection>
	  </mymodule_write>
	  <mymodule_read>
		<connection>
		  <use>core_read</use>
		</connection>
	  </mymodule_read>
	</resources>
  </global>
</config> 

The model:

<?php
class Mymodule_Model_Myitem extends Mage_Core_Model_Abstract {
 //this method simply adds one to the increment id an returns the new one
    public function getIncrementId(){
        return Mage::getSingleton('eav/config')
            ->getEntityType('myitem')
            ->fetchNewIncrementId();
    }

protected function _beforeSave()
{ 

    parent::_beforeSave();

    if (!$this->getIncrementId()) {
        $incrementId = Mage::getSingleton('eav/config')
            ->getEntityType('custom_sku2')
            ->fetchNewIncrementId($this->getStoreId());
        $this->setIncrementId($incrementId);
    }

}

}	 

and the installer script:

 

<?php
$install = $this;
$install->startSetup();

$install->addEntityType('mymodule', array(
    'entity_model'          => 'mymodule',
    'increment_model'       => 'eav/entity_increment_numeric',
    'increment_per_store'   => false,
));

$entityType = Mage::getModel('eav/entity_type')->loadByCode('custom_sku2');
$entityStoreConfig = Mage::getModel('eav/entity_store')->loadByEntityStore($entityType ->getId(), 12);
$entityStoreConfig->setEntityTypeId($entityType ->getId())
    ->setStoreId(0)
    ->setIncrementPrefix("MYPREFIX")
    ->setIncrementLastId(100)
    ->save();

$install->endSetup();

Then i create an attribute the normal way in Magento with the name "custom_sku2" and i add this attribute in products grid.
Even after save i cannot see this attribute auto increment, it is blank.