কার্ট এ ইভেন্ট দেখুন - উদ্ধৃতি আইটেম আইডি খালি


11

কার্টে কোনও আইটেম যুক্ত হওয়ার পরে আমি সেই ইভেন্টটি ধরার চেষ্টা করছি। আমি বর্তমানে নিম্নলিখিত ইভেন্টটি পর্যবেক্ষণ করছি: চেকআউট_কার্ট_প্রডাক্ট_অ্যাড_এর পরে

ম্যাজেন্টো উত্স অনুসারে এই ইভেন্টটি উদ্ধৃতিতে সমস্ত কিছু করার পরে বরখাস্ত করা হয়। তবে আমি যখন কার্ট আইডি এবং উদ্ধৃতি আইডি অ্যাক্সেস করি তখন মানগুলি শূন্য থাকে:

$quoteItem = $observer->getQuoteItem();
$quote_item_id = $quoteItem->getItemId();
$cart = Mage::getSingleton('checkout/session');
$quote_id= $cart->getQuoteId();

কার্টে কোনও আইটেম না থাকলে উপরোক্ত দুটি আইডির জন্য খালি ফিরে আসে, কার্টটিতে ইতিমধ্যে যদি আইটেম রয়েছে কার্টের আইডির মান রয়েছে তবে উদ্ধৃতি_উত্তর_আইডির মূল্য নেই।

লক্ষ করুন এটি আগে জিজ্ঞাসা করা হয়েছিল, কিন্তু প্রশ্নটি কখনও সমাধান হয়নি, এবং আলোচনাটি এই সমস্যা থেকে বিপথগামী হয়েছিল। আমার উক্ত উদ্ধৃতি_উত্তর_ইড দরকার।


সাথে চেষ্টা করুন$quoteItem = $observer->getEvent()->getQuoteItem();
মারিয়াস

একই জিনিস, আইডি খালি আসে।
নুনো ফুর্তাদো

এটি আপনার পর্যবেক্ষকটিতে যুক্ত করুন Mage::log($quoteItem)এবং var/log/system.logউদ্ধৃতি আইটেমটি কেমন দেখাচ্ছে তা দেখুন। আপনি সেখান থেকে একটি ধারণা পেতে পারেন।
মারিয়াস

এটি একটি বিশাল পরিমাণের তথ্য, আমি সহজেই এতে হারিয়ে যাব
নুনো ফুর্তাদো

1
= ডি এখনও অনেক বড়, আমি ম্যাজ :: গেটলগ ($ কোট আইটেম-> ডিবাগ ()) চেষ্টা করে দেখেছি যে ফলাফলের অ্যারেতে কোনও আইটেমিড নেই। কোটাইটেমের ভিতরে স্টক_ইটিম উপাদানটিতে একটি আইটেম_আইড আছে বলে মনে হচ্ছে তবে এটি কী তা আমি এখনও নিশ্চিত নই। সম্পাদনা করুন: এটি কি এই মানটি সর্বদাই সমান নয়
নুনো ফুর্তাদো

উত্তর:


22

এটি করবেন না।

আপনার সমস্যাটি হ'ল কার্টটি এখনও সংরক্ষিত হয়নি, এখানে একবার দেখুন:

https://github.com/LokeyCoding/magento-mirror/blob/magento-1.7/app/code/core/Mage/Checkout/controllers/CartController.php#L201-L206

public function addAction()
{
// ...
        $cart->addProduct($product, $params); // <-- you are inside this method
        if (!empty($related)) {
            $cart->addProductsByIds(explode(',', $related));
        }

        $cart->save(); // here is the saving, and therefore after this line,
                       //  quote and items have an id
// ...
        Mage::dispatchEvent('checkout_cart_add_product_complete',
            array('product' => $product, 'request' => $this->getRequest(), 'response' => $this->getResponse())
        );

আপনি যা চান তা শুনুন checkout_cart_add_product_complete

আপনাকে জানতে হবে, যা আইটেম যেখানে এই বৃত্তাকার যোগ শুধু পতাকা তাদের চান checkout_cart_product_add_afterমত $quoteItem->setIsNew()তারপর আপনি চেক করতে পারেন checkout_cart_add_product_completeজন্য$quoteItem->getIsNew()


আমি অনুভব করেছি যে এটিই হবে, সমস্যাটি হ'ল ইভেন্টটি কেবল পণ্যটি প্রেরণ করে। সেশন থেকে কার্টটি পাওয়া এবং সর্বশেষে অ্যারের শেষ হওয়া কি ভাল ধারণা? আমি আশঙ্কা করছি যে কোনও ধরণের রেসের শর্ত থাকতে পারে
নুনো ফুর্তাদো

1
উত্তরটি সম্পাদনা করেছেন। আপনাকে আপনার উদ্ধৃতি আইটেমগুলি পতাকাঙ্কিত করতে হবে, তারপরে মাগানোটি সেগুলি সংরক্ষণ করুন, তারপরে আপনি আপনার উদ্ধৃতি আইটেম এবং পণ্যটি জানতে পারবেন :)
ফ্যাবিয়ান ব্ল্যাচসমিড

@ ফ্যাবিয়ান ব্লাচস্মিডিট কার্ট আপডেট করার সময় ট্রিগার হওয়ার মতো কোনও ঘটনা আছে?
প্রজাপতি

হ্যাঁ, অনেকগুলি, আপনি কেবল প্রেরণ ইভেন্টে প্রবেশ করতে পারেন এবং এটি পরীক্ষা করতে পারেন: magento.stackexchange.com/a/9155/217 এবং বেন থেকে মন্তব্যটি নিশ্চিত করে পড়তে ভুলবেন না!
ফ্যাবিয়ান ব্লাচসমিড

5

আপনি এটি দিয়ে checkout_cart_product_add_afterইভেন্টটি ব্যবহার করতে পারেন :

$observer->getEvent()->getQuoteItem()->getProduct()->getData()

ফিরিয়ে দেওয়া ডেটা এর সাথে একই রকম দেখাচ্ছে:

Array
(
    [store_id] => 1
    [entity_id] => 1
    [entity_type_id] => 4
    [attribute_set_id] => 4
    [type_id] => simple
    [sku] => TESTSKU
    [has_options] => 0
    [required_options] => 0
    [created_at] => 2015-02-10T12:11:50-05:00
    [updated_at] => 2015-02-10 17:18:47
    [name] => Demo Product
    [url_key] => demo-product
    [country_of_manufacture] => 
    [msrp_enabled] => 2
    [msrp_display_actual_price_type] => 4
    [meta_title] => 
    [meta_description] => 
    [image] => no_selection
    [small_image] => no_selection
    [thumbnail] => no_selection
    [custom_design] => 
    [page_layout] => 
    [options_container] => container1
    [gift_message_available] => 
    [url_path] => demo-product.html
    [weight] => 1.0000
    [price] => 12.9900
    [special_price] => 
    [msrp] => 
    [status] => 1
    [visibility] => 4
    [tax_class_id] => 2
    [is_recurring] => 0
    [description] => It's a sample product, what do you want?
    [short_description] => It's a demo product
    [meta_keyword] => 
    [custom_layout_update] => 
    [news_from_date] => 
    [news_to_date] => 
    [special_from_date] => 
    [special_to_date] => 
    [custom_design_from] => 
    [custom_design_to] => 
    [group_price] => Array
        (
        )

    [group_price_changed] => 0
    [media_gallery] => Array
        (
            [images] => Array
                (
                )

            [values] => Array
                (
                )

        )

    [tier_price] => Array
        (
        )

    [tier_price_changed] => 0
    [stock_item] => Mage_CatalogInventory_Model_Stock_Item Object
    (
        // Crazy recursion happens here
    )
    [is_in_stock] => 1
    [is_salable] => 1
    [website_ids] => Array
        (
            [0] => 1
        )
    [cart_qty] => 1
    [qty] => 1
    [stick_within_parent] => 
    [customer_group_id] => 0
    [final_price] => 
)

এটি ম্যাজেন্টো 1.9.1.0 এ পরীক্ষা করা হয়েছিল, তবে আমি যা বলতে পারি তা থেকে এটি 1.7 এ কাজ করা উচিত


2

আপনি নিম্নলিখিত ইভেন্ট ব্যবহার করতে পারেন

sales_quote_item_set_product

এবং এই মত পর্যবেক্ষক আইটেম আইডি পান।

$quote_item = $observer->getEvent()->getQuoteItem();
$item_id = $quote_item->getItemId();

এই ইভেন্টটি প্রতিবার কার্টটি তৈরি হওয়ার সময় প্রতিটি উদ্ধৃতি আইটেমের জন্য ডাকা হয়, কেবল যখন কার্টে কোনও আইটেম যুক্ত করা হয় তা নয়।
রুস্টার 242

1

আমি issue কার্ট এবং কোট আইটেমে সেভ কল করে এই সমস্যাটি সমাধান করেছি। এটিকে সঠিক হিসাবে নির্বাচন করা হচ্ছে না কারণ আমি নিশ্চিত নই যে এটিই সেরা পদ্ধতি।

ফ্যাবিয়ান ব্ল্যাচসমিট সমাধানটি আরও ভাল, এটি ব্যবহার করুন।

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