আমি ম্যাজেন্টোতে শিরোলেখীর হোলপঞ্চিং বাস্তবায়ন করেছি এবং আমি এটি প্রতি গ্রাহক ভিত্তিতে কাজ করে নিলেও, এটি আলাদা কার্ট আইটেমের গণনায়ও কাজ করে আমার এই এক স্তর আরও গভীর করে নেওয়ার ক্ষমতা প্রয়োজন need
এখানে আমার কোড।
class AD_PageCache_Model_Container_Header extends Enterprise_PageCache_Model_Container_Abstract {
protected function _getIdentifier() {
return $this->_getCookieValue(Enterprise_PageCache_Model_Cookie::COOKIE_CUSTOMER, '');
}
// public function getCacheKeyInfo() {
// $info = parent::getCacheKeyInfo();
// die('boo');
// $info['cart_count'] = Mage::helper( 'checkout/cart' )->getCart()->getItemsCount();
// return $info;
// }
protected function _getCacheId() {
//return 'CONTAINER_HEADER_' . md5($this->_placeholder->getAttribute('cache_id') . $this->_placeholder->getAttribute('cart_count') ) . '_' . $this->_getIdentifier();
return 'CONTAINER_HEADER_' . md5( $this->_placeholder->getAttribute('cache_id') . $this->_getIdentifier() );
}
protected function _renderBlock() {
$blockClass = $this->_placeholder->getAttribute('block');
$template = $this->_placeholder->getAttribute('template');
$block = new $blockClass;
$block->setTemplate($template);
return $block->toHtml();
}
}
ম্যাজেন্টোতে হোলপঞ্চিং থ্রেডগুলি থেকে আমি যা পড়ছি তা থেকে আমার বুঝতে পারা যায় যে এফপিসি ক্যাশে অনুরোধটি পরিবেশন করছে তখন ম্যাগ অ্যাপটি আরম্ভ করা হয়নি, সুতরাং মূলত স্থানধারক বৈশিষ্ট্য যুক্ত করার পদ্ধতিটি কাজ করতে পারে না, যেহেতু
Mage::helper( 'checkout/cart' )->getCart()->getItemsCount();
কাজ করবে না, তাই না?
এবং যদিও এটি কেমন হওয়া উচিত, তবে এটি মোটেও চলবে বলে মনে হয় না, যেমন আমি die()
সেখানে কল দিয়েছিলাম তবে কিছুই ঘটেনি।
তাহলে আমি কী মিস করছি? এবং আমি কীভাবে কার্ট আইটেমগুলি গণনা পুনরুদ্ধার করব যাতে এটি ক্যাশে আইডি তৈরি করতে ব্যবহার করা যায়?
অগ্রগতি: আমি পেয়েছি
Enterprise_PageCache_Model_Cookie::COOKIE_CART
তবে এটি শুধুমাত্র কার্ট আপডেটের পরে পরিবর্তন হয়। তার পরে এটি একই থাকে। এটি অদ্ভুত, সমাধানটির মতো এটি মনে হয় তবে এর আচরণ অন্যথায় বলে।
আমি সেশনে কার্ট আইটেম গণনা খুঁজে পাইনি। একমাত্র উপায় তাই আমি বর্তমানে এই কাজ করতে সেশনে কার্ট পরিমাণ সংরক্ষণ যখনই আপডেট এবং তারপর ব্যবহার করা হবে দেখতে _getIdentifier()
।
আমি দেখতে পেয়েছি যে পর্যবেক্ষকরা কার্টের জন্য বেমানান। অতিরিক্ত হিসাবে, আপডেটগুলি ইভেন্টগুলি প্রেরণ করা হয় তবে অপসারণের জন্য, এটি হয় না। সুতরাং আমি অনুমান করি যে আমি আমার পর্যবেক্ষককে উদ্ধৃতিটির মূল্য আপডেটের সাথে কোনওভাবে যোগ করতে পারি, যদি তা পর্যবেক্ষকের সাথে সামঞ্জস্য হয়?
এছাড়াও, আমি কার্ট (উদ্ধৃতি) পরিবর্তনগুলিতে ফুল পৃষ্ঠা ক্যাশে অবৈধতা পড়েছি তবে এটি হ্যান্ডলগুলি ব্যবহার করে
Enterprise_PageCache_Model_Cookie::COOKIE_CART
যা আমার ক্ষেত্রে ভাল কাজ করে না, যদিও আমি মনে করি সমস্যাটি এর মধ্যে রয়েছে। কি কিভাবে? আমি নিশ্চিত না.
এছাড়াও আমাদের চলমান EE এর বর্তমান সংস্করণটির এমনকি অ্যাডভান্সড ফোল্ডারও নেই
Model/Container
। আমি ব্যাবহার করছিEE 1.10.1.1
কোন পরামর্শ?
_getIdentifier
তাই ব্লকটি গ্রাহকদের কার্টের জন্য, বা এমনকি তাদের কার্টের আইটেমের সংখ্যাটিও অনন্য?