0

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.