0

クライアントの 1 つで、oscommerce から magento にデータをインポートしています。

製品、カテゴリ、および顧客を含むすべてのデータが正常にインポートされました。最後に、カテゴリを設定した後に製品のソート番号を追加します。

次の手順が必要です。

商品をインポート→商品にカテゴリを割り当て→oscommerceテーブルから商品の並び順(表示順)を設定します。

いろいろ検索しましたが、特定のカテゴリで商品の並び順を設定する方法が見つかりませんでした。

どんな助けでも大歓迎です。

4

1 に答える 1

1

カテゴリ内の製品の並べ替え順序は、デフォルトで、[カテゴリの管理] セクションの [カテゴリ製品] タブの位置列によって決定されます。

カテゴリごとに商品の並べ替え順序を一括更新する必要があると思います。SQLクエリを使用してデータベースのテーブル「catalog_category_product」の「position」列を更新できるphpスクリプトを作成する必要があると仮定します。

ファイルは、magento インストールのルート ディレクトリに保持できます。以下のコードはアイデアを提供するためのものです。要件に従ってコードを完成させ、ブラウザからファイルをヒットするには、コードを変更/追加/削除する必要があります。

<?php

$mageFilename = 'app/Mage.php';
require_once $mageFilename;
Mage::setIsDeveloperMode(true);
ini_set('display_errors', 1);
umask(0);
Mage::app('admin');
Mage::register('isSecureArea', 1);
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);

set_time_limit(0);
ini_set('memory_limit','1024M');

/***************** UTILITY FUNCTIONS ********************/
function _getConnection($type = 'core_read'){
    return Mage::getSingleton('core/resource')->getConnection($type);
}

function _getTableName($tableName){
    return Mage::getSingleton('core/resource')->getTableName($tableName);
}

function _updatePosition($position, $categoryId, $productId){
    $connection     = _getConnection('core_write');
    $sql = "UPDATE " . _getTableName('catalog_category_product') . " ccp
                SET  ccp.position = ?
            WHERE  ccp.category_id = ?
            AND ccp.product_id = ?";
    $connection->query($sql, array($position, $categoryId, $productId));
} 

この助けを願っています!

于 2013-11-11T18:48:30.210 に答える