Magento导出和索引会导致内部服务器错误

时间:2016-01-26 09:13:40

标签: php mysql magento

我们无法从运行Magento 1.6.2的网上商店中导出产品 在我们尝试导出7600产品时,我们收到了臭名昭着的内部服务器错误。
System.log和Exception.log没有显示任何内容。
我尝试使用Magento清理工具来重置文件权限。
我们已经更改了执行时间,但这没有用。
我使用了magento check实用程序(检查服务器上所需的组件) 这说明Magento需要MySQL 4.1.20(或更高版本)。
认为不是内部服务器错误的问题。

我唯一需要的是产品的CSV导出。 出口需要布局Magento的出口功能如何做 像:
sku,_store,_attribute_set,_type,_category等 因此,如果任何人有任何脚本也可以完成此任务,或有任何建议,我希望收到你的来信!

修改

我使用过滤器创建的导出产品。然而,对于其他人来说,这可能不是一个解决方案。所以答案仍然很受欢迎!

1 个答案:

答案 0 :(得分:1)

如果您无法直接从“管理”导出所有产品,则可以使用此代码段通过shell导出它们。

<? php 
require_once(_PATH_TO_ . 'Mage.php');
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);

$file = 'my_file_name.csv';
    $csv = new Varien_File_Csv();
    $csvdata = array();
    $products = Mage::getModel('catalog/product')->getCollection();

    foreach ($products as $product)
    {
        $product_data = array();
        $product_data['id'] = $product->getId();
        $product_data['sku'] = $product->getSku();
        [... enter here all data you want to export]
        $csvdata[] = $product_data;
    }

    $csv->saveData($file, $csvdata);

在shell中运行:

php -f PATH_TO_YOUR_SCRIPT/scriptname.php

然后,您只需要获取该文件。

此代码段可与其他型号一起使用。

如果要指定另一个分隔符,机箱或行长度,请使用:

$csv->setLineLength(1000);
$csv->setDelimiter(';');
$csv->setEnclosure('"');