দ্রষ্টব্য: আপনি যদি পিএইচপি কোড দ্বারা পণ্যগুলি সম্পাদনা করে থাকেন তবে এগুলি পরে অ্যাডমিনে পুনরায় ইনডেক্স করুন, নীচে আমার মতো দেখাচ্ছেন না কেন তা চেষ্টা করার জন্য আপনার নিজের ঘন্টা বাঁচান ...
আমি চেনাশোনাগুলিতে ঘুরে বেড়াচ্ছি যে কীভাবে is_salable
কোনও পণ্যের জন্য সেট করা আছে তা নিয়ে কাজ করার চেষ্টা করছি এবং এখন কেন আমার পণ্যগুলি প্রদর্শিত হচ্ছে work
কোডটিতে আমি কেবলমাত্র একটি জায়গা পেয়েছি যা এটি সেট করে:
$salable = $this->isAvailable();
তবে কীভাবে বা কোথা থেকে এটি পাওয়া যায় সে সম্পর্কে আমি কাজ করতে পারি না, যখন আমি isAvailable
এটি অনুসরণ করি তখন মনে হয় এটি প্রায় ফিরে ফিরে আসে ...
/app/code/core/Mage/Catalog/Model/Product.php
public function isSalable()
{
Mage::dispatchEvent('catalog_product_is_salable_before', array(
'product' => $this
));
$salable = $this->isAvailable();
$object = new Varien_Object(array(
'product' => $this,
'is_salable' => $salable
));
Mage::dispatchEvent('catalog_product_is_salable_after', array(
'product' => $this,
'salable' => $object
));
return $object->getIsSalable();
}
নিম্নলিখিতটি - এটি-> উপলভ্য () এখান থেকে এটি কয়েকটি লাইনে চলেছে:
**public function isAvailable()
{
return $this->getTypeInstance(true)->isSalable($this);
}**
এরপরে এটি অ্যাপ্লিকেশন / কোড / কোর / ম্যাজ / ক্যাটালগ / মডেল / পণ্য / প্রকার / কনফিগারযোগ্য.এফপি এর আইসকেলেবল
public function isSalable($product = null)
{
$salable = parent::isSalable($product);
if ($salable !== false) {
$salable = false;
if (!is_null($product)) {
$this->setStoreFilter($product->getStoreId(), $product);
}
foreach ($this->getUsedProducts(null, $product) as $child) {
if ($child->isSalable()) {
$salable = true;
break;
}
}
}
return $salable;
}
যা পিতামাতাকে কল করে: / অ্যাপ্লিকেশন / কোড / কোর / ম্যাজ / চ্যাটালগ / মডেল / প্রোডাক্ট / টাইপ / অ্যাবস্ট্র্যাক্ট.এফপি এর আইস্যাবলযোগ্য:
public function isSalable($product = null)
{
$salable = $this->getProduct($product)->getStatus() == Mage_Catalog_Model_Product_Status::STATUS_ENABLED;
if ($salable && $this->getProduct($product)->hasData('is_salable')) {
$salable = $this->getProduct($product)->getData('is_salable');
}
elseif ($salable && $this->isComposite()) {
$salable = null;
}
return (boolean) (int) $salable;
}
কোনটি কেবল is_saleable মানটিতে ডেটা কল / পেতে পারে?!?! আমি কি ঠিক ট্র্যাক করেছি? এই মানটি কোথা থেকে আসছে?
আমি_সেসেবলের জন্য আমার ইনস্টলেশনটিতে একটি পুনরাবৃত্ত গ্রিপ জারি করেছি, অবশ্যই এটি যেখানে সেট করা আছে সেখানে কোনও লাইন প্রদর্শন করা উচিত তবে আমি এখনই কোনও দেখতে পাচ্ছি না:
grep -r is_salable *
app/code/core/Mage/CatalogInventory/Model/Stock/Status.php: $object = new Varien_Object(array('is_in_stock' => $product->getData('is_salable')));
app/code/core/Mage/XmlConnect/Block/Wishlist.php: $itemXmlObj->addChild('is_salable', (int)$item->getProduct()->isSalable());
app/code/core/Mage/XmlConnect/Block/Catalog/Product.php: $item->addChild('is_salable', (int)$product->isSalable());
app/code/core/Mage/XmlConnect/Block/Cart/Crosssell.php: $itemXmlObj->addChild('is_salable', 0);
app/code/core/Mage/XmlConnect/Block/Cart/Crosssell.php: $itemXmlObj->addChild('is_salable', (int)$product->isSalable());
app/code/core/Mage/Catalog/Model/Product.php: Mage::dispatchEvent('catalog_product_is_salable_before', array(
app/code/core/Mage/Catalog/Model/Product.php: 'is_salable' => $salable
app/code/core/Mage/Catalog/Model/Product.php: Mage::dispatchEvent('catalog_product_is_salable_after', array(
app/code/core/Mage/Catalog/Model/Product.php: if ($this->hasData('is_salable')) {
app/code/core/Mage/Catalog/Model/Product.php: return $this->getData('is_salable');
app/code/core/Mage/Catalog/Model/Product/Type/Abstract.php: if ($salable && $this->getProduct($product)->hasData('is_salable')) {
app/code/core/Mage/Catalog/Model/Product/Type/Abstract.php: $salable = $this->getProduct($product)->getData('is_salable');
পাওয়া গেছে:
grep -r setIsSalable *
app/code/core/Mage/CatalogInventory/Model/Stock/Status.php: $product->setIsSalable($stockStatus);
app/code/core/Mage/CatalogInventory/Model/Stock/Status.php: $product->setIsSalable($status);
এটি সেটসেইসলেবল ছিল যা আমি কেবল সেট আইসসেলেবলের চেয়ে সন্ধান করার জন্য ভাবি / জানি না ।