আমি এই প্রশ্নটি খুঁজে পেয়েছি, একই ভাবছি। এবং যদি অন্য কারও কারও কাছে এটির প্রয়োজন হয়, আমি নিজের অনুসন্ধান এখানে পোস্ট করব।
আমি সম্পূর্ণ পণ্য লোড না করে পণ্যের URL পাওয়ার দুটি পদ্ধতি পেয়েছি। যেহেতু আমি একটি ধীর সার্ভারে কাজ করছি, আমার দ্রুততম লোডিং পদ্ধতিটি খুঁজে পাওয়া দরকার।
প্রথম পদ্ধতি:
প্রথমটি হ'ল পণ্য আইডির উপর ভিত্তি করে একটি পণ্য সংগ্রহ:
$_item = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect('product_url')
->addAttributeToFilter('entity_id', $productId)
->addUrlRewrite()
->load();
foreach($_item as $product){
echo $product->getProductUrl();
}
// returns string "http://www.your-domain.com/[category]/[product_url]"
দ্বিতীয় পদ্ধতি:
দ্বিতীয় পদ্ধতি, কল্পনা মেঠার পদ্ধতিটি ব্যবহার করে এই কোডটি হবে:
Mage::getResourceSingleton('catalog/product')
->getAttributeRawValue($productId, 'url_key', Mage::app()->getStore());
// returns string "product-url-like-this"
এই পদ্ধতির জন্য, আপনি হয় ব্যবহার করতে পারেন 'url_key'
বা 'url_path'
। যদিও আমি পার্থক্যটি খুঁজে পাইনি।
পদ্ধতির মধ্যে পার্থক্য:
প্রথম পদ্ধতিটিতে কিছুটা বেশি সময় লাগে (প্রায় 15% সময় অতিরিক্ত)। তবে দ্বিতীয় পদ্ধতিটি কেবলমাত্র URL এর চূড়ান্ত অংশটি দেয়। এর অর্থ হ'ল যদি দোকানটি URL টি বিভাগে বিভাগটি ব্যবহার করে তবে এটি কাজ করবে না, যেহেতু সেই অংশটি দেখানো হয়নি। আমি যে দোকানটিতে কাজ করছিলাম সে ক্ষেত্রে এটি ছিল।