サイトカレンダをスキップ

«
2017年 12月
»
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

-

ログイン

ログイン

QRコード

QR code


 掲示板目次 > Magento全般 > その他 新規投稿 返信投稿
 Dataflow - Profiles でのデータインポートについて。
 
satsuki
 2015年12月21日 19:10 JST (参照数 2094回)  
掲示板 Chatty
Chatty

状態: オフライン


登録日: 2014年6月25日
投稿数: 65
こんにちは、Satsukiと申します。
いつもいろいろ教えて頂いてありがとうございます。

ひとつ前のトピックで質問させて頂いたデータ更新不可の件について、
サーバーサポートに問い合わせするなどして調べていましたが、解決しないので、
phpadminでインポートされたデータを確認しましたところ、
Dataflow - Profilesでインポートしたデータのみ商品名や、詳細フィールドが2つずつできていました。
データ更新ができないように見えたのは、データインポートした後、adminで商品名を変更しても、
2つのフィールドのうち1つのみが更新され、フロントエンドにはもう一つの更新されていないフィールドのデータが表示されているからでした。

adminから手動で入力した商品データは商品名フィールドは1つのみです。
Dataflow - Profilesにバグなどあるのでしょうか?
テーマのサポートにも問い合わせしておりますが、どなたかご存知の方、ご教示お願いいたします。


 
プロフィール メール
引用して書き込む
satsuki
 2015年12月22日 22:35 JST  
掲示板 Chatty
Chatty

状態: オフライン


登録日: 2014年6月25日
投稿数: 65
上記内容の訂正です。
「フィールドが2つできている」と書きましたが、「同一フィールド内にデータが2つできている」の間違いでした。
以上よろしくお願いいたします。


 
プロフィール メール
引用して書き込む
satsuki
 2016年2月 1日 18:38 JST  
掲示板 Chatty
Chatty

状態: オフライン


登録日: 2014年6月25日
投稿数: 65
自己レスです。

Dataflow - Profiles のデータインポートが上手く行かない件、原因解明できなかったため、
他の方法を調べていたところ、Dataflowではなく、magento のimport 機能を使う方が、
早くてセキュリティ的にも安心と判明しましたが、エラーがたくさん出てなかなか上手く行かないと知り、
研究してみました。
下記方法(ExcelVBAでCSV出力)で上手く行きましたので、ご参考までにアップ致します。

notepad(メモ帳では確認不可)でexportしたファイルを開き、ダブルクォーテーションが付いている項目を確認し、エクセルで開き直して、その項目の列を黄色で塗りつぶします(シート名はimportに設定)。
データをシートに入力します(画像ファイル名の前には/を付け、カテゴリーも/で区切ります。)。

ツール→マクロ→visual vasic editor を開き、挿入→標準モジュールに下記コードをコピペして、
右向きの三角アイコンをクリックして実行すると、imoort.csvというファイルをエクセルと同じフォルダーに書き出しますので、これをimportします。
画像も一度にアップできるし、大変便利です。(画像はデータをimportする前に、magentoのmedia/importフォルダにアップロードしておかないと認識しません。)

Private Sub writeCSV()

Dim maxRow As Long
Dim maxCol As Long
Dim strRec As String
Dim strCol As String
Dim sht
Set sht = Sheets("import"Wink

With sht.UsedRange
maxRow = Range("A1"Wink.End(xlDown).row
maxCol = Range("A1"Wink.End(xlToRight).Column
End With

Dim outStream As Object
Set outStream = CreateObject("ADODB.Stream"Wink
outStream.Charset = "UTF-8"
outStream.Type = 2
outStream.Open

Dim i As Long
Dim j As Long
Dim line As String

For i = 1 To maxRow
strRec = ""
For j = 1 To maxCol
If i = 1 Then
strCol = sht.Cells(i, j)
Else
Select Case True
Case IsDate(sht.Cells(i, j))
If InStr(sht.Cells(i, j), "-"Wink Then
strCol = """" & sht.Cells(i, j) & """"
Else
strCol = """" & Format(sht.Cells(i, j), "yyyy-mm-dd hh:mm:ss"Wink & """"
End If
Case WorksheetFunction.IsNumber(sht.Cells(i, j))
strCol = CStr(CDbl(sht.Cells(i, j)))
Case InStr(sht.Cells(i, j), ","Wink, InStr(sht.Cells(i, j), """"Wink
strCol = """" & sht.Cells(i, j) & """"
Case Else
If sht.Cells(i, j).Interior.Color = 65535 Then
strCol = """" & sht.Cells(i, j) & """"
Else
strCol = sht.Cells(i, j)
End If
End Select
End If

If strRec = "" Then
strRec = strCol
Else
strRec = strRec & "," & strCol
End If
Next
outStream.WriteText strRec, 1
Next

outStream.Position = 0
outStream.Type = 1
outStream.Position = 3

Dim csvStream As Object
Set csvStream = CreateObject("ADODB.Stream"Wink

csvStream.Type = 1
csvStream.Open

outStream.CopyTo csvStream

Dim FileName As String
FileName = ThisWorkbook.path & "\" & sht.Name & ".csv"
csvStream.SaveToFile FileName, 2

csvStream.Close
outStream.Close

Set csvStream = Nothing
Set outStream = Nothing

End Sub

 
プロフィール メール
引用して書き込む
satsuki
 2016年2月 1日 18:41 JST  
掲示板 Chatty
Chatty

状態: オフライン


登録日: 2014年6月25日
投稿数: 65
↑の追記です。
投稿したところ、閉じカッコが所々ニコちゃんアイコンに文字化けしているようです。

 
プロフィール メール
引用して書き込む
内容生成: 4.00 秒
新規投稿 返信投稿


通常 通常
注目トピック 注目トピック
ロック済 ロック済
新着 新着
注目トピック 新着 注目トピック 新着
ロック済トピック 新着 ロック済トピック 新着
ゲストユーザの投稿を見る 
ゲストユーザ投稿可能 
HTML許可 
バッドワードをチェック