কাস্টম বিকল্পের পাঠ্যের ক্ষেত্র পরিবর্তন হলে দাম গণনা করার জন্য ম্যাজেন্টো ইভেন্ট


10

আমি দুটি কাস্টম পাঠ্য ক্ষেত্র সহ একটি পণ্য তৈরি করার চেষ্টা করছি: দৈর্ঘ্য এবং প্রস্থ। যখন ব্যবহারকারী দৈর্ঘ্য এবং প্রস্থ উভয় প্রকারে টাইপ করেন, কাস্টম সূত্রের মাধ্যমে দামটি গণনা করা দরকার।

আমি একজন পর্যবেক্ষকের সাথে সংযোগ স্থাপনের জন্য সঠিক ঘটনাটি অনুসন্ধান করার চেষ্টা করছি - কেউ কি জানেন যে এটি কী হতে পারে?

আমি যা জানি এবং চেষ্টা করেছি তা এখানে

1) পণ্য দর্শনে কাস্টম ফিল্ড পাঠ্য বাক্সটিতে একটি অন্বেষণ ইভেন্ট রয়েছে যা আমি এখনও পর্যবেক্ষক ইভেন্টের মাধ্যমে কীভাবে ট্যাপ করব তা নির্ধারণ করতে পারি নি - "opConfig.reloadPrice ()

2) আমি যদি ইভেন্ট বিক্রয়_উক্ত_এডিডি_ইটিমে কোনও পর্যবেক্ষক তৈরি করি, তবে আমি যখন কার্টে যুক্ত হব তখন সূত্রের মাধ্যমে দামটি পরিবর্তন করতে পারি। এই পদ্ধতিটি সহ আমার এখনও কার্টে যুক্ত হওয়ার আগে পণ্য দর্শনে এটি পরিবর্তন করার একটি উপায় প্রয়োজন।

3) আমি ইভেন্ট ক্যাটালগ_প্রডাক্ট_জেট_ফাইনাল_প্রাইসটি চেষ্টা করে দেখেছি তবে পণ্য পৃষ্ঠাটি লোড হওয়ার পরে এটি কেবল আগুন লাগবে, তাই কোনও পণ্যের দৈর্ঘ্য বা প্রস্থ যুক্ত হওয়ার পরে এটি পুনরায় আগুন লাগবে না।

কোন ধারনা ব্যাপকভাবে প্রশংসা হবে!


এই Fabian এর কি আপনাকে সাহায্য করেছে? যদি তাই হয় তবে আপনি দয়া করে গ্রহণ বা স্পষ্ট করে বলতে পারেন যাতে আমরা সহায়তা করতে পারি?
ফিলিউঙ্কল

উত্তর:


2

আমি এই ব্যবহারের জন্য ব্যবহার করেছি sales_quote_collect_totals_before:

/**
 * Set prices
 *
 * @param Varien_Event_Observer $observer
 */
public function salesQuoteCollectTotalsBefore(Varien_Event_Observer $observer)
{
    /* @var $quote Mage_Sales_Model_Quote */
    $quote = $observer->getQuote();
    foreach ($quote->getAllItems() as $quoteItem) {
        if (is your product of choice) {
            /* @var $quoteItem Mage_Sales_Model_Quote_Item */
            $product = $quoteItem->getProduct();
            $price = whatever formula you want to use;
            $product->setPrice($price);
        }
    }
}

ক্লায়েন্টের পক্ষে, আপনি দামটি আপডেট করতে কেবল কয়েকটি লাইন জেএস ব্যবহার করতে পারেন?


2

catalog_product_get_final_priceহ'ল সার্ভার সাইড ইভেন্টটি, কেবলমাত্র পণ্য পৃষ্ঠাটি লোড হওয়ার পরে তা নয়, যখন পণ্যটি কার্টে যুক্ত হয় fired এক্ষেত্রে আপনার কাছে নির্বাচিত সমস্ত কাস্টম বিকল্পগুলি এতে উপলব্ধ রয়েছে:

$observer->getProduct()->getCustomOption($customOptionName);

(আরও দেখুন: কোনও উপায় আছে যেখানে ব্যবহারকারী শুল্কের চেয়ে কাস্টম পছন্দসই দাম সেট করে কোনও পণ্যের জন্য কার্টে এগিয়ে যেতে পারে? )


পণ্যের পৃষ্ঠাতে থাকা অবস্থায় দামটি পুনরায় গণনা করা অন্য বিষয় এবং এর জন্য জাভাস্ক্রিপ্ট দরকার। reloadPriceহুক করার সঠিক ফাংশন, আমি এটি এর মতো আরও প্রসারিত করব:

Product.prototype.reloadPrice = Product.prototype.reloadPrice.wrap(function(callOriginal) {
    if (should_be_calculated_based_on_length_and_with) {

        // copy the original reloadPrice function here and change how `price` is calculated

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