Еще вариант, но не для решения, а для обхода проблемы. Использовать вместо ZendMail другой почтовый плагин - PHPMailer. Встраивать, конечно, придется вручную.
@z0rg, ваши ответы вызывают только больше вопросов =) Причем тут импорт? Это как-то относится к текущему вопросу? Продукт, речь о котором идет, является конф. продуктом? Статус out of stock у этого продукта потому, что все симпл-продукты отключены... после импорта?
> Да кстати через консоль тоже самое, не получается корректно переиндексировать.
Хм... у меня было подозрение, что это из-за того, что не выполнился какой-нибдуь dispatchEvent, но... раз при индексации через консоль проблема все еще присутствует, то... видимо, дело в чем-то еще.
Еще напишите, получается ли корректно проиндексировать, если использовать переиндексацию через /shell/indexer.php, т.е. через
$ php shell/indexer.php reindexall
Мне хватает Mage::log($someVariable), вывод которого осуществляется в файл /var/log/system.log. При суловии, что логирование включено в Админке:
Admin > System > Configuration > Developer > Log Settings
Использую для того, чтобы понять какие данные содержатся в переменной.
Также часто использую php-шные функции для изучения объектов:
- get_class
- get_class_methods
Пример использования:
Mage::log(get_class_methods($someObject));
Про контроллер объясню на примере. Допустим, у нас урл: my.magento1901.com/index.php/admin/catalog_product...
Как по этому пути понять, какой код отвечает за его обработку? У Магенты три "координаты" в урле для определения местоположения обработчика данных:
1. Модуль (папка модуля) - в данном случае это "admin", папка этого модуля находится здесь: /app/code/core/Mage/Adminhtml
2. Контроллер (файл контроллера) - в данном случае это "catalog_product_attribute", файл находится здесь: /app/code/core/Mage/Adminhtml/controllers/Catalog/Product/AttributeController.php
3. Действие или Action (метод/функция контроллера) - в данном случае это "edit", находится в файле контроллера под названием public function editAction()
А дальше идут просто параметры вида param/value, т.е.
attribute_id = 496
key = 22cd...
Ну и конечно не забываем поиск по файлам, используя какую-нибудь IDE. Я использую Geany (бесплатный и кросплатформенный). Раньше использовал NetBeans.
Если прямо отвечать на ваш вопрос,
> В каком файле(классе) описаны ключевые атрибуты товара в magento?
то ни в каком. Все атрибуты описаны в базе данных.
> То что ручками легко я понимаю :)задача не из админки сделать, а средствами подключаемого модуля. Задача написать модуль.
Тогда помните, что для того, чтобы добавить новый атрибут к продукту программно, вам нужно (также программно):
1. Создать атрибут (появится в Manage Attributes)
2. Добавить его в определенный набор Атрибутов (появится в Manage Attribute Sets)
Поэтому советую начать с анализа операций (дебага) каждого из двух процессов (и поиска инфы по этим процессам в сети): включаем логирование, смотрим какой контроллер отвечает за обработку, смотрим внутри куда и как передаются данные, используя Mage::log() и пр. в том же духе.
Либо ищите бесплатные приложения на магенто-коннект, которые имеют хотя бы частично нужный вам функционал. Анализируйте их код, меняйте под себя.
В данном случае, вместо $this->getUrl() вам следует использовать Mage::getUrl(). Конструкцию $this можно использовать только внутри описания класса (основы ООП).
> 1024M конечно маловато для продакшена
Не согласен с этим пунктом. Из собственного опыта настройки Магенты на сайтах наших клиентов - 512Мб вполне хватает для прода (в большинстве случаев). С остальной частью комментария согласен.
@creemaxus > выбор шоколадки, форма , цвет шоколадки это категории и подкатегории, а сами наполнители - уже непосредственно товары
Не согласен с вами. В вашем примере разработчики пошли по пути визуализации имеющихся у товара опций, полностью кастомизировав "галочки и прочее". У них товар - шоколадка с опциями:
1. Chape
- Bar
- Heart
2. Base
- Belgian dark chocolate
- Belgian milk chocolate
- Belgian white chocolate
3. Toppings
- ...
Последнее свойство разделено на подкатегории для удобства поиска. Ага, такое можно провернуть только через Bundle Products, что они и сделали (судя по исходному коду): https://www.google.ru/search?q=magento+create+bund...
Они просто разделили процесс выбора на шаги, тогда как в магенте по умоланию выбор всех опций осуществляется на одной странице.
У магенты для вас только каркас. Остальное придется допиливать (или искать расширения, которые этот процесс облегчат максимально). Сомневаюсь, что на других CMS будет полностью готовое решение, так как идет заточка под имеющиеся опции товара, визуальное представление которых вы вряд ли обнаружите в коробочном решении CMS. Но... это всего лишь мои сомнения =)