如何为Magento安装主题?
Magento开发调试相关
如何删除缓存
如何修改默认登录路径名admin
如何为Magento设置PayPal收款账户?
Magento如何批量上传产品?
Error 503:Service Unavailable处理方法
如何使用Magento Connect?
Magento左侧导航和Shop By显示
如何修改订单号前缀及长度?
Google Checkout相关报错
Magento 实战使用的查询语句
Magento Maximum execution time of ** seconds exceeded
Magento如何在大类中自动包含子类产品?
如何显示/隐藏OOS(Out of Stock)产品?
SOAP API连接错误
Magento无上传图片/文件按钮
Magento如何启用MemCached
Magento修改产品页默认显示数量为1
Your search returns no results
Magento在Shipping页面点击Continue无法进入付款页
如何去除产品链接前面的类别名?
如何修改Magento搜索框中的默认文本?
Magento去除多店铺URL地址中的“___from_store=”
如何为Magento产品描述添加图片?
Magento中session_start()权限报错
Magento中如何上传多图
在PHTML中获取对应url
Magento结账One Page登录时跳转到login页面
The requested URL ** was not found on this server
Magento数据库修改订单状态
Please enter a valid URL
Magento后台Sales>Order内容显示为空
https页面不显示图片等问题
Unknown cipher in list: TLSv1报错
如何为Magento安装主题?
作为一个知名的网店系统,自然有很多开发者会开发相应的主题和插件来让广大不懂编程的使用者也可以享用酷酷的界面以及各种特效和功能。通常安装完Magento后(参见使用xampp在本地安装Magento部分)第一件要做的事就是在网上寻找自己喜欢主题或模板,网上不乏好的免费资源。但下载后如何安装呢?其实步骤也很简单,首先需要将要应文件拷贝网站的根目录下(本地通常为htdocs,www等)的相应位置就可以了:主要的有两个主题文件夹,分别需要拷贝到..\magento\app\design\frontend\default文件夹下和..\magento\skin\frontend\default,有时您还需要将一些多媒体文件拷贝到..\magento\media文件夹下,完成这些文件的复制基本上就大功告成了(您所下载的主题文件中的文件夹结构通常与上述的是相对应的,还有可能会有一些代码如xml文件,也是一一对应拷贝即可)。
下一步就是在后台进行设置了,需打开System>Configuration>General>Design,然后在Themes下的Templates,Skin(images/CSS)以及Layout三个地方填入你所下载的主题名也就是前面拷入default下文件夹名,点击Save Config就完成了主题的安装(如您下载的主题文件夹与default平级,则需要同时修改Package下的Current Package Name)。
如何删除缓存
在对Magento进行设置的时候经常发现没有生效,这可能是由于缓存没有删除的原因。要清除缓存,方法很简单,访问..\magento\var\cache,将cache文件夹中所有的内容(子文件夹名类似mage–1)都进行删除就可以了。
以上一般是在代码层修改时进行的操作,而如果在Magento后台对产品、页面等进行的更改通常只需要在后台中重新缓存和重新索引即可。方法分别是在后台中点击System>Cache Management然后点击Selet All选中所有内容,再点击Submit提交,重新索引则是点击System>Index Management然后点击Selet All选中所有内容,再点击Submit提交。
如何修改默认登录路径名admin
如果在安装时使用了默认的设置,登录路径名称就是admin,出于安全考虑,后期您可能需要修改路径名称。操作方法如下:访问..\magento\app\etc文件夹找到名你为local.xml的文件,使用记事本打开,找到如下代码
如何为Magento设置PayPal收款账户?
2011年6月起Ebay对Magento完全控股,所以在Magento中集成同一公司的PayPal收款自然不会太难。首先进入后台,System>Configuration>Sales>Payment Methods,在右边窗口中可以看到有多个PayPal产品供选择,通常最为常用的是PayPal Payments Standard和PayPal Express Checkout,您也可以选择集成信用卡付款和PayPal Express的PayPal Payments Pro, PayPal Payments Advanced等,当然这样会要求您支付一个月费。
使用PayPal最好先进入其网站申请一个账号,对于PayPal Payments Standard,您只需进行相关配置即可,如在Email Associated with PayPal Merchant Account后面输入邮箱,然后将Enable this solution后改为Yes,然后点击右上角的Save Config保存设置。如果要设置PayPal Express Checkout同样点击右边的Configure按钮进行设置,与Standard不同的是,除了输入邮箱外,您需要点击Get Credentials from PayPal按钮获取相关的API信息,其它的如是否在产品页面和购物篮页面显示您也是可以配置的。
有些用户设置了PayPal Payments Pro,但没有在PayPal激活该功能,这时在使用信用卡付款时会出现”PayPal geteway rejected request. This transaction cannot be processed due to an invalid merchant configuration (#10501: Invalid Configuration)”的提示。要激活该功能,需要登录PayPal后台,然后点击Merchant Services>Solutions>Pro,然后按提示流程进行设置。
备注:在配置PayPal如果出现了一些莫名其妙的事如保存成功但未生效,原服务器上运行正常,在新的服务器上点击PayPal付款无响应(甚至是正常结账流程也无法进入),这极有可能是服务器未添加mcrypt组件。
Magento如何批量上传产品
配置好了网店系统自然需要批量上传产品,如果初次使用,建议先登录后台点击Catalog>Manage Products,然后点击右侧的Add Product按钮,先手动添加一个产品并了解相应选项的作用。在您保存该产品后,点击System>Import/Export>Dataflow – Profiles>Export All Products>Run Profile>Run Profile in Popup,系统将会在弹出窗口中显示导出的流程,完成后,进入根目录,点击Magento>Var>Export,您将会找到刚刚导出的csv文件。
对应导出的csv文件填写相关信息,注意图片的处理,先将所有产品的图片拷贝到根目录的magento>media>import文件夹中(没有的话可以自己创建一个文件夹)。然后在image, small_image, thumbnail列下填写对应的图片名称,前面需加上反斜杠,如图片123.jpg需填 入/123.jpg。填写完成后另存为一个CSV文件,进入后台点击System>Import/Export>Dataflow – Profiles>Import All Products>Upload File,导航到对应文件点击Save and Continue Edit完成上传(注意如果上传的文件过大,您将需要到php.ini中修改post_max_size的值),然后点击Run Profile,在下拉框中选择刚刚上传的文件,然后点击Run Profile in Popup,就会弹出类似下面的窗口,等待完成即可,如果有报错,请检查上传文件的填写是否存在问题。
Error 503:Service Unavailable处理方法
打开网站出现了这样的报错:
Service Temporarily Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
据说这可能是由于达到了最大连接数,可是我是在本地布署的,自然不存在这一问题。后来发现只需要删除Magento根目录下的maintenance.flag文件即可,但愿对您有帮助。
如何使用Magento Connect
Magento的大部分插件都是通过后台中的Magento Connect Manager来进行安装,比如下图中后台菜单栏的Wordpress就是通过这一工具安装的用于集成Wordpress的插件。
使用Magento Connect Manager的方法很简单,进入后台点击System>Magento Connect>Magento Connect Manager,然后在登陆页面使用后台的用户名和密码进行登陆,这样就会进入Magento Connect的安装页面。这里提供两种安装的选择,一种是上传文件进行安装,另一种是通过在Magento Connect的网站上获取的插件密钥进行安装。以密钥安装为例,首先在Magento Connect官网上找到您想要安装的插件(需要先注册一个免费账户),然后同意协议获取密钥地址。
将密钥地址拷入Paste extension key to install后,点击Install按钮,如果正确的话就会出现Extension dependencies部分,点击Proceed按钮开始安装。等待提示结束就完成了安装,当然很多插件在安装后还需要进一步的配置,参阅官方文档即可。顺便说一下Alan使用的集成Wordpress的插件密钥地址是:http://connect20.magentocommerce.com/community/Fishpig_Wordpress_Integration。
Magento左侧导航和Shop By显示
Magento除了顶部的导航,通常还可以在左侧出现Shop By Category和Price的过滤功能的导航,要显示或去除这一块,可以通过开启或关闭后台中的System>Configuration>Advanced>Advanced>Mage_catalog。有时候会发现虽然开启了,并没有Price的过滤功能,这时需要去相应的目录Catalog>Manage Categories,然后选择目录名,在右侧的第二个选项卡Display Settings把Is Anchor设置为Yes。
关于价格Magento默认的价格阶梯是1000,对于大多数商家,超过$1000的产品应该很少,即便多,在实际应用中也可能让客户能过滤更为细为的价格区间,如$0-$100,可以通过在后台中来修改价格阶梯,System > Configuration > Catalog > Layered navigation,在Price Navigation Step Calculation下拉框中选择Manual,并修改Default Price Navigation Step中的值来指定过滤价格阶梯,如300
如何修改订单号前缀及长度
Magento中控制订单号前缀(increment_prefix,默认为值1)及起始值(increment_last_id)的表为eav_entity_store(注:entity_type_id字段下5 = Order,6 = Invoice,7 = Credit Memo,8 = Shipment)。修改订单号数字eav_entity_type,字段名为increment_pad_length,默认长度为8位。
Google Checkout相关报错
出现类似这样的报错:Fatal error: Class ‘Mage_Googlecheckout_Helper_Data’ not found in /app/Mage.php on line 547
解决方法,删除app/code/core/Mage/GoogleCheckout/etc下除config.xml以外的文件即可。
Magento 实战使用的查询语句
查看某一分类中的产品数据(如sku)
SELECT * FROM catalog_category_product LEFT JOIN catalog_product_entity ON product_id = entity_id where category_id=#
Magento Maximum execution time of ** seconds exceeded
在使用Magento的api过程中,可能会遇到上述报错,如果是VPS或拖管主机的话,可以通过修改php,ini中max_execution_time的值来解决;若是使用共享空间,可以在代码头部添加set_time_limit(0);来予以解决。
Magento如何在大类中自动包含子类产品?
进入后台Catalog > Manage Categories ,选择类别名,点击 Display Settings标签,将 Is Anchor 设为Yes,即可大类中自动包含其子类的产品,如若为出现System > Index Management > “Select All” – “Reindex data” > “Submit”重新索引一下。
如何显示/隐藏OOS(Out of Stock)产品?
进入后台System > Configuration > Catalog > Inventory > Stock Options,然后将Display Out of Stock product值设为Yes则表示显示,No则表示隐藏。
SOAP API连接错误
Magento对常用的数据增删改查提供了API接口,有两种方式:SOAP和REST,这里以SOAP连接中出现的问题为例,首先要使用SOAP,就需要在主机中添加SOAP组件,否则无法正常调用API,可通过直接在浏览器中输入http://yourdomain/api/?wsdl访问进行查看连接是否正常。
若出现Invalid webservice adapter specified.报错的话,请尝试将.htaccess中的
Options Indexes FollowSymLinks MultiViews
修改为
Options Indexes FollowSymLinks -MultiViews
在调用过程中如果出现由于地址原因的错误(通过上述页面底部的soap:address location部分进行查看,看显示是否为ip地址),可以尝试修改后台System > Configuration > Web部分的BASE URL为当前域名(据说出现这一问题是由于SOAP是在Magento安装后再添加的)。顺便说一下有url中可能会出现default字样,可以通过将System > Configuration > Web中Url Options下的Add Store Code to Urls设为No来去除。
关于SOAP在实际工作中还出现过这样的情况,通过命令查看主机上已经安装有soap且为shared(–enable-soap=shared),但仍无法使用Magento相应的api,这一情况可能是由于主机所安装的版本或其它问题所致,解决办法是找到相关镜像运行如下指令(粗体部分与所选择镜像有关):
cd /var/tmp
wget http://nl.mirror.eurid.eu/ius/stable/Redhat/6/x86_64/php53u-soap-5.3.28-4.ius.el6.x86_64.rpm
rpm -ivh php53u-soap-5.3.28-4.ius.el6.x86_64.rpm
Magento无上传图片/文件按钮
网上搜索发现很多朋友遇到在后台中产品编辑页面中图片下不显示”Browse Files…”和Upload Files,甚至是之前上传的图片也不见了,有时还会提示”Image type and information need to be specified for each store view.“(如下图所示)。Alan也遇到过这一问题,尝试过将Media文件夹权限修改为777;并确认app\design\adminhtml\default\default\template下是否存在Media文件夹,没有的话从其它地方拷入文件;System>Manage Stores,然后将Default Store View设为disabled;更不提还有些没尝试的修改.htaccess、更新某文件代码、先进行某一操作再清除缓之类循环往复操作,这些方法都没有解决问题。最后换了一个浏览器登入后台,却发现问题奇迹般的解决了,建议您遇到这一问题时也先切换浏览器甚至是换台机器试试。
Magento如何启用MemCached
要在Magento中启用MemCached首先要确认主机上是否安装了Memcached插件,在Linux下可直接输入php -m来查看该php扩展是否安装,如未安装,键入如下指令个来进行安装:
yum install memcached php-pecl-memcache -y
然后打开配置文件app/etc/local.xml,在之前添加如下代码
<cache> <backend>memcached</backend> <memcached> <servers> <server> <host><![CDATA[127.0.0.1]]></host> <port><![CDATA[11211]]></port> <persistent><![CDATA[1]]></persistent> </server> </servers> <compression><![CDATA[0]]></compression> <cache_dir><![CDATA[]]></cache_dir> <hashed_directory_level><![CDATA[]]></hashed_directory_level> <hashed_directory_umask><![CDATA[]]></hashed_directory_umask> <file_name_prefix><![CDATA[]]></file_name_prefix> </memcached> </cache>
重启Apache(service httpd restart),此时访问网站,如发现报错,则删除下var/cache下的缓存文件,即可正常访问。
Magento修改产品页默认显示数量为1
使用Magento有时会发现在产品页的Quantity后显示数量为0,虽然这不影响Add To Cart的操作,但在显示上有可能会让人产生误解,其实只需要在后台中进行简单的修改就可以将默认的显示数量修改为1.进入后台System > Configuration > Inventory > Product Stock Options,点击Add Minimum Qty按钮,选择ALL GROUPS将设置用于所有用户, Minimum Qty下填写1,保存即可。
Your search returns no results
很多朋友在使用Magento的过程中都出现了搜索后未返回结果的情况,而明明在产品的标题、描述中是包含搜索所用的关键词的。可尝试通过在后台中进入System > Configuration > Catalog > Catalog search,将Search Type修改为Combine Like and Fulltext,保存后进入System > Index Management。这时通常搜索就会正常,如若不行,请尝试删除下var/cache下的缓存文件。
Magento在Shipping页面点击Continue无法进入付款页
使用Magento进行结账,填写完地址并选择好运输方式后点击Continue无法进入下一步的付款方式页面,但也没有出现报错。去后台将模板改为默认模板后又一切正常,这时请尝试进入/app/design/frontend/base/default/template/checkout/onepage/payment.phtml文件找到如下内容进行相应替换:
<fieldset> <?php echo $this->getChildHtml('methods') ?> </fieldset>
为fieldset添加一个id:
<fieldset id="checkout-payment-method-load"> <?php echo $this->getChildHtml('methods') ?> </fieldset>
如何去除产品链接前面的类别名?
Magento系统默在类别中点击进入产品页,url中会包含相应的category名,这样在一个产品属于多个类别时会导致很多重复的页面。去除方法非常简单:
- 进入后点击System -> Configuration -> Catalog -> Search Engine Optimizations
- 在Use Categories Path for Product URLs后的下拉框中选择No
- 重建索引
如何修改Magento搜索框中的默认文本?
Magento站点默认都带有搜索功能,但通常搜索框中都采用默认干巴巴的”Search entire store here…”这样的文字,对于追求个性化或想要主打某新款产品关键词的您来说,这显然不是您想要的。要修改默认的文本,只需要修改一个叫form.mini.phtml中的部分文字即可,文件地址在app/design/frontend/base或模板名/default/template/catalogsearch/form.mini.phtml。如果所安装主题中包含该文件,则需修改在frontend下主题相应目录中的该文件,否则修改base下的文件即可。比如下图中将搜索框中的文字修改为”Welcome to Alanhou.com…”
注:有些主题使用了AJAX技术配置搜索框,这时您会发现修改上述文件在前台并未起到所设想的效果,请尝试在template文件夹下找一个类似ajaxsearch的文件夹并修改其中的form.mini.phtml相应部分内容。
Magento去除多店铺URL地址中的“___from_store=”
Magento的多店铺功能,大多数情况下是根据语言来进行选择的,当添加了多店铺之后,一般情况下我们会选择开启添加store code到url地址中。Magento自带的这种功能算是比较不错了,但是有个问题非常头疼。在切换不同店铺的时候,URL地址中会包含“___from_store=”的字符串。SEO非常不友好,那么如何这部分URL地址呢?
找到app\design\frontend\base\default\template\page\switch\languages.phtml文件或所安装主题下的相对应文件,打开并修改如下代码。
//找到这段代码
echo $_lang->getCurrentUrl()
//修改为
echo $_lang->getCurrentUrl(false)
修改完成之后,刷新缓存,即可去除“___from_store=”字符串了~~
去除url中的?___SID=U
访问System > Configuration > Web > Session Validation Settings,并将Use SID on Frontend修改为“No”
CC Saved信用卡信息问题
Magento中cc saved会将信用卡号等信息保存到下面两张表中,这样做不符合PCI的标准,如果由于某些原因您需要保存信用卡信息,建议进行定期清理
sales_flat_order_payment
sales_flat_quote_payment
主要相关字段cc_number_enc,cc_exp_month,cc_exp_year,cc_type,参考代码:
UPDATE <code>sales_flat_order_payment</code> SET <code>cc_number_enc</code> = NULL,<code>cc_exp_month</code>=NULL,<code>cc_exp_year</code>=NULL,<code>cc_type</code>=NULL WHERE <code>method</code> = 'ccsave'; UPDATE <code>sales_flat_quote_payment</code> SET <code>cc_number_enc</code> = NULL,<code>cc_exp_month</code>=NULL,<code>cc_exp_year</code>=NULL,<code>cc_type</code>=NULL WHERE <code>method</code> = 'ccsave';
如何为Magento产品描述添加图片?
如需在产品页描述部分添加产品图片,只需修改app/design/frontend/default/模板名/template/catalog/product/view下的description.phtml文件如下即可(若无此文件可自行创建),通过修改如下代码resize括号内的值可调整图片大小
<?php $_description = $this->getProduct()->getDescription(); ?> <?php if ($_description): ?> <?php echo $this->helper('catalog/output')->productAttribute($this->getProduct(), $_description, 'description') ?> <?php if (count($this->getProduct()->getMediaGalleryImages()) > 0): ?> <ul> <?php foreach ($this->getProduct()->getMediaGalleryImages() as $_image): ?> <li> <img src="<?php echo $this->helper('catalog/image')->init($this->getProduct(), 'thumbnail', $_image->getFile())->resize(800); ?>" alt="<?php echo $this->htmlEscape($_image->getLabel()) ?>" /> </li> <?php endforeach; ?> </ul> <?php endif; ?> <?php endif; ?>
Magento中session_start()权限报错
Magento中出现如下报错信息:
Fatal error: session_start() [function.session-start]: Failed to initialize storage module: user (path: /tmp) in /home/efirst/public_html/shop/app/code/core/Mage/Core/Model/Session/Abstract/Varien.php on line 125
并对tmp文件夹赋予了充分的可写权限,可通过修改app/etc/local.xml文件中的内容来完成
将如下内容
db]]>
修改为
files]]>
Magento客户无法登录
通常这发生在1.8.1以后的非默认模板中,因为缺失了formkey,解决办法是在模板中找到与/app/design/frontend/base
/default/template/persistent/customer/form/login.phtml相对应的文件,并在对应位置添加上如下代码:
<form action="<?php echo $this->getPostActionUrl() ?>" method="post" id="login-form">
字样下面添加如下代码
<?php echo $this->getBlockHtml('formkey'); ?>
后台报错
当后台中出现这样的报错时Your web server is configured incorrectly. As a result, configuration files with sensitive information are accessible from the outside. Please contact your hosting provider.
可通过SSH的chmod命令或FTP工具将app/etc/local.xml文件的权限修改为550
并在app目录下新建.htaccess文件,添加如下内容
Order deny,allow
Deny from all
无法更新Cart中产品数量
打开/app/design/frontend/
/default/template/checkout/cart.phtml文件,在50行后添加
<input type="hidden" name="form_key" value="<? echo Mage::getSingleton('core/session')->getFormKey(); ?>" />
或
<?php echo $this->getBlockHtml('formkey'); ?>
去除Cart页面”Estimate Shipping and Tax”版块
找到app/design/frontend/default/模板名/layout下的checkout.xml文件并注释掉如下代码:
<block type="checkout/cart_shipping" name="checkout.cart.shipping" as="shipping" template="checkout/cart/shipping.phtml"/>
Magento中如何上传多图
以下方法在Magento ver. 1.8.1.0和Magento ver. 1.9.1.0中亲测有效
1.复制 app/code/core/Mage/Catalog/Model/Convert/Adapter/Product.php 这个文件到app/code/local/Mage/Catalog/Model/Convert/Adapter/Product.php。
2.添加代码到app/code/local/Mage/Catalog/Model/Convert/Adapter/Product.php文件,
在
foreach ($product->getMediaAttributes() as $mediaAttributeCode => $mediaAttribute) {
上方即第779行添加如下代码:
try { $galleryData = explode(';',$importData["gallery"]); foreach($galleryData as $gallery_img) { $product->addImageToMediaGallery(Mage::getBaseDir('media') . DS . 'import' . $gallery_img, null, false, false); } } catch (Exception $e) {}
3.把所有要导入的图片上传到media/import目录中。
4.在要导入的csv文件字段中插入一列并命名为gallery,再在此列中填写所有你想要上传主图以外的产品图片的名称(多张图片用半角英文分号“;”隔开),例如:/image1.jpg;/image2.jpg;/image3.jpg
除此之外还有另一种更为强大的方法,就是通过Magmi,下载地址为http://sourceforge.net/projects/magmi/,该工具能实现非常多的操作,仅就产品上传而言,它可以实现多图上传,支持远程图片的添加,且可以为每张图片添加label文本,使用起来更为灵活。仅需将下载文件解压放到Magento的根目录下,然后访问*/magmi/web/magmi.php来进行进一步的操作即可,今后有机会Alan会单独写一篇有关Magmi使用方法的博客与各位交流。
这里同时附上Understande整理的产品上传模板,其中有些非常规字段未做删除,并不会影响上传,只需将内容修改成你自己需要的并另存为CSV格式即可:
DO_NOT_IMPORT_excel_coloured_example.xls
在PHTML中获取对应url
Note: In editing PHTML don’t forget to change the following code with PHP tag
(a) Unsecure Skin Url :
$this->getSkinUrl('images/imagename.jpg');
(b) Secure Skin Url :
$this->getSkinUrl('images/imagename.gif', array('_secure'=>true));
1. Get Magento Base Url :
Mage::getBaseUrl();
2. Get Magento Skin Url :
Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN);
3. Get Magento Media Url:
Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA);
4. Get Magento Js Url:
Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS);
5. Get Magento Store Url:
Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
6. Get Magento Current Url:
Mage::helper('core/url')->getCurrentUrl();
Get Url in cms pages or static blocks
1. Get magento Base Url :
{{store url=""}}
2. Get magento Skin Url :
{{skin url='images/imagename.jpg'}}
3. Get magento Media Url :
{{media url='/imagename.jpg'}}
4. Get magento Store Url :
{{store url='mypage.html'}}
Magento结账One Page登录时跳转到login页面
要解决这一问题,只需在app/design/frontend/default/[themename]/template/persistent/checkout/onepage/login.phtml中找到第二个(非Guest Checkout部分代码)
<ul class="form-list">
并在下面添加如下代码:
<input type="hidden" name="form_key" value="<? echo Mage::getSingleton('core/session')->getFormKey(); ?>" />
The requested URL ** was not found on this server
为Magento站点安装过SSL后,点击登录和one page结账时会出现类似”The requested URL /checkout/onepage/ was not found on this server.”这样的报错,而在域名和后面链接前加上index.php时访问又正常。查看于rewrite模块以及.htaccess都未发现异常。在System > Configuration > General > Web > Search Engine Optimization下将Use Web Server Rewrites后面的下拉框改为No可以解决这一问题,不过这样前台所有页面链接中都会添加index.php,会不大美观,对搜索引擎也不够友好。
另一种方法是将Secure下的Base Link URL改为https://yourdomain.com/index.php/,这将不会影响到非https页面。目前尚未发现更好的方案。
Magento数据库修改订单状态
Magento与订单状态相关的数据表有:
sales_order_status数据表记录订单的状态值
sales_flat_order_item数据表中的qty_canceled显示订单中产品是否被取消
sales_flat_order_status_history数据表中的status显示订单历史修改状态
sales_flat_order_grid数据表的status记录订单状态(pending, processing, canceled, complete等
sales_flat_order表中的state, status
Please enter a valid URL
在按照默认步骤安装Magento时,有时会出现无效链接的报错:
Please enter a valid URL. Protocol is required (http://, https:// or ftp://)
对于这一情况需要打开app\design\install\default\default\template\install\config.phtml文件,在第50行左右找到以下代码:
<input type="text" name="config[unsecure_base_url]" id="base_url" value="<?php echo $this->getFormData()->getUnsecureBaseUrl() ?>" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Base URL')) ?>" class="required-entry validate-url input-text" />
然后去除其中的validate-url即可点击下一步进入后续安装步骤。
在Firefox、Chrome等浏览器中您也可以右击Inspect Element(查看元素)将对应input元素下的validate-url(如果已出现提示信息可一并删除validation-failed)类直接删除;另外一种解决方案是将localhost改成127.0.0.1或其它已设置好的域名。
Magento升级1.9.2报错
在升级到最新版本Magento时访问目录页时就会出现以如下代码开头的报错
SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘e.status’
可能过System > Configuration > Catalog > Catalog > Frontend,然后将Use Flat Catalog Category和Use Flat Catalog Product的值都修改成No,并重新Index,这时就可以正常访问目录页和产品页了。
Magento开发调试相关
1. 关闭缓存
System > Cache Management > Select All > Actions = Disable > Submit
2. 重新索引
System > Index Management > Select All > Actions = Reindex Data > Submit
3. 关闭编译
System > Tools > Compilation > Disable
注: 默认情况下编译模式就是关闭的,只需要检查一下即可
4. 开启报错信息
a> 打开根目录下的index.php文件并取消如下注释:
#ini_set('display_errors', 1);
b> 打开.htaccess文件并在最后添加
SetEnv MAGE_IS_DEVELOPER_MODE “true”
5. 开启日志功能
System > Configuration > Advanced > Developer > Log Settings > Enabled => Yes
6. 配置Magento报错页面
将errors/local.xml.sample重命名为errors/local.xml
7. 安装 Easy Template Path Hints
getModelInstance()方法调用错误
在安装Magento过程中出现如下报错:
Fatal error: Call to a member function getModelInstance() on a non-object in /…/app/Mage.php on line 463
这是由于权限设置问题,通过chmod将app/etc, media/和var/目录的权限设置为777即可正常开如安装。
Magento后台Sales>Order内容显示为空
出现这一问题网上有很多种解释,此时查看源代码会发现相关内容已经被调取出来了,只是未在前台显示。Alan在将PHP升级到5.4以上版本后问题就解决了,所以建议大家也先尝试升级一下看问题是否解决再尝试其它方法。具体方法请参考CentOS 6.x 上如何升级PHP
https页面不显示图片等问题
在前台访问https页面时发现图片等内容无法显示,查看源代码,出现类似如下报错
[Warning] [blocked] The page at https://www.xxxx.com/ was not allowed to display insecure content from http://www.xxxx.com/skin/frontend/xxx.
这主要是由于后台中的没有设置前台允许使用https访问,打开System>Configuration>General>Web>Secure,在Use Secure URLs in Frontend后的下拉框中选择Yes保存即可。
此外在我们访问内页的https页面会出现
Not Found
The requested URL /xxx was not found on this server.
的报错,但当我们在中间加入index.php时就可以正常访问了。此时只需取消#RewriteBase /magento/前的注释,当如果是根目录请直接使用
RewriteBase /
Unknown cipher in list: TLSv1报错
在尝试安装MailChimp插件的时候出现了如下报错:
community/Ebizmarts_MageMonkey: Unknown cipher in list: TLSv1
解决方法:打开安装目录下downloader/lib/Mage/HTTP/Client/Curl.php文件,将
$this->curlOption(CURLOPT_SSL_CIPHER_LIST, 'TLSv1');
替换为
if(isset($var)){ $this->curlOption(CURLOPT_SSL_CIPHER_LIST, 'TLSv1'); }
如何设置http自动跳转到https?
System>Configuration>Web中将Unsecure和Secure的Base URL都设置为https://x.x.x 后发现访问原http任意页面都会跳转到首页,这显然不是我们要的,也不利于之前所做过的SEO。那么如何让http跳转到对应的https页面呢,只需要在根目录下的.htaccess中加入
# 在RewriteEngine on下面 RewriteCond %{HTTPS} =off RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L,R=301]
Fatal error: Uncaught Error: Function name must be a string
Fatal error: Uncaught Error: Function name must be a string …
app\code\core\Mage\Core\Model\Layout.php:555…
打开文件,将
$out .= $this->getBlock($callback[0])->$callback[1](); #替换为 $out .= $this->getBlock($callback[0])->{$callback[1]}();