• 0

كيف أنشئ سكريبت على ماجنتو لتغيير منتوجات صنف معيّن؟

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

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

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 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

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن