2012-01-18 14 views
1

Magento CE 1.6を使って、リセラーのeコマース用のDVDやBlu-ray製品の映画情報を簡単に埋め込むプロジェクトが必要になります。私は私たちの目的には非常に適していると思われるRotten Tomatoes APIを使用するように設定されていますが、ここには次のようなものがあります:新商品ダイアログで映画のすべての詳細を入力する必要はなく、情報はヒントとしてムービー名を自動的に使用します(APIはこれを完全にサポートしています)。映画の名前のみを入力し、 作成し、定期的にAPIと更新を 情報の残りの部分を取得し、スクリプトを実行するには、管理者を持つMagentoの映画製品の自動記入情報

  1. :私はしかし、私たちは二つの手段によって、これを達成できることデータはDBに直接格納されます。私は 製品が保存されたときにDBの変更を見ていて、 のようにしていませんでした。

  2. ムービー名が入力されると、Magentoコードを編集して新しい製品フォームを自動入力できるようにするには、 がajaxである可能性があります。 Zendフレームワークは ではありません。

この問題はリグル角度から見ていますか?別のAPIがありますか?またはMagento拡張機能ですか?または別のeコマース?

答えて

2

私は少し異なるアプローチを提案します。管理者インターフェースを強化することは困難ですが、可能です。ここには簡単な方法があります。

方法#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 - 上記の操作を行いますが、カスタム拡張で

I常にスクリプトを超える拡張などがあります。彼らはより安全で強力です。拡張機能を使用すると、製品の管理者リストを持つことができ、ユーザーが好きなようにフィルタリングしたり、手動でビデオデータを取得する大量の操作を行うことができます。また、定期的に引っ張るためにcronジョブで設定することもできます。

+0

こんにちは、ありがとうございます!私はその拡張機能をチェックし、最善の解決策と思われます。私はフォローバックを投稿します。あなたのスクリプトは、私がそのように行くことを決めた場合にも私に出発点を与えます。 – acampos

+1

拡張子はまだ存在しません。あなたがやろうとしていることはカスタムエクステンションで一番良いと思うので、私は建物1について言及しました。 –

関連する問題