اذهب إلى المحتوى

السؤال

نشر (معدل)

أُبرمج على Magento في نسخته 1.9.1.1، ولدي لائحة بمجموعة أصناف تندرج تحتها  المنتجات، وأريد زيادة السعر لجميع المنتوجات الخاصة بصنف معين، مثلا $70، وبشكل غير أوتوماتيكي، أي عوض تصفح المنتوجات والتغيير يدويا أريد كتابة سكريبت يقوم بالمهمة، كيف ذلك؟

تم التعديل في بواسطة Badraoui

Recommended Posts

  • 0
نشر

هذه الجزئية يجب إدراجها ضمن لوحة التحكم الخاصة بالأدمن.

حدد صنف المنتوجات من خلال قائمة منسدلة، حيث يتم بعد ذلك تحديد جميع المنتوجات المُدرجة تحت هذا الصنف، مع  وجود حقل لإدراج القيمة التي تريد إضافتها  لحقل ثمن المنتج، ليكون الكود على الشكل التالي:

<?php

//   updateprice.php  ملف

require_once('app/Mage.php');
ob_implicit_flush(true);
umask(0);
set_time_limit(0);
ini_set('display_errors', 1);
ini_set('memory_limit', '2048M');
Mage::setIsDeveloperMode(true);
Mage::app();
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);

function productCallback($args) {

    $product = Mage::getModel('catalog/product');

    // جلب المنتوجات ووضعها في مصفوفة
    $product->setData($args['row']); 
    $product_data = array();

    // جلب حقل الثمن من المنتج الحالي
    $price = $product->getPrice();

    // إضافة القيمة المُعيّنة إلى القيمة السابقة لثمن المنتج +70
    $product->setPrice($price + .70);
    // إظهار رسالة تفيد بأنه تم التحديث بشكل ناجح
    echo "Updating Price for: ".$product->getName()."<br />\n\r";    
    // حفظ التغيرات على المنتج
    $product->save();
    $product->clearInstance();  
    unset($price);
}

try {

    // جلب مصفوفة المنتوجات
    $collection = Mage::getResourceModel('catalog/product_collection')
            ->addAttributeToSelect('*')
            ->addAttributeToFilter('type_id','Booking/reservation'); // تعيين الصتف المختار من القائمة المنسدلة

    // إظهار جملة الاستعلام المستخدمة، من أجل التوضيح
    echo $collection->getSelect();

    //   لعدم استهلاك الكثير من موارد نظام ماجينتو magento iterator callback استعمال 
    Mage::getSingleton('core/resource_iterator')->walk($collection->getSelect(), array('productCallback'), array('arg1' => '===='));

} catch (Exception $e) {
    zend_debug::dump($e);
} 

تجدر الإشارة إلى أنه يمكن تطوير هذا النظام أكثر من خلال إضافة العديد من الخصائص، كتحديث حقول أخرى من المنتج عن طريق اختيار الحقل، وأيضا إظهار حقول checkboxs جانب كل من منتج من أجل إلغاء منتوجات معينة.

Updating product prices in Magento in an easier & faster way

Product Update

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...