我正在爲Magento構建一個定製產品導入模塊,並且在任何方面都從未與Magento合作過。使用類別名稱查找是否存在類別
我有一個包含所有產品的CSV文件。其中一列包含應將產品分配的類別以斜線分隔。例如:
Jewelry/Rings/Diamond
Jewelry/Neckless/Diamond
等。
我遇到的問題是鑽石類別可以作爲任何數量的父類別的子類別存在。我的解決方案是打破路徑(即expload($ categoryPath,「/」))
使用第一個示例(珠寶/戒指/鑽石)我從商店根類別開始,並檢查它是否包含珠寶的子類別,如果它是我得到該子類別的ID並遞歸地通往終點線,或者至少這是理論。
我遇到的問題是在這裏...
$rootCategory = Mage::getModel('catalog/category') -> load($rootCategoryId);
$currentCategory = $rootCategory -> getChildrenCategories() -> loadByAttribute('name', $targetCategoryName);
這引發了我的錯誤......「呼籲在非對象的成員函數的getName()」 .. 。我假設因爲getChildrenCategories()正在返回一個集合,我無法調用它的loadByAttribute。
如果這對任何人都有意義,請讓我知道如何通過使用名稱從根類別加載子類別。我希望如果loadByAttribute無法加載類別(因爲它不存在),它會返回False,然後我可以創建類別。
針對Pavels建議我tryed:
$targetCategoryName = 'Jewelry';
$subCategories = $rootCategory
-> getChildrenCategories()
-> addAttributeToFilter('name',$targetCategoryName)
-> setCurPage(1)
-> setPageSize(1)
-> load();
$currentCategory = $subCategories
-> getFirstItem();
$ currentCategory的名稱是 '僞類'。這似乎是過濾器不工作。
感謝您的幫助,我仍然有一些問題,我添加到原來的職位。 –