下面是如何在后台添加自定义模块的。
如果不注意大小写。在windows上显示正确,到了linux服务器会显示404
例如下面配置:

D:\www\lollicupStore2\app\etc\modules\Lollicupstore_ManagementStoreCredit.xml
<?xml version="1.0" encoding="UTF-8" ?>
<config>
<modules>
<Lollicupstore_Managementstorecredit>
<active>true</active>
<codePool>local</codePool>
</Lollicupstore_Managementstorecredit>
</modules>
</config>
Managementstorecredit 这个名称可以分为
Management ,storecredit 在写的时候是第一个单词大写,后面全部小写。
D:\www\lollicupStore2\app\code\local\Lollicupstore\Managementstorecredit\etc\config.xml
<?xml version="1.0"?>
<config>
<modules>
<Lollicupstore_Managementstorecredit>
<version>1.0</version>
</Lollicupstore_Managementstorecredit>
</modules>
<global>
<helpers>
<Lollicupstore_Managementstorecredit>
<class>Lollicupstore_Managementstorecredit_Helper</class>
</Lollicupstore_Managementstorecredit>
</helpers>
</global>
<admin>
<routers>
<adminhtml>
<args>
<modules>
<lollicupstore_managementstorecredit after="Mage_Adminhtml">Lollicupstore_Managementstorecredit_Adminhtml</lollicupstore_managementstorecredit>
</modules>
</args>
</adminhtml>
</routers>
</admin>
</config>
D:\www\lollicupStore2\app\code\local\Lollicupstore\Managementstorecredit\etc\adminhtml.xml
<?xml version="1.0" encoding="UTF-8" ?>
<config>
<!--menu Settings-->
<menu>
<lollicupstore module="Lollicupstore_Managementstorecredit">
<title>Management StoreCredit</title>
<sort_order>801</sort_order>
<children>
<items module="Lollicupstore_Managementstorecredit">
<title>Manage StoreCredit</title>
<sort_order>0</sort_order>
<action>adminhtml/storecredit/index</action>
</items>
</children>
</lollicupstore>
</menu>
<!--Access Control Settings-->
<acl>
<resources>
<all>
<title>Allow Everything</title>
</all>
<admin>
<children>
<lollicupstore translate="title" module="Lollicupstore_Managementstorecredit">
<title>Management StoreCredit</title>
<sort_order>1000</sort_order>
<children>
<items translate="title" module="Lollicupstore_Managementstorecredit">
<title>Manage StoreCredit</title>
<sort_order>10</sort_order>
</items>
</children>
</lollicupstore>
</children>
</admin>
</resources>
</acl>
</config>
D:\www\lollicupStore2\app\code\local\Lollicupstore\Managementstorecredit\Helper\Data.php
<?php
/**
* Created by PhpStorm.
* User: lollicup
* Date: 2019/6/11
* Time: 14:27
*/
class Lollicupstore_Managementstorecredit_Helper_Data extends Mage_Core_Helper_Abstract
{
}
D:\www\lollicupStore2\app\code\local\Lollicupstore\Managementstorecredit\controllers\Adminhtml\StorecreditController.php
<?php
/**
* Created by PhpStorm.
* User: lollicup
* Date: 2019/6/11
* Time: 14:35
*/
class Lollicupstore_Managementstorecredit_Adminhtml_StorecreditController extends Mage_Adminhtml_Controller_Action{
public function indexAction(){
set_time_limit(0);
echo "start time:".date('Y-m-d H:i:s') ."<br>";
$collection = Mage::getModel('amstcred/balance')
->getCollection();
//get count balance_id => customer_id
echo "balance_total:". count($collection->getData());
echo "<br>default: order by asc";
foreach ($collection as $k){
echo "<br>[balance_id:".$balanceId = $k->getBalanceId();
echo " customer_id:". $customerId = $k->getCustomerId();
$customerId = $k->getCustomerId();
$balanceHistory = Mage::getModel('amstcred/balanceHistory')
->getCollection()
->addFieldToFilter('customer_id', $customerId)
->getData();
echo " balance_count:". count($balanceHistory);
//action[2]: Refund of order
//action[3]: Balance update by admin
//action[1]: Payment for order 100008327
foreach ($balanceHistory as $i => $j){
if($j['action'] == 3 || $j['action'] == 1 ){
continue;
}
if($j['action'] == 2){
// find creditmemo
$data = unserialize($j['operation_data']);
$increment_id = $data[0];
$orderInfo = Mage::getModel('sales/order')->loadByIncrementId($increment_id)->getData();
$order_id = $orderInfo['entity_id'];
echo " sales_flat_order for entity_id:".$order_id;
$id = 0;
$model = Mage::getModel('sales/order_creditmemo')
->getCollection()
->addFieldToFilter('order_id',$order_id)
->getData();
if(empty($model)){
echo " sales_flat_creditmemo for total:".count($model) ."]<br>";
}else{
foreach ($model as $value=>$key){
$id = $key['entity_id'];
}
echo " sales_flat_creditmemo for entity_id:".$id;
//refund of order after now payment for order :1
if($balanceHistory[$i+1]['action'] == 1){
$operation_data = unserialize($balanceHistory[$i+1]['operation_data']);
$incrementId = $operation_data[0];
$store_credit_used = abs($balanceHistory[$i+1]['balance_delta']);
$model = Mage::getModel('sales/order_creditmemo')->load($id);
$model->setNewOrderId($incrementId);
$model->setStoreCreditUsed($store_credit_used);
$query = $model->save();
echo "object pro" .$query->toString() ."]";
}
}
}
}
}
echo "<br>end time:".date('Y-m-d H:i:s');
}
protected function _isAllowed()
{
return true;
}
}