Автозаполнение информации для кинопродукции в Magento - PullRequest
1 голос
/ 18 января 2012

Я работаю с Magento CE 1.6 в проекте, где нам нужен простой способ заполнить информацию о фильме на DVD и продуктах Blu-Rays для электронной коммерции посредников. Я настроен на использование Rotten Tomatoes API, который кажется очень подходящим для наших целей, но вот в чем дело: мы не хотим вводить каждую деталь фильма в диалоге «Новый продукт», наоборот, мы хотим получить информация автоматически использует название фильма в качестве подсказки (API прекрасно это поддерживает). Я думал, что мы можем достичь этого двумя способами:

  1. Наличие администратора для ввода только названий фильмов и периодически создавайте и запускайте скрипт, который выбирает остальную часть Информация с API и обновляет данные непосредственно в БД. Я был наблюдать за изменениями БД при сохранении продукта и не хотел бы сделай это.

  2. Редактирование кода Magento для автоматического заполнения формы нового продукта, возможно с ajax, после ввода названия фильма. Zend Framework не является моя сильная и, кажется, тоже довольно тяжелая.

Я вижу эту проблему с правого угла? Может быть, есть другой API? Или расширение Magento? Или другая электронная коммерция?!

1 Ответ

2 голосов
/ 20 января 2012

Я бы предложил немного другой подход.Улучшение интерфейса администратора сложно, но возможно.Вот более простой способ.

Метод № 1 - Быстрый и легкий

Создайте себе скрипт, который будет проходить через список продуктов.Вы можете выбрать их по типу атрибута, категории или даже просто выбрать их все!Затем циклически просматривайте эту коллекцию и для каждого продукта возьмите заголовок, сделайте запрос API фильма и установите атрибуты продукта.Затем сохраните продукт и перейдите к следующему.Примерно так:

Примечание. Обязательно создайте свои пользовательские атрибуты в админке и присвойте их набору атрибутов.

<?php
require_once 'app/Mage.php';
umask(0);
Mage::app('default');

function getVideoDataFromAPI($title)
{
  // get your data from the API here...
  return $data;
}

$collection = Mage::getResourceModel('catalog/product_collection')
  ->addAttributeToFilter('attribute_set_id', $yourAttributeSetId)
  ->addAttributeToFilter('year', ''); // <-- Set a field here that will be empty by default, and filled by the API. This is '' because it won't be null.

foreach ( $collection->getAllIds() as $id ) {
  $product = Mage::getModel('catalog/product')->load($id);
  $videoData = getVideoDataFromAPI($product->getName());
  if ( empty($videoData) ) { continue; }
  $product->setYear($videoData['year'])
    ->setRating($videoData['rating'])
    ->save();
}
?>

Метод № 2 - выполните вышеизложенное,но в пользовательском расширении

мне всегда нравятся расширения над сценариями.Они более безопасные и более мощные.С расширением вы можете иметь список продуктов администратора, можете фильтровать их по своему усмотрению и выполнять массовые действия по извлечению видеоданных вручную.Вы также можете настроить его на работу cron для регулярного использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...