DLSeller一括商品登録をcronで自動実行したい

フォーラム 拡張プラグイン DLSeller一括商品登録をcronで自動実行したい

2件の投稿を表示中 - 1 - 2件目 (全2件中)
  • 投稿者
    投稿
  • #86022
    superflycore
    参加者

    お世話になります。

    Welcart+DLSeller(デジタルコンテンツ販売用のプラグイン)を利用して
    デジタルデータのダウンロード販売サイトを運営しております。

    商品登録を、次の手順で行っております。
    1.) WordPressのwp-content/uploadsフォルダに直接デジタルデータをアップロード
    2.) Media from FTP Add On Commandlineを使ったシェルスクリプトをcronで自動実行させており、
    WordPressにメディア登録されていないデジタルデータをメディア登録
    3.) 管理画面 [Welcart Shop] – [商品マスター]にアクセス
    4.) 操作フィールドの「商品一括登録」ボタンをクリック
    5.) 商品一括登録用CSVを作成 (シェルスクリプトで一括作成)
    6.) 事前に作成しておいた商品一括登録用CSVをアップロード

    手順3.〜6.)をGUIの操作ではなく、シェルスクリプトで実行したいのです。

    ・試してみたこと
    事前準備として、送品一括登録用CSVをサーバ上に作成しておきます。(手順5.)
    手順3,4,6)をcURLを使うことで実現できるのでは・・・と期待したのですが
    思うような動作になっておりません。

    $ curl –data ‘log=(WORDPRESSユーザID)&pwd=(WordPressユーザパスワード)’ https://(ドメイン名)/wp-login.php -c ./cookie.txt

    $ curl -X POST -F “usces_upcsv=@./usces_item_list.csv” -F upload_mode=all -b ./cookie.txt ‘https://(ドメイン名)/wp-admin/admin.php?page=usces_itemedit&action=itemcsv’ –include
    (参考にしたURL)
    Welcart 商品一括登録(csv)をcronによる自動起動で実行する | クラウドロジスティクス
    http://crowd-logic.com/blog/archives/29768

    ログインは成功しているようなのですが、
    その後のPOSTが上手く動作しておりません。
    商品一括登録用CSV(usces_item_list.csv)はWordPressの「wp-uploads」フォルダに
    アップロードされていることは確認できています。

    以下レスポンスがありました。

    (レスポンス)
    > HTTP/1.1 100 Continue
    >
    > HTTP/1.1 302 Found
    > Server: nginx
    > Date: Tue, 03 Jul 2018 00:41:16 GMT
    > Content-Type: text/html; charset=UTF-8
    > Content-Length: 0
    > Connection: keep-alive
    > Expires: Thu, 19 Nov 1981 08:52:00 GMT
    > Cache-Control: no-store, no-cache, must-revalidate
    > Pragma: no-cache
    > Location: https://(ドメイン名)/wp-admin/admin.php?page=usces_itemedit&usces_status=none&usces_message=&action=upload_register&mode=all&regfile=UmVnaXN0UHJvZHVjdHNfMTUzMDU3ODQ3Ni5jc3Y=
    > X-Original-Date: Tue, 03 Jul 2018 00:41:16 GMT
    > X-UA-Device: pc

    上記のLocationに記載されているURLにブラウザでアクセスしてみたところ商品登録が行われたため、
    以下を追加で実行してみました。

    $ curl -X POST -b ./cookie.txt ‘https://(ドメイン名)/wp-admin/admin.php?page=usces_itemedit&action=itemcsv’ –include

    (レスポンス)
    > HTTP/1.1 302 Found
    > Server: nginx
    > Date: Tue, 03 Jul 2018 02:00:27 GMT
    > Content-Type: text/html; charset=UTF-8
    > Content-Length: 0
    > Connection: keep-alive
    > Expires: Thu, 19 Nov 1981 08:52:00 GMT
    > Cache-Control: no-store, no-cache, must-revalidate
    > Pragma: no-cache
    > Location: https://(ドメイン名)/wp-admin/admin.php?page=usces_itemedit&usces_status=error&usces_message=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%89%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93%E3%81%A7%E3%81%97%E3%81%9F%E3%80%82
    > X-Original-Date: Tue, 03 Jul 2018 02:00:27 GMT
    > X-UA-Device: pc

    レスポンス中のLocation内usces_messageをURLデコードすると
    「ファイルをアップロードできませんでした。」とのことでした。
    前の手順でアップロードしたファイルを参照できていないのでしょうか。

    cronで自動実行するために、どこを修正すれば良いか、ご教授いただけないでしょうか。
    よろしくお願いいたします。

    運用環境
    ——————————————-
    WordPress のバージョン:4.9.5
    Welcart のバージョン:1.9.10
    DLSeller のバージョン 2.1.14
    cURL のバージョン 7.29.0
    ご利用のテーマ:WelcartBasicの自作子テーマ
    症状を確認したブラウザ:
    サーバー:エックスサーバ X10
    SSLの利用:常時SSL
    WordPress のパーマリンク設定:/%category%/%postname%.html
    ——————————————–

    #86028
    superflycore
    参加者

    ありがとうございました、自己解決しました。

    Welcartのフォーラムに投稿してしまいましたが、
    原因はcURLコマンドの使い方にあったようです。失礼いたしました。

    > 上記のLocationに記載されているURLにブラウザでアクセスしてみたところ商品登録が行われました。

    レスポンスの「Location」がリダイレクト先URLを示すものであることを理解していませんでした。

    デフォルトではcURLはリダイレクトを行わないようなので、
    オプション「-L」を加えることでリダイレクトされ、商品登録処理が実行されました。

    
    $ ##WordPressにログインしてcookieをファイルに書き出す
    $ curl --data 'log=(WORDPRESSユーザID)&pwd=(WordPressユーザパスワード)' https://(ドメイン名)/wp-login.php -c ./cookie.txt
    
    $ ##商品登録CSVをPOSTする
    $ ##レスポンスのLocationに示されるURLにリダイレクトする
    $ curl -X POST -L -F "usces_upcsv=@./usces_item_list.csv" -F upload_mode=all -b ./cookie.txt 'https://(ドメイン名)/wp-admin/admin.php?page=usces_itemedit&action=itemcsv'
    
    • この返信は5年、 8ヶ月前にsuperflycoreが編集しました。
2件の投稿を表示中 - 1 - 2件目 (全2件中)
  • このトピックに返信するにはログインが必要です。