0

次のスクリプトを使用しています

http://www.sonassi.com/knowledge-base/magento-kb/mass-update-stock-levels-in-magento-fast/

テストCSVファイルとうまく連携します。

私の POS は CSV ファイルを作成しますが、別の見出しが付けられるため、スクリプトが機能しません。プロセスを自動化したい。ヘッダーの名前を自動的に変更する方法はありますか?

スクリプトでは、ヘッダーが

「sku」、「数量」</p>

私のCSVは

「アイテム」、「在庫」</p>

これら 2 つの異なる名前をスクリプト内でリンクして、スクリプトが ITEM を sku として、STOCK を qty として認識する方法はありますか?

4

3 に答える 3

0

通常、PHP は、SSH アクセス権を持っているという事実を認めるファイル操作に最適な方法ではありません。

次のコマンドを実行することもできます (perl がインストールされている場合、ほとんどのセットアップではこれがデフォルトです...):

perl -pi -e 's/ITEM/sku/g' /path/to/your/csvfile.csv
perl -pi -e 's/STOCK/qty/g' /path/to/your/csvfile.csv
于 2012-06-26T07:45:40.277 に答える
0

フォーマットされていないファイルである yourfilename.csv を入力して、php スクリプトを作成する必要があります。

 $file = file_get_contents('yourfilename.csv');
 $file = str_replace('ITEM', 'sku', $file);
 $file = str_replace('STOCK', 'qty', $file);
 file_put_contents('yourfilename.csv', $file);

以下のリンクは参考用です。

PHP http://forums.phpfreaks.com/index.php?topic=327900.0を使用して、フラット ファイル内の値を検索して置換します。

それが役に立てば幸い。

乾杯

于 2012-06-26T01:04:33.910 に答える
0

生のSQL方法を使用して数量を更新する場合は、次のような関数を作成できます。

function _updateStocks($data){
    $connection     = _getConnection('core_write');
    $sku            = $data[0];
    $newQty         = $data[1];
    $productId      = _getIdFromSku($sku);
    $attributeId    = _getAttributeId();
 
    $sql            = "UPDATE " . _getTableName('cataloginventory_stock_item') . " csi,
                       " . _getTableName('cataloginventory_stock_status') . " css
                       SET
                       csi.qty = ?,
                       csi.is_in_stock = ?,
                       css.qty = ?,
                       css.stock_status = ?
                       WHERE
                       csi.product_id = ?
                       AND csi.product_id = css.product_id";
    $isInStock      = $newQty > 0 ? 1 : 0;
    $stockStatus    = $newQty > 0 ? 1 : 0;
    $connection->query($sql, array($newQty, $isInStock, $newQty, $stockStatus, $productId));
}

csv 行データを引数として渡して、上記の関数を呼び出します。これは単なるヒントです。

詳細を含む完全に機能するコードを取得するには、次のブログ記事を参照してください

お役に立てれば!

于 2012-06-26T09:10:40.223 に答える