1

次のコードを使用して、MagentoWebショップに製品を挿入しようとしています。

public static function addProduct($product, $categorieId) {
    $productModel = Mage::getModel('catalog/product');

    $productModel->setTypeId(Mage_Catalog_Model_Product_Type::TYPE_SIMPLE)
            ->setWebsiteIDs(array(1))
            ->setStatus(Mage_Catalog_Model_Product_Status::STATUS_ENABLED)
            ->setVisibility(Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH)
            ->setCreatedAt(strtotime('now'))
            ->setName($product->PRODUCT_DETAILS[0]->DESCRIPTION_SHORT)
            ->setCategoryIds(array($categorieId))
            ->setDescription($product->PRODUCT_DETAILS[0]->DESCRIPTION_LONG ? $product->PRODUCT_DETAILS[0]->DESCRIPTION_LONG : $product->PRODUCT_DETAILS[0]->DESCRIPTION_SHORT)
            ->setShortDescription($product->PRODUCT_DETAILS[0]->DESCRIPTION_SHORT)
            ->setPrice($product->PRODUCT_PRICE_DETAILS->PRODUCT_PRICE->PRICE_AMOUNT)
            ->setAttributeSetId($productModel->getResource()->getEntityType()->getDefaultAttributeSetId());

    $productModel->setStockData(array(
        'is_in_stock' => 1,
        'qty' => 99999
    ));

    try {
        $productModel->save();
        return $productModel->getId();
    } catch (Exception $ex) {
        Mage::log($ex->getMessage());
    }
}

それでも、コードはアイテムを適切なカテゴリに挿入します。約38アイテム後、エラーも何も発生せずに停止します。Ajax呼び出しはエラーを返さず、何も返しません。これが何によって引き起こされる可能性があるかについてのアイデアはありますか?

ヴォルフガングを応援します

4

1 に答える 1

0

スクリプトの実行時間制限(php.ini max_execution_time)に達していると思います

PHPの「セーフモード」で実行していないと仮定して、メソッドの先頭に次のように挿入してみてください。(このメソッドは何度も呼び出されると思います。毎回制限時間をリセットします)

set_time_limit(30);
于 2013-01-27T18:39:47.773 に答える