প্রোগ্রামযুক্তভাবে কার্টে বিভিন্ন বৈশিষ্ট্যযুক্ত একাধিক আইটেম যুক্ত করা


15

আমি কার্ট সিস্টেমে একটি বাল্ক অ্যাড তৈরি করছি। দয়া করে নোট করুন: আমি এটি কাস্টম বিকল্পগুলির সাথে সাধারণ পণ্যগুলির জন্য কাজ করতে চাই -> যেখানে কাস্টম বিকল্প রঙের মতো হয় (লাল, সবুজ, নীল) বা আকার (এক্সএল, এম, এস)

মনে করুন কোনও ব্যক্তি নীচে আইটেম অর্ডার করতে চায়:

  1. productএ, redরঙ, qty12
  2. Productএ, greenরঙ, qty18
  3. Productবি,, XLকোয়াটি 3
  4. Product সি, পরিমাণ 10

সুতরাং আমি একবারে কোড / প্রোগ্রামের মাধ্যমে এই 4 টি আইটেম যুক্ত করতে চাই। কিভাবে আমি এটি করতে পারব? এটি কি ক্যোরিয় স্ট্রিংয়ের মাধ্যমে সম্ভব, বা কোনও নিয়ামক বা এর জন্য কার্যত নির্মিত? এটির জন্য কেবলমাত্র একক ক্যোয়ারী বা এক ফাংশন কল হতে হবে না ...


হ্যাঁ, আমি ঠিক কীভাবে এটি করতে পারি
user1799722

আপনি কোন ধরণের পণ্য ব্যবহার করছেন?
অমিত বেড়া

@ অমিতবেরা আমি সাধারণ পণ্যগুলি ব্যবহার করছি
ব্যবহারকারী 1799722

উত্তর:


1

সুতরাং প্রোগ্রামগতভাবে কার্টে পণ্য যুক্ত করা মোটামুটি সহজ আপনার কেবল পণ্য অবজেক্ট এবং কার্ট সেশনের প্রয়োজন।

$quote = Mage::getSingleton('checkout/session')->getQuote();
$quote->addProduct($product, $qty);

$quote->collectTotals()->save();

এটি কারণ হিসাবে কনফিগারযোগ্য বা বিকল্পগুলির সাথে পণ্য যুক্ত করার সময় কিছুটা বেশি কঠিন তবে আপনাকে যা করতে হবে তা হ'ল সঠিক বিকল্পগুলির সাহায্যে পণ্য অবজেক্টটি লোড করা।

এখন আপনাকে যা করা দরকার তা হ'ল পরিবর্তে একটি অ্যারে পাস করা $qtyএবং আপনি কোন ধরণের পণ্য যুক্ত করছেন তার উপর নির্ভর করে এই অ্যারেটিকে অন্যভাবে ফর্ম্যাট করা উচিত।

আরও তথ্যের জন্য নিম্নলিখিত দেখুন:


ধন্যবাদ আমি শুধু প্রশ্নগুলি পুনরায়
পড়তে চাইলে ইউটিএস 1799722

1
@ মোর যাতে আপনি কার্টে ইউআরএল মাধ্যমে পণ্য যুক্ত করতে পারেন তবে আমি মনে করি না এটি একাধিক পণ্য নিয়ে কাজ করবে তাই আমি একাধিক পণ্য যুক্ত করার জন্য আমার উত্তর হিসাবে নিজের কন্ট্রোলার তৈরির পরামর্শ দিই।
ডেভিড ম্যানার্স

1

আমি কিছুক্ষণ আগে ব্যবহার করেছি এমন একটি পদ্ধতি:

// Products array
$productArray = array(
    // Simple product
    array(
        'product_id' => 1,
        'qty' => 1
    ),
    // Configurable product
    array(
        'product_id' => 4,
        'qty' => 1,
        'options' => array(
            'color' => 'Red'
        )
    )
);

// Prepare cart products
$cartProducts = array();
foreach ($productArray as $params) {
    if (isset($params['product_id'])) {
        // Load product
        $product = Mage::getModel('catalog/product')->load($params['product_id']);

        if ($product->getId()) {
            // If product is configurable and the param options were specified
            if ($product->getTypeId() == "configurable" && isset($params['options'])) {
                // Get configurable options
                $productAttributeOptions = $product->getTypeInstance(true)
                    ->getConfigurableAttributesAsArray($product);

                foreach ($productAttributeOptions as $productAttribute) {
                    $attributeCode = $productAttribute['attribute_code'];

                    if (isset($params['options'][$attributeCode])) {
                        $optionValue = $params['options'][$attributeCode];

                        foreach ($productAttribute['values'] as $attribute) {
                            if ($optionValue == $attribute['store_label']) {
                                $params['super_attribute'] = array(
                                    $productAttribute['attribute_id'] => $attribute['value_index']
                                );
                            }
                        }
                    }
                }
            }

            unset($params['options']);
            $cartProducts[] = array(
                'product'   => $product,
                'params'    => $params
            );

        }
    }
}

// Add to cart
$cart = Mage::getModel("checkout/cart");
if (!empty($cartProducts)) {
    try{
        foreach ($cartProducts as $cartProduct) {
            $cart->addProduct($cartProduct['product'], $cartProduct['params']);
        }

        Mage::getSingleton('customer/session')->setCartWasUpdated(true);
        $cart->save();
    } catch(Exception $e) {
        Mage::log($e->getMessage());
    }
}

কাজ করার জন্য এটি এখনই বেশ সোজা এগিয়ে এবং পরীক্ষিত।

আমি 2 টি পণ্য অন্তর্ভুক্ত করেছি $productArray, একটি সাধারণ এবং অন্যটি কনফিগারযোগ্য । স্পষ্টতই আপনি আরও যুক্ত করতে পারেন এবং কনফিগার করার মতো আকার এবং রঙের মতো 2 টি বিকল্প থাকলে আপনি অপশন অ্যারেটিতে কেবল অতিরিক্ত যুক্ত করতে পারেন।


হাই ধন্যবাদ আমি কাস্টম বিকল্পগুলির সাথে সাধারণ পণ্যগুলির জন্য কাজ করতে চাই
user1799722

সুতরাং "আনসেট ($ প্যারামগুলি ['বিকল্পসমূহ']) লাইনটি মন্তব্য করুন;" তারপরে নিশ্চিত করুন যে পণ্যটির নির্দিষ্ট পণ্য বিকল্প রয়েছে
শাওন

1

কাস্টম অপশনগুলির সাথে সাধারণ পণ্যগুলি ব্যবহার করা ইমোতে খুব সহজেই "আকার" এবং "রঙ" ম্যাজেন্টোতে ব্যবহার করার উপায় নয়, আমি কার্টে কাস্টম বিকল্পগুলির সাথে পণ্যগুলি এইভাবে যুক্ত করতে পেরেছি:

/*
 * Assuming this is inside a method in a custom controller
 * that receives a $_POST
 */
$post = $this->getRequest()->getPost();

// load the product first
$product = Mage::getModel('catalog/product')->load($post['product_id']);
$options = $product->getOptions();

// this is the format for the $params-Array
$params = array(
    'product' => $product->getId(),
    'qty' => $post['qty'],
    'related_product' => null,
    'options' => array()
);
// loop through the options we get from $_POST
// and check if they are a product option, then add to $params
foreach( $post as $key => $value ) {
    if(isset($options[$key]) {
        $params['options'][$key] = $value; 
    }
}

// add the product and its options to the cart
$cart->addProduct($product, $params);

এই আপনি কি বোঝাতে চেয়েছিলেন? আপনি যদি একাধিক পণ্য যুক্ত করতে চান তবে প্রতিটি পণ্য আপনি যুক্ত করতে চান তার জন্য কেবল এই প্রক্রিয়াটি পুনরাবৃত্তি করুন। গুরুত্বপূর্ণ বিষয় PRODUCT_ID, Qty এ এবং বিকল্প মাধ্যমে দেওয়া আছে সর্বদা $_POST


1

আপনি কাস্টম বিকল্পগুলির সাথে মাল্টিপল সাধারণ পণ্যগুলি এতে কার্ট নিয়ামককে ওভাররাইট করে যুক্ত করতে পারেন:

আমি কার্টকন্ট্রোল.এফপি ফাইলটি এখানে রেখেছি: https://github.com/svlega/ মাল্টিপল- প্রডাক্টস- অ্যাড্টোকার্ট

        //Programatically Adding multiple products to cart
        $productArray = array(
            array(
                'product_id' => 7,
                'qty' => 2,
                'custom_options' => array(
                    'size' => 'XL'
                )
            ),
            array(
                'product_id' => 1,
                'qty' => 1,
                'custom_options' => array(
                    'color' => 'Red'
                )
            )   

        );

        // Prepare cart products
        foreach ($productArray as $params) {
            if (isset($params['product_id'])) {
                // Load product
                $product = Mage::getModel('catalog/product')->load($params['product_id']);

                if ($product->getId()) {
                    // If product is configurable and the param options were specified
                    if (isset($params['custom_options'])) {
                        // Get options                
                        $options = $product->getOptions();
                            foreach ($options as $option) {
                                /* @var $option Mage_Catalog_Model_Product_Option */                        
                                if ($option->getGroupByType() == Mage_Catalog_Model_Product_Option::OPTION_GROUP_SELECT) {                          

                                    $product_options[$option->getTitle()] = $option->getId();
                                    if(array_key_exists($option->getTitle(),$params['custom_options'])){
                                    $option_id =  $option->getId();                 
                                        echo '<br>Did'.$id = $option->getId().'Dlabe'.$option->getTitle();
                                    foreach ($option->getValues() as $value) {                          
                                        /* @var $value Mage_Catalog_Model_Product_Option_Value */                    
                                       if($value->getTitle()== $params['custom_options'][$option->getTitle()]){     
                                echo 'id'.$id = $value->getId().'labe'.$value->getTitle();
                                       $params['options'][$option->getId()]=$value->getId();
                                       }                                
                                    }
                                    }                          
                            }
                            }
                    }

                    try{
                    $cart = Mage::getModel('checkout/cart');
                    $cart->addProduct($product, $params);
                    $cart->save();
                    }catch(Exception $e) {
                    Mage::log($e->getMessage());
                    }

                }
            }
        }
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.