مسح أسعار مجموعة المنتجات برمجيًا - تم توفير وسيطة غير صالحة لـ foreach()

magento.stackexchange https://magento.stackexchange.com/questions/106782

  •  29-09-2020
  •  | 
  •  

سؤال

أحاول مسح أسعار مجموعة المنتج برمجيًا ضمن وحدة نمطية مخصصة.هذا هو الكود الخاص بي:

Mage::setIsDeveloperMode(true); // for debug only
try
{
    $product = Mage::getModel('catalog/product')->load($productId);
    $product->setGroupPrice(null);
    $product->save();
}
catch (Exception $ex)
{
    echo "Error: ". $ex->getMessage();
}

عند تنفيذ هذا الكود، أحصل على الاستثناء التالي:

تحذير:حجة غير صالحة المقدمة لـ foreach () في /home/www-data/public_html/app/code/core/mage/eav/model/entity/abstract.php على السطر 1180

في ال system.log الملف، أرى تخصيص هذه الإدخالات:

2016-03-17T18:01:06+00:00 خطأ (3):تحذير:حجة غير صالحة المقدمة لـ foreach () في /home/www-data/public_html/app/code/core/mage/eav/model/entity/abstract.php على الخط 1180 2016-03-17t18: 01: 06+00: 00 خطأ (3):خطأ قابل للاسترداد:تم نقل الوسيطة 3 إلى mage_catalog_model_resource_abstract :: _ canupDateAttribute () يجب أن تكون من نوع صفيف النوع ، معطى ، يسمى في/home/www-data/public_html/app/code/core/core/mage/eav/model/entity 1225 وتم تعريفه في /home/www-data/public_html/app/code/core/mage/catalog/model/resource/abstract.php على السطر 543 2016-03-17T18: 01: 06+00: 00 err (3) :خطأ قابل للاسترداد:تم نقل الوسيطة 3 إلى mage_eav_model_entity_abstract :: _ canupDateAttribute () يجب أن تكون من نوع مجموعة ، خالية من ذلك ، ودعا في/hom 545 وتم تعريفه في /home/www-data/public_html/app/code/core/mage/eav/model/entity/abstract.php على الخط 1254 2016-03-17T18: 01: 06+00: 00 err (3) :تحذير:array_key_exists () تتوقع أن تكون المعلمة 2 صفيفًا ، خالية من/home/www-data/public_html/app/code/core/mage/eav/model/entity/abstract.php على الخط 1256

أي فكرة ما الذي يمكن أن يسبب هذا؟يعمل نفس الرمز الموجود في إعداد dev magento الخاص بي، ولكن في إنتاج magento، بدأ هذا الخطأ في الظهور، لذلك أنا في حيرة من أمري.

هل كانت مفيدة؟

المحلول

ربما تكون قد قمت بحل هذه المشكلة بالفعل، ولكن بالنسبة للأشخاص الآخرين الذين يبحثون عن حل - فأنت بحاجة إلى تعيين نطاق المتجر أولاً.

Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى magento.stackexchange
scroll top