Intereting Posts
Создайте прозрачный png-файл с помощью PHP Можно ли моделировать закрытия в PHP 5.2.x, не используя глобальные переменные? Проблема с аутентификацией SMTP в PHP с помощью PHPMailer, с Pear Mail работает Как создать веб-интерфейс XMPP с помощью PHP и JQuery? php простая проблема с XML-анализом на недопустимые теги Постоянный memcached в PHP – серверный пул растет до curr_connections 10 preg_repalce соответствует частичным данным с правильным регулярным выражением Проверка электронной почты через электронную почту и PHP? Должен ли я использовать текстовый файл или базу данных для счетчика посетителей PHP? Встроенный Javascript-интерпретатор для php Изображение dompdf не отображается в файле лезвия laravel Amazon SES Ошибка получения учетных данных с сервера метаданных профиля экземпляра. (Ошибка клиента: 404) Как получить тот же самый $ _SERVER как на локальном, так и на живом сервере Как получить значение поля ввода с помощью PHP Сделайте страницы отображения Chrome даже по 500 или 404 кодам (ведите себя как Firefox)

Magento: как загрузить продукт по всем его данным, поскольку он используется в админ

Я пытаюсь получить данные опций пакета. используя это: $product->getBundleOptionsData Мне нужно использовать это, поскольку я пытаюсь изменить данные программно, и я хотел бы сделать это так, как это было бы удобно в админе.

Однако, когда я var_dump результат указанной выше функции, я получаю NULL а на стороне администратора в модели продукта модели пакета я правильно получаю данные.

Когда я var_dump $product в моем собственном файле, я получаю гораздо более короткие данные, чем когда я var_dump в функции сохранения типа модели пакета.

что мне нужно сделать, чтобы загрузить все данные продукта, поэтому я могу использовать getBundleOptionsData . Я смотрел в нескольких файлах и искал в googled, но не могу найти ответ.

Наконец, я заставил его работать, чтобы получить данные параметров пакета, чтобы я мог манипулировать им. Я нашел основной код в модели пула объектов magento для класса duplicateProduct: мне нужно было добавить add_id (осторожно, чтобы этого не было)

вот код на последнем этапе.

 $product->getTypeInstance(true)->setStoreFilter($product->getStoreId(), $product); $optionCollection = $product->getTypeInstance(true)->getOptionsCollection($product); $selectionCollection = $product->getTypeInstance(true)->getSelectionsCollection( $product->getTypeInstance(true)->getOptionsIds($product), $product ); $optionCollection->appendSelections($selectionCollection); $optionRawData = array(); $selectionRawData = array(); $i = 0; foreach ($optionCollection as $option) { $optionRawData[$i] = array( 'option_id' => $option->getOptionId(), //my addition. important otherwise, options going to be duplicated 'required' => $option->getData('required'), 'position' => $option->getData('position'), 'type' => $option->getData('type'), 'title' => $option->getData('title')?$option->getData('title'):$option->getData('default_title'), 'delete' => '' ); foreach ($option->getSelections() as $selection) { $selectionRawData[$i][] = array( 'product_id' => $selection->getProductId(), 'position' => $selection->getPosition(), 'is_default' => $selection->getIsDefault(), 'selection_price_type' => $selection->getSelectionPriceType(), 'selection_price_value' => $selection->getSelectionPriceValue(), 'selection_qty' => $selection->getSelectionQty(), 'selection_can_change_qty' => $selection->getSelectionCanChangeQty(), 'delete' => '' ); } $i++; } $product->setBundleOptionsData($optionRawData); //changed it to $product $product->setBundleSelectionsData($selectionRawData); //changed it to $product 

вы можете либо изменить исходные данные в optionsrawdata. или getBundleOptionsData. и то же самое для другого.