Ich versuche, ein benutzerdefiniertes Attribut über ein Magento-Skript zu aktualisieren. Ich muss lediglich die Bezeichnung des Attributs ändern, das sich in der Kundentabelle befindet.Aktualisieren des Attributs im Magento-Installationsskript
Ich habe online gefunden, dass die wichtigsten Dinge zu gewährleisten, ist die Benennung der Upgrade-Skripte und die entsprechende Version in der Datei config.xml
zu.
Jedes Mal, wenn ich versuche, erhält die Core_Ressource ein Upgrade/Bump in Versionsnummer richtig, aber das Label ändert sich nicht. Ich nehme an, es ist etwas in meinem Upgrade-Skript. Was mache ich falsch? Muss ich das Attribut anders referenzieren?
In der DB core_resources
:
Equisolve_GenisysUserId_setup | 0.1.4 | 0.1.4
Die config.xml
Datei:
<?xml version="1.0"?>
<config>
<modules>
<Equisolve_GenisysUserId>
<version>0.1.4</version>
</Equisolve_GenisysUserId>
</modules>
<global>
<resources>
<Equisolve_GenisysUserId_setup>
<setup>
<module>Equisolve_GenisysUserId</module>
<class>Mage_Customer_Model_Entity_Setup</class>
</setup>
<connection>
<use>core_setup</use>
</connection>
</Equisolve_GenisysUserId_setup>
<Equisolve_GenisysUserId_write>
<connection>
<use>core_write</use>
</connection>
</Equisolve_GenisysUserId_write>
<Equisolve_GenisysUserId_read>
<connection>
<use>core_read</use>
</connection>
</Equisolve_GenisysUserId_read>
</resources>
</global>
</config>
Original-Datei installieren, bei install-0.1.0.php
:
<?php
$installer = $this;
$installer->startSetup();
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
$entityTypeId = $setup->getEntityTypeId('customer');
$attributeSetId = $setup->getDefaultAttributeSetId($entityTypeId);
$attributeGroupId = $setup->getDefaultAttributeGroupId($entityTypeId, $attributeSetId);
$installer->addAttribute("customer", "genisys_user_id", array(
"type" => "varchar",
"backend" => "",
"label" => "Genisys User ID",
"input" => "text",
"source" => "",
"visible" => true,
"required" => false,
"default" => "",
"frontend" => "",
"unique" => false,
"note" => "The Reference ID to the customer within Genisys/AlphaRENTAL to connect their user account with their existing information and orders."
)
);
$setup->addAttributeToGroup(
$entityTypeId,
$attributeSetId,
$attributeGroupId,
'genisys_user_id',
'999' //sort_order
);
$gUserAttribute = Mage::getSingleton("eav/config")->getAttribute("customer", "genisys_user_id");
$gUserAttribute->setData('used_in_forms', array('adminhtml_customer'));
$gUserAttribute->setData("is_used_for_customer_segment", true);
// Other options can be found in the customer_form_attribute database table; setting this data is required
$gUserAttribute->save();
$installer->endSetup();
?>
Upgrade-Skript auf upgrade-0.1.3-0.1.4.php
:
<?php
$installer = $this;
$installer->startSetup();
$installer->updateAttribute('customer','genisys_user_id','label', 'Genisys Customer Number');
$installer->endSetup();
?>
Ich weiß, dass es eine Lücke in Versionsnummern gibt; Da waren Dateien dazwischen. Die Aktualisierung auf 0.1.4 "lief", wie durch die core_resources
Version belegt ... aber das Etikett wurde nicht aktualisiert.
Danke für die Einsicht!
Haben Sie Fehler beim ersten Upgrade von 0.1.4 gemacht? Haben Sie zum Beispiel 0.1.4 erstellt und dann realisiert, dass Sie etwas vergessen haben; dann geändert und gespeichert, aber nicht auf eine neuere Version aktualisiert? Selbst wenn du einen Charakter änderst, solltest du am besten einen neuen erstellen (zum Beispiel 0.1.5). –