【EC-CUBE 2.12】受注の各商品も出力して CSV ダウンロードを実現する方法♪

スポンサードリンク


受注の各商品も CSV 出力する SQL 文

受注の CSV 出力には、商品名は出力されません。

なぜなら、EC-CUBE の受注 CSV ダウンロードは 1 受注を1 行に出力する仕様でございますもの。

もし、1 回の買物で、複数種類の商品を買った場合、これらの商品をどうやって CSV に出力すればよいかしら?商品すべてを 1 つのセルに書きだすようにすればよいかしら?

できそうですわね!では、それぞれの商品の値段、購入した個数も知りたくなったらどうかしら?ひとつのセルに押し込めるかしら?ムギュウムギュウ♪

素直にはできませんわね><。大変難しいですの!

考え方はいろいろございますけれども、1 行 に 1 商品で出力します。そして、各行にその受注の合計金額など他の情報も掲載します。そのような方法も採れますわ、悪く無いと思いますの。

複雑さが増してしまいますけれども、CSV でしたら エクセルを念頭においていると存じます。まだ現実的な範囲内ではないかしら?

そのようなわけで、これを実現する SQL 文を書いてみましたわ♪

“【EC-CUBE 2.12】受注の各商品も出力して CSV ダウンロードを実現する方法♪” の続きを読む

【EC-CUBE 2.12】受注管理のCSV出力をコンテンツ管理>CSV出力項目設定>高度な設定で実現します!

コンテンツ管理>CSV出力項目設定>高度な設定に設定する SQL 文

実際にフォームに入力するときは、1 行目の SELECT は入力しません。また、最後の 1 文の ; も入力しません。

SELECT
        dtb_order.order_id,
        dtb_order.customer_id,
        dtb_order.message,
        dtb_order.order_name01,
        dtb_order.order_name02,
        dtb_order.order_kana01,
        dtb_order.order_kana02,
        dtb_order.order_email,
        dtb_order.order_tel01,
        dtb_order.order_tel02,
        dtb_order.order_tel03,
        dtb_order.order_fax01,
        dtb_order.order_fax02,
        dtb_order.order_fax03,
        dtb_order.order_zip01,
        dtb_order.order_zip02,
        (SELECT mtb_pref.name FROM mtb_pref WHERE mtb_pref.id = dtb_order.order_pref),
        dtb_order.order_addr01,
        dtb_order.order_addr02,
        dtb_order.order_sex,
        dtb_order.order_birth,
        dtb_order.order_job,
        dtb_order.subtotal,
        dtb_order.discount,
        dtb_order.deliv_fee,
        dtb_order.charge,
        dtb_order.use_point,
        dtb_order.add_point,
        dtb_order.tax,
        dtb_order.total,
        dtb_order.payment_total,
        dtb_order.deliv_id,
        dtb_order.payment_method,
        dtb_order.note,
        dtb_order.status,
        dtb_order.create_date,
        dtb_order.update_date,
        dtb_order.commit_date,
        dtb_order.device_type_id,
        (SELECT count(*) FROM dtb_shipping WHERE dtb_shipping.order_id = dtb_order.order_id),
        (SELECT ARRAY_TO_STRING(ARRAY(SELECT dtb_shipping.shipping_id FROM dtb_shipping WHERE dtb_shipping.order_id = dtb_order.order_id), ','))
FROM
        dtb_order
WHERE 
        del_flg = 0
;

“【EC-CUBE 2.12】受注管理のCSV出力をコンテンツ管理>CSV出力項目設定>高度な設定で実現します!” の続きを読む

phpPgAdmin を yum を使ったときと同じようにインストールするためのポイント♪

ソースからインストールするときでも yum でインストールしたときと同様の構成にするためのポイント

  • ソースファイルは /usr/share/phpPgAdmin に置く。
  • Apache の設定ファイルは /etc/httpd/conf.d/phpPgAdmin.conf とする。
  • もちろん phpPgAdmin の設定ファイル /usr/share/phpPgAdmin/conf/config.inc.php も適当に修正する。

以上の2点です。

Apache 設定ファイルの内容

“phpPgAdmin を yum を使ったときと同じようにインストールするためのポイント♪” の続きを読む

PostgreSQL のデータベースを別サーバへコピーする方法メモ♪

データベースを同じサーバの PostgreSQL へコピーするコマンド

-- データベースをコピー。db1(user1、password1) から db2(user2、password2)に
-- pg_dump -U user1 -W db1 | psql -U user2 -W db2 とすると
-- 「ERROR:  ロール"user1"のメンバでなければなりません」や
-- 「WARNING:  "public"の権限を取り上げられませんでした」の
-- メッセージが出るため、スーパーユーザーで実行することで回避
pg_dump -U postgres -W db1 | psql -U postgres -W db2

データベースを別のサーバの PostgreSQL へコピーするコマンド

データベースのコピーのコマンドの前に、次の内容のパスワードファイルを作成しておく必要があります。

  • コピー元サーバで、pg_dump を実行するユーザのホームディレクトリに .pgpass ファイルを作成する
  • コピー先サーバで、psql を実行するユーザのホームディレクトリに .pgpass ファイルを作成する
# hostname:port:database:username:password
localhost:5432:*:postgres:postgrespassword

実際の別サーバへのコピーは次のコマンドで行います。

-- 別サーバに PostgreSQL データベースをコピー。db1(user1、password1) から hostname サーバ(ユーザ名 hostuser)の db2(user2、password2)に
-- ただし、事前にパスワードファイルの設定が必要
pg_dump -U postgres db1 | ssh hostuser@hostname psql -U postgres db2

“PostgreSQL のデータベースを別サーバへコピーする方法メモ♪” の続きを読む

PostgreSQL のデータベースをコピーする方法メモ♪

PostgreSQL データベースをコピー

-- データベースをコピー。db1(user1、password1) から db2(user2、password2)に。
pg_dump -U postgres -W db1 | psql -U postgres -W db2
  • psql のプロンプトや postgres ユーザでのコマンドではなく、シェルで実行する。
  • コピー先のデータベースは予め作っておくこと。
  • PostgreSQL のユーザは postgres を使用する。
  • パイプ(|)前後の2回分、パスワードの入力が求められる。

指定するユーザについてポイント

“PostgreSQL のデータベースをコピーする方法メモ♪” の続きを読む

【PostgreSQL】文字コードがテンプレートの ENCODING と異なるデータベースを作成するときは、TEMPLATE template0 を追加したらエラー回避できました♪

文字コードがテンプレートの ENCODING と異なるデータベースを作成するためにTEMPLATE template0 を追加する SQL の例

CREATE DATABASE testdb WITH OWNER testuser ENCODING 'UTF8' TEMPLATE template0;

よく使う SQL は、DB、ユーザ、ユーザにパスワードを設定する SQL でございまして、次はその例ですの♪

-- ユーザの作成(スーパーユーザ無効、DB作成無効、ユーザ作成無効、パスワード設定)。データベースの作成
-- デフォルト ENCODING と異なる文字コードでDB作成する場合は、TEMPLATE template0 を追加
CREATE USER testuser WITH NOSUPERUSER NOCREATEDB NOCREATEROLE PASSWORD 'testpassword';
CREATE DATABASE testdb WITH OWNER testuser ENCODING 'UTF8';

PostgreSQL  8.4で新しいデータベースを作成しようとしましたら、次のようなエラーとなってできませんでした><。

メッセージはうろ覚えですので間違っているかもしれませんが、大体次のようなメッセージでした。

“【PostgreSQL】文字コードがテンプレートの ENCODING と異なるデータベースを作成するときは、TEMPLATE template0 を追加したらエラー回避できました♪” の続きを読む

VirtualBox で LAMP + PostgreSQL + APC + XDebug + PHPUnit の開発環境構築手順♪

前提

  • CentOS 5.9 インストール済み
  • CUI で SSH 接続可能
  • CentOS に IP アドレス割り振り済み

つまり、VPS 契約した直後のような状態です。

インストールして最低限の設定をするパッケージ

  • Apache
  • PHP
    • APC
    • XDebug
    • PHPUnit
  • MySQL
  • PostgreSQL

LAMP + PostgreSQL → LAMPP!と思っていのですけれども、別の構成ですでにこのような名前がありました><。ぜんぶまとめて強引に略称にすれば、、、LAMPPPAX (らんぷぷぱっくす)でしょうか♪

それはともかく、開発環境ですので SQL サーバーとして MySQL に加え、PostgreSQL をインストールします。

はじめるまえに

わたくしは今回の手順を行う前に時刻同期やメモリ節約として次のことを行なっています。

それでは、はじめます。

1.Apache、MySQL、PHP、PostgreSQL、APC、XDebug、PHPUnit インストール

“VirtualBox で LAMP + PostgreSQL + APC + XDebug + PHPUnit の開発環境構築手順♪” の続きを読む

【不満】PostgreSQL 最初の一歩!ユーザと DB 作成!確認!【CentOS 5.9】【実際ニュービー】

yum でインストール直後の PostgreSQL 最初の一歩として、

  • PostgreSQL スーパーユーザー postgres にパスワード設定
  • PostgreSQL 内のユーザ testuser 作成
  • PostgreSQL 用の Linux ユーザ testuser 作成
  • PostgreSQL 内のユーザ testuser 用のデータベース testdb 作成
  • データベース testdb、PostgreSQL ユーザ testuser、Linux ユーザ testuser の削除

をやってみようと思います。

“【不満】PostgreSQL 最初の一歩!ユーザと DB 作成!確認!【CentOS 5.9】【実際ニュービー】” の続きを読む

【試行錯誤】PostgreSQL 最新版インストールにすごく苦労しましたのでメモ!!!【virtualbox で LAPP 開発環境構築したい】

ポイント

  • 最新版のコマンドは postgresql ではなかった。postgresql-9.2 だった(2013年3月時点、PostgreSQL バージョン 9.2)
  • PostgreSQL 最新版を CentOS 5.9 に yum でインストールするにはリポジトリを導入する。2013年3月時点ではバージョン 9.2 だからかリポジトリは pgdg92 という名前だ。
  • yum でインストールするとき、パッケージ名は postgresql92-server としないと最新版がインストールされなかった(2013年3月時点、PostgreSQL バージョン 9.2)。postgresql ではなかった。
  • CentOS の postgres ユーザに変更してから psql コマンドで、PostgreSQL にログインできる。

1.【実際にやってみて】PostgreSQL インストール後にリポジトリを導入してもアップグレードできません><

“【試行錯誤】PostgreSQL 最新版インストールにすごく苦労しましたのでメモ!!!【virtualbox で LAPP 開発環境構築したい】” の続きを読む