উত্তর:
এটি করার দ্রুততম উপায় হ'ল সরাসরি এই কোয়েরিটি চালানো।
DELETE FROM `catalog_product_entity` WHERE `sku` IN ('SKU1', 'SKU2', ...., 'SKU1000');
সবকিছু সুন্দরভাবে ক্যাসকেড করা উচিত। বৈশিষ্ট্য মানগুলি মুছে ফেলা হবে, বিভাগের সম্পর্কগুলি মুছে ফেলা হবে, আপসেলগুলি, ক্রসসেলগুলি এবং সম্পর্কিত এবং এই জাতীয়।
[সম্পাদনা] এটির
জন্য একটি ধরা আছে। এটি সন্ধানের জন্য এসটিডব্লিউকে ধন্যবাদ। পর্যালোচনা এবং রেটিংগুলি অনাথ থাকবে কারণ তাদের জন্য পণ্য সারণীতে কোনও বিদেশী কী নেই।
->delete()
তবে ইভেন্টগুলির জন্য যে কোনও কোড শোনাতে হবে। স্টক ম্যাজেন্টোতে দেখা যাচ্ছে যে পর্যালোচনা এবং রেটিংগুলি এতিম হবে (তাদের সম্পর্কিত পণ্যটি যখন হবে তখন তারা মুছে ফেলা হবে না)।
catalog_product_entity_*
টেবিলের entity_id
মাঠে মাঠে একটি এফকে রয়েছে catalog_product_entity.entity_id
। তাদের সুন্দরভাবে ক্যাসকেড করা উচিত।
মারিয়াসের প্রতি সমস্ত শ্রদ্ধা, তবে দয়া করে ডাটাবেসটির সাথে এড়িয়ে চলা সরাসরি এড়িয়ে চলুন না। হয়তো সংশ্লিষ্ট টেবিল স্বয়ংক্রিয়ভাবে আপডেট করা হবে, যদি Magento এবং আপনার সকল এক্সটেনশান আপনার মুক্তির বাগ বিনামূল্যে সব ঠিক জায়গায় আছে। তবে যদি তা না হয় তবে এই ধরণের জিনিসটি আপনার সাইটটিকে ধ্বংস করতে পারে।
পরিবর্তে, আপনি ম্যাজেন্টোর নিজস্ব সিএসভি আমদানি বৈশিষ্ট্যটি ব্যবহার করতে পারেন।
আপনার এসকিউগুলি কেবল একটি ফাইলে তালিকাভুক্ত করুন:
sku
ABC1
ABC2
ABC3
... ইত্যাদি। তারপরে CSV ফাইল হিসাবে সংরক্ষণ করুন।
তারপরে, সিস্টেম> আমদানি / রফতানি> আমদানিতে, সত্তার প্রকার: পণ্য এবং আমদানি আচরণ নির্বাচন করুন: সত্তা মুছুন এবং এই ফাইলটি আমদানি করুন। এবং এটাই!
Mage_ImportExport_Model_Import_Entity_Product::_deleteProducts()
)
আপনি প্রোগ্রামগতভাবে এটি করতে পারেন। মুছে ফেলার জন্য সমস্ত স্কাসকে তালিকাবদ্ধ করে একটি skustodelete.csv তৈরি করুন এবং এর পরে আরও এগিয়ে যাওয়ার কোডটি এখানে
require_once 'app/Mage.php';
Mage :: app("default")->setCurrentStore(Mage_Core_Model_App :: ADMIN_STORE_ID);
$skuAll = array();
$file_handle = fopen("skustodelete.csv", "r");
$catalog = Mage::getModel('catalog/product');
while (!feof($file_handle)) {
$line_of_text = fgetcsv($file_handle, 1024);
$allSku = $line_of_text[0];
$product = $catalog->loadByAttribute('sku', $allSku);
try {
$product->delete();
echo "Product with ID: " . $product->getId() . " Deleted Successfully". PHP_EOL;
} catch (Exception $e) {
echo "Product with ID: " . $product->getId() . "cannot be deleted" . PHP_EOL;
}
}
echo "Finish Delete";
কোনটিই কোড উপায় নয়
প্রশাসকের অধীনে Manage Products
আপনার সমস্ত পণ্য সহ একটি গ্রিড পাবেন find বলা হয় একটি কলাম SKU
। এখানে আপনি মানের উপর নির্ভর করে আপনার পণ্য ফিল্টার করতে পারেন।
তারপরে আপনি একবার এসকিউ দ্বারা ফিল্টার করলে আপনি মুছে ফেলতে চান এমন সমস্ত আইটেম নির্বাচন করতে বাম দিকে চেকবক্সগুলি ব্যবহার করতে পারেন।
লক্ষ্য করুন select all
যা সম্পূর্ণ গ্রিড সব আইটেম নির্বাচন করব এবং select visible
যা শুধুমাত্র গ্রিড বর্তমান পৃষ্ঠাতে আইটেম নির্বাচন হবে।
আপনি যে আইটেমগুলি নির্বাচন করেছেন তা চয়ন করার পরে আপনি গ্রিডের উপরের ডানদিকে ভর ক্রিয়া বোতামটি ব্যবহার করতে পারেন এবং মুছুন বিকল্পটি নির্বাচন করতে পারেন।
এটি আপনাকে এই আইটেমগুলি মুছতে চান তা নিশ্চিত করার জন্য আপনাকে অনুরোধ করবে। এই পপ-আপটিতে হ্যাঁ নির্বাচন করার পরে এটি আপনার আইটেমগুলি মুছতে অগ্রসর হবে। আপনার সূচক সেটিংসের উপর নির্ভর করে আপনাকে এই প্রক্রিয়াটির পরে পুনরায় সূচি চালাতে হতে পারে।
কেভিন এস, আপনি সিএসভি ফাইল দ্বারা পণ্য মুছতে পারেন। শুধু বিলো পদক্ষেপ অনুসরণ করুন
ধাপ 1 :
একটি সিএসভি ফাইল তৈরি করুন এবং যে সিস্টেমটি আপনি সিস্টেম থেকে মুছতে চান তা শেষ করুন। ফাইলটিকে skus.csv হিসাবে নাম দিন
ধাপ ২ :
আপনার মূল ডিরেক্টরিতে একটি পিএইচপি ফাইল তৈরি এবং প্রতিস্থাপন করুন। তারপরে নিম্নলিখিত কোডটি অতীত করুন
require_once '../app/Mage.php';
Mage :: app("default") -> setCurrentStore( Mage_Core_Model_App :: ADMIN_STORE_ID );
$skuAll =array();
$file_handle = fopen("skus.csv", "r");
while (!feof($file_handle) ) {
$line_of_text = fgetcsv($file_handle, 1024);
$allSku = $line_of_text[0];
}
$products = Mage::getResourceModel('catalog/product_collection')
->addAttributeToSelect('*')
->addAttributeToFilter(
'sku', array('in' => $allSku)
)
->load();
if(is_array($products))
{
foreach ($products as $key => $pId)
{
try
{
$product = Mage::getModel('catalog/product')->load($pId)->delete();
echo "successfully deleted product with ID: ". $pId ."<br />";
}
catch (Exception $e)
{
echo "Could not delete product with ID: ". $pId ."<br />";
}
}
}
দ্রষ্টব্য: এই কোডটি চালানোর আগে আমি আপনাকে প্রস্তাব দিয়েছিলাম আপনাকে অবশ্যই ব্যাকআপ নিতে হবে। আমি আশা করি এটি আপনাকে সাহায্য করবে।
কারণ তালিকা সারণী
ক্যাটালগ_প্রডাক্ট_এনটিটির বিদেশী কী।
সুতরাং ক্যাটালগ_প্রডাক্ট_এনটিটিতে কোনও রেকর্ড মুছে ফেললে উপরের টেবিলগুলির কিছু রেকর্ডও মুছে ফেলা হবে।
কোড (মারিয়াসের উত্তর বাস্তবায়ন করুন) সত্তা_আইডি থাকা সমস্ত পণ্য মুছুন <= 18069:
$adapter = $setup->getConnection("catalog_write");
$where = array(
'entity_id <= ?' => '18069'
);
$tableCatalogProduct = Mage::getModel("catalog/product")->getResource()->getEntityTable();
$adapter->delete($tableCatalogProduct, $where);
$tableRating = Mage::getModel("rating/rating")->getResource()->getMainTable();
$adapter->delete($tableRating, $where);
$tableRating = Mage::getModel("review/review")->getResource()->getMainTable();
$adapter->delete($tableRating, $where);