だ。ログ。

開発とかスノボとかやきうとか。

誰のための転職か

この所、自分の知人が○☓に転職したとか違う業界に飛び込んだとか聴く。
それと若い子達が辞めたい、俺はこんな業界でこんな仕事する為に入社したんじゃないんだ!と言う入社後のギャップに悩む声も聞こえてくる。

若い頃は同じような考えで辞めたい、サボりたいと思うと理由付けをしていかにして合理的に会社を辞めてやろうか。
そして、もっともっとラクな会社に行ってやろうか。と言う事をよく妄想してきた。
人売全盛の時代、営業と言う名の炎上現場に金勘定した上で放り込む「営業」様が跳梁跋扈していた時代。
多重派遣SIerしか門戸が無く、放り込まれた闇の中から見える楽しげな午後のカフェの笑顔に自分の選択失敗に何度嘆いた事か。

と言う訳で、人を売る営業と言うモノを信頼していないし、そのテの人間と転職の際に何度もやりあった。
まだエージェントと言う形んであればこちらからお願いしますと言う形だったが、中には人の勤務先をどこぞで聞きつけ勤務先に電話をしてくる営業まで居るご時世。
それだけエンジニアと言う人間は売れれば単価が高い事が伺える。

あくまでも偏見でしかない。
そしていつもの通り、ファンタジー。創作である。それだけは前置きとして書いておく。

転職エージェントとは

歪んだ見方しか出来なくなってしまっているが、結局は人を企業に売ってお金を儲けると言うビジネスモデルが確立している。
2000年代中盤くらいから盛んになった。それまではWebでの求人はあったものの、丁寧に転職のイロハを教えノウハウを公開しオススメの企業様への紹介と言うサービスはなかった。
(寧ろ自分が箸にも棒にもかからないレベルのお粗末な人間であった事が一番の問題だが)

大手の中に潜む個別エージェント会社

大手エージェント会社に登録すると、まずこぞってスカウトが入るのが企業からではなく、転職紹介会社だ。
転職希望をしている=転職意思が有る。となれば金になる。
前回の自分の転職開始日に送られてきたスカウトは13通、全部転職エージェントからだった。
この数字から見ても、転職者は「カネ」になる生き物だと言う事がよく解る。
しかもプラットフォームを展開している会社がそれを認めていると言う事は、結局のところは手数料なりを払ってでも活動が出来る土壌があるのであろう。
ただ、ハッキリ言ってこの手のエージェントが勧めてくる企業は通年募集している企業だ。
そもそもその転職サイトに求人情報が載っている。しかし求人情報からではなく転職エージェントが餌を付けてウチで是非どうですか?!と言うスカウトを熱心に掛けてくる。

お目当ては埋まってしまいますよ!!

甘い言葉に誘われてエージェントと会う約束をする。事細かにメールでのヒヤリング、また職務経歴書や履歴書のチェックとアドバイス
その経歴や履歴書からあなたにピッタリの企業様も複数当日はご紹介させていただければ。あなたのスキルであれば引く手数多!このスキルセットで今の現状にとどまるのは勿体無いですよ!
今こそ転職のチャンスです、給料も待遇も大幅アップ間違い無しです!

出来る限りのヨイショと自分は有能で転職チャンスである事を刷り込まれはじめる。
ウキウキしながらエージェント面会日を迎えることとなる。

個別エージェントだと高級ホテルのカフェ、大手エージェントだとターミナル駅の近くにある自社ビルに通される。
まず適当な挨拶と今までの経緯を説明する。どんな会社で働いているか、将来どうなりたいか。30過ぎたオッサンが将来を語る。
それに全力で同意してくれる。自分のネガティブな部分を含めて、うんうんわかります。うわーひどいですねー。
どんなネガティブな事を言ってもその場は許されるのである。

そして本題、最初にこれなら話を聞きに行きたいな。と思われる紹介案件の説明、そして他の企業の紹介がはじまる。
有能と誤認している自分は、アレも良いコレも良いと目移りする。
大半は悩むと「とりあえずお話を聴くだけでもかなり違うとおもいますよ!」とか
「ここは残業が殆ど無いので、多分ちょっと暇くらいだったような」とか、甘い言葉からハッピーな毎日を連想させる。
ただ、自分が望んでいる第一希望に関してのみをOKして後は少し考えさせてもらえないですかね?と切り出す。
みるみるエージェントの笑顔が消える。

・今この時期を逃すとA社は人気だから求人を締め切ってしまうかも
・既に担当している人の中でも数人は二次選考に進んでいて、多分決まってしまう。しかし今なら人が足りてないから選考に残れる可能性は高い
・これだけスキルマッチしている会社も稀、勿体無い

焦燥感を煽る言葉を連発してくる。
最後の押しの一手は「迷ってるくらいなら、一度行って見てきた方が絶対良いですよ!面接の感覚を掴むために!」
プッシュプッシュの押し相撲。
この時点で「複数社受けなければならない」と言うよく分からない概念が出来上がっている。
その概念から出された選択肢が全てと勘違いをする。他に吟味する余裕もなく今ある選択肢から選ぶ事に目が行ってしまっている。
結局イエスを選択すると、1日の有給を使用すると共に午前中2社、午後多ければ3社程の面接を詰め込まれる事となる。

嫌われたくない

面接をすると転職の意思、今回の感想、そして自分の手応え等を事細かにメールで伝えなくてはならない。
疲れ果てて帰ってきても一息付く暇もない。
とにかく受けた会社の印象、どうだったか、どんな質問をされたか。次の人に繋ぐ為のノウハウとしてのデータであろう。
ただ、ここで「まだまだお世話になるなあ」と言う義理から、帰ってきて食べる事も後回しにして面接の情報を事細かに書き連ね担当者にメールする。
朝10時に家を出て、一息付いたのは午後10時を回っている。

・・・あれ、俺の有給ってなんだっけ?

そう思い疲れ果てた頭で考えるも、床につく。

ハッキリ言える事は、人間としてお世話になった義理。
これは忘れてはならない、ただしその義理の為に有給を使い交通費を使い面接すべきだったか。と言う事だ。
本命1社受けるのに、興味があまり沸かないがとりあえずと推された会社に足を運ぶ。
とりあえず格好つける事と好印象を与えないと企業から担当者に連絡が入り、今後不利になるのではないか?
結局の所、具体的に何がしたい訳でもなく必死で考えた職務経歴書と履歴書を擦り、面接対策をし、ホームページ等でサービスを確認して質問を考える。
義理だったハズがいつの間にか必死になっている。

結局、自分の愚痴を聞いてくれて言う事全てを肯定してくれた人だから嫌われたくない。
転職で不利になりたくない。と考えているのである。

それでもプッシュ!押しの一手

週多ければ3回、少なくとも1回はアプリやメールを使っての連絡を入れてくる。
今回の改善点、いまこんな企業さんがアツい、他の転職成功者の成功体験談、メールマガジン
ありとあらゆる成功体験の共有から、自分もこうなるんだ!と言う期待感ばかりに支配される。
そして頂いたメールから次を次をと転職面接を繰り返すのである。

そもそも転職って誰がするのか。

ここを自分は落とし所としている。
結局の所、人売派遣時代に無数に体験した
営業 >>>>>>>>>>>>>>>>>>>>>>>>>>>>> エンジニア

お前らを売ってやるのは俺様達だ、お前は俺が忙しい時間を割いて売ってやろうとしてるんだ。くちごたえするな。
初対面なのに何度となく横柄な態度を取られた、そして見事炎上案件に放り込まれた後に話と違うと連絡すると、もうアカの他人。
ああ。そうなんですか。大変ですねー頑張ってください。
そして会社にアイツは根性が無いと言うクレームが入り、こっぴどく叱られる。

結局、自分自身がどうなりたいかと言う事よりも嫌われたくない、怒られたくない。
自分が不利になる事よりも人の機嫌を損ねたくない。人の顔色を伺ってしまって、自分が思う事や達成したい事の優先順位はどんどんと落ちている。

そこで譲歩をしてしまうと、結局自分が働き始めて「…あれ、俺待遇悪くなってね?」と気付き、担当者に連絡しても
「あとはがんばってください」と突っぱねられる。紹介金が払われた人間は、賢者モードのように冷めている。

そりゃそうだ。もう新しく売り込む人間を何人も確保して、自分が受けたサービスを他人は受けている。
そう考えると夜中だろうが朝だろうが連絡してきていた担当者だ、もう売れてしまった人間に興味はない。

あなたが必要です!と企業に言われ、ここならそのスキルを発揮してすぐに大活躍出来ます!と担当者からヨイショされ、勘違いした挙句
「じゃあ転職しちゃおうかなー」と言う謎の上から目線で転職したは良いけどブラック企業でござるの巻
と言う典型的な転職失敗は、自分が受けたサービス分のお礼を返さねば。と言う義理と勘違いだと感じる。

横柄な態度やサービスを受ける側なんだからサービスしろや。と言う態度は違う。
ただ、転職をする張本人は自分である。
聞きづらいかなあ。とか、これ聴かれたドン引きされるかなあ。と思って言わないままにしておくと結局は自分に最後はしっぺ返しが来る。
多少ツラの皮が厚いくらいに興味の有る事やリスクを自分から聞いていかないと良い事しか吹き込まれない。
結局は本音が出て来るまでに時間が掛かるのだ、その本音が見えないままに時間と金を消費し、最悪転職先は決まらない。
焦って決めた会社に決めてしまい、また転職活動をする。

転職をするのはあくまでも自分。
そのプラットフォームが全てではない、嫌なら拒否の意思を示すべきだし、納得いかなければサービスごと変えてしまう事も出来る。
なにもそのサービスが全てではない。競合他社が居るから転職者に対して必死にアプローチしてくる。
そして転職者はカネになる。
カネになる商品として、自分がどうなりたいか。それを忘れてしまうと自分自身が損をしてしまう。

と言うファンタジー。

また行ってきた神宮

今年のベイスターズ神宮球場での試合が終わった。
8月も後半に差し掛かり、3位と言う順位が今後どのようになるのか。と言う事が非常に気になる。
この時点で若手のホープがお試しスタメンで入らないと言う事が、おっさんファンには本当に嬉しい。

6月に神宮球場に遊びに行った時に、その球場メシの旨さに驚嘆した。
今度は夏に行きたい行きたいと思い7月のスワチケ無料会員で購入。

前売り売切れ!?

実は金曜日にTwitterのベイクラスタの人が行こうとチケットを見ると、この三連戦チケット無い!!となり、あの神宮がとうとう三塁側満席に!と話題になった。
ただ、自分が購入した7月の段階では角席以外であれば好きに選べる状況であった。
応援団が近いRブロックの上段側にした。下段側の指定は正直狭い。背もたれがあるが、平均的な体型の人がすり抜けるのに苦労する。
横浜スタジアムではそんなにないが、神宮だと守備になる毎に席を立つ人が居るのでなるべく通路挟んで上側の席の方が楽である。

久々の神宮

18時プレイボールなので16時過ぎに神宮外苑に到着、蝉しぐれの中外苑向かいのセブンイレブンで水分を購入。
毎回毎回忘れるが、ここの飲料には炭酸水が無い。
f:id:rider_dice:20170829224709j:plain
f:id:rider_dice:20170829224702j:plainf:id:rider_dice:20170829224717j:plain
到着後、いつものようにソーセージ盛りを買う。今回はまだ早い時間と言う事もあり行列はなくそのままスッと買う事が出来た。
今回もメガ盛り、それと売り子さんからビールを購入。
f:id:rider_dice:20170829224624j:plainf:id:rider_dice:20170829224631j:plainf:id:rider_dice:20170829224637j:plainf:id:rider_dice:20170829224724j:plain
その後食事を終え、ライト側のスワローズグッズ販売へ。前回買ったつば九郎フィギュアを大人買い。これで今年分はコンプリート出来た。
f:id:rider_dice:20170829224536j:plainf:id:rider_dice:20170829224617j:plain

試合中

前回の記事でも書いた通り、前の方の席は太鼓の音が取りづらい、もしくは半拍くらい送れる。
そして声が散らばってしまいハマスタの声量のような威圧感は感じられない。
それと神宮だからかどうかは解らないが、独自の振り付けで踊る。応援歌に謎の合いの手を入れて大声で歌う集団が多い。
応援団が「◯◯コール!」 → 奇声でアアアアアイと叫ぶ(これはハマスタでも耳にするが)
とにかくガラが余りよろしくない。
もう少しライト側の席ではベイスターズファン同士がいざこざもあった。

試合

石田投手の出来がいまいち。前回神宮ではズバズバと三振を取っていたが今回は狙い打たれる。
特に坂口選手に打たれまくり、あと一本が出ず悔しい敗北。

神宮どうよ?

横浜からそう遠くない、横浜→東京→御茶ノ水信濃町 もしくは 横浜→新橋→外苑前と言うルートを選択すれば1時間もあれば到着する。
そして何よりも他の球場にはないフードの充実ぶり、ソーセージ盛りばかり食べているが実はやきそばやポテト、鶏の鉄板焼きもレベルが高い。
ただし、センターの売店で売っている東京ラーメン、テメーはダメだ。味が無い湯に麺が入っているだけ。近所のホープ軒で食べた方が良いかと。
アクセスの良さ、フードのレベルの高さ、そして外野スタンドの上段であれば一つ一つの席が少し広い。
野球を知らない、興味が無い人でも野球観戦の醍醐味を楽しむ事が出来るスタジアムだと個人的に思う。
#ただ数年前のように「あー今日行こうかな」とフラっと訪れ、外野の好きな席に腰掛けて好き勝手に食べて飲んで。と言う時代からは変わってしまった。

次はまた暖かくなってきたデーゲームの神宮になるのか。
今シーズンも残り僅か、結末が今から待ち遠しい。そして来年の神宮が今から楽しみである。
f:id:rider_dice:20170829224544j:plainf:id:rider_dice:20170829224558j:plain

ドラクエ11クリア

兼ねてからプレイしていたドラクエ11をクリア。
多分、ナンバリングタイトルを発売日に購入してクリアしたのはSFCドラクエ5以来となる。
その後はDSでやったりはしていたけど、結局は続かない。MMOを長くやってた時期があったり、他の事に興味が有ったと言えばそれまでだが
その根底には、その当時プレイしていたMMOサイコー!病で、他はつまらない!と言う偏見を持ってしまったが故と言う事も大きい。
発売から1ヶ月、最初はスプラトゥーン2をプレイしはじめていた事もあり、イカの息抜きでやってくかなー。位であったがいつのまにかSwitchの稼働はこの1ヶ月で数時間のみだった。

ネットでの共感

ネットでの評価を見た時に凄く共感出来た言葉で

「誰がやってもドラクエであり、ドラクエ以上な事はないしドラクエ以下の事もない」
「スーパープレイや天才的なひらめきはなく、続ければ誰でも平等にプレイ出来る」

と言う二つの言葉にプレイ空から共感出来た。

ここ数年でちゃんとプレイしたコンシューマゲームは何かと思い出してみる。

ロロナのアトリエ
トトリのアトリエ
メルルのアトリエ
超次元ゲイム ネプテューヌmk2
ダークソウル2
ダークソウル3
ロリポップチェーンソー

おうおうにして、コマンドゲームがメインである。アトリエ系もやり方さえ覚えてしまえば、あとはどう効率を出すかと言う事への考え方のシフトが出来てしまう。
個人的にはトトリのエンディングを全て見るのにかなり時間を費やした時間もある。
ただ、この時期で考えると、間にPSO2(現在もプレイ中)やBF4など、ネットゲームが主軸でありコンシューマゲームは買ってちょっと遊んで終わりと言う事が多かった。
長くても2,3時間プレイしてまた気が向いたら。が出来るゲームが大半を占めている。

オッサンゲーマー

ファミコンドラクエからプレイはしているものの、ちゃんとクリア出来たのは3から。
2:近所のゲーマーのお兄さんからもらった復活の呪文を入れて脳筋アタックをして運良くアトラス→バズズ→ベリアルを倒しハーゴン→シドーも言わば攻撃パターンの弱い所を引いての勝利だった事を思い出す。
3:最強戦士の作り方を聞き、僧侶→魔法使い→戦士が二人、運良くドロップした悟りの書で賢者2人が居た事もあり、やたらレベリングが出来ていてクリアは容易だった。
4:バランスが良く小学生の自分でもクリアはそこまで難しくなかった。ライアン、勇者、アリーナ、クリフトと言うこれまた脳筋PTだった。
5:はぐれメタルレベリングを覚えて楽々クリア

その時代から約20年、結局はドラクエは上記の2~5なイメージが強い。
酒が入れば「当時のドラクエはさ~」と無駄に多いエンカウントを懐かしみ、文脈からドット絵の表情を思い浮かべていた事を毎回語る。
今回のPS4のグラフィックを最初見た時に、ビルダーズをやっていた事もあるが、360度上向いても下向いてもドラクエの世界が有るのはすげえなーと感嘆した。

のめりこむ

過去の作品のオマージュが多い。
小ネタだが、おお懐かしいなこの台詞!と思う事が多い。辛酸をなめた過去作品を思い出しながら
ああ、そうそうこう言う事あったっけな~と思いプレイを続ける、気付くと先に進んでいる。でももうちょっとやろうかなー。これが続く。
子供の頃、親に怒られながら続けていた頃の懐かしい感覚を覚える。辞めなきゃ辞めなきゃと思いながらも先へ先へを求める。
でも過去作品を知らないからネタについていけないと言う事はない。
あくまでも今作は今作、ストーリー上にふと緩急で言う緩い笑い部分なので、話を聞いていれば違和感はない。

結局どうなのよ

プレイ時間52時間弱、勇者のレベルは89で初回クリアした。
レベリングとドロップに恵まれた事もあったが、広がった伏線をしっかり回収出来る。
いわゆる「何処に行けば良いかわかんねーよ」と言うことはない。なかまが居て自分が居て、目の前に道筋が必ずある。
この辺をいわゆる洋ゲー、洋RPGに慣れてしまっていると子供っぽいとかストーリーが幼稚と感じる人も居る。
ただ、我々おっさんゲーマーからすればこの塩梅、この単純明快さがRPGと言う意識がある。
水戸黄門の勧善懲悪、単純明快さが心地良い年齢に差し掛かってきた。
難しい戦闘システム、奥深い戦略性も楽しい。ただ、誰もが進む道標が明確でクリア出来ない難易度ではなく続ければ必ず理解しクリア出来る。
この絶妙さが本当に素晴らしいと思う。
この頃、ネトゲスマホゲーを続けていると「クリア」と言う線引が自分の中でのモノになってしまっている。
ドラクエに関して言えば、終盤に差し掛かると「もう少しでクリア」と言う意識が自分の中で芽生えてくる。
いまフィールドを歩き団結している仲間ともあと少しと言う一抹の寂しさに襲われながらも、先に進める。
もうこのメンバーで進む事はあとすこし、その焦燥感に近い感覚すら楽しむ事が出来た。
久々に日本製RPGの楽しさを再認識する事が出来た。ホントに楽しい50時間8000円の旅だったなと振り返っておもう。
まだお使いクエストが残っているので、少しづつ進めていきたい。

EC-CUBE3でカートに入った商品のIDを取得する

カートに入った商品別に何かしらのメッセージを出す。または割引する。色んな部分で今カートに入っている商品情報をデータとして取得したい場面は多い。
IDから商品情報を取得するので、カート内に存在する商品IDを取り出す為にはどうするか。

	//変数自体は何でも良いが$cartは使われてる可能性があるのでなるべくユニークな名前にする
	$cart_data = $app['eccube.service.cart']->getCart();
	foreach($cart_data->getCartItems() as $CartItem) {
		$ProductClass = $CartItem->getObject();
		$arr_cart_item_id[] = $ProductClass->getId();
	}

特にアレコレと説明する事ではないが、ShoppingController.phpの場合はカート内に商品が存在するか。と言う既存の判定後に入れる。
$arr_cart_item_idに入ったidを基にdtb_productのidと照会して処理を入れれば良い。

追記

dtb_product_class のIDだからdtb_product_classとdtb_productを結合すること。

そのいいねって幾ら貰えるんスか?

転職サイトに事実無根投稿、投稿者名開示を命令
https://headlines.yahoo.co.jp/hl?a=20170822-00050148-yom-soci

積年の恨み辛み、会社への不満。このご時世転職のひとつやふたつ。ってな業界で仕事をしているので、どうしても転職サイトや口コミって言うのは判断する材料の一つとしては見る。
IT屋さんの場合はどちらかと言えばオープンな企業も多く、自ら会社がこんな所ですよ。と言うブランド力として発信している所も多い。
一昔前は転職サイトに載っている情報だけが頼り、たまたま出会えたエージェントさんがその企業に明るい人でアレコレと教えてくれる。と言う事もあったが、基本的にはブラックボックス
そう言う意味では、転職の際に受け身になって転職出来れば良い。と言う考え方で企業に何を求めるかと言う事を見失い、結局転職したけど環境は寧ろ悪化する。ってな体験もした。

一握のネガティブと大々的なポジティブ

企業と言うイメージ、ブランドと言う観点からすると根も葉もない噂を立てられ、売り手市場の現在では企業側の「不利」なイメージは避けたい。
だからこそ「明るい職場」とか「笑い声が絶えない」とか「社員全員が家族みたいな」と言う昔からの常套句は、裏が有ると見てしまう。

笑い声が絶えない = 会社内が喧騒としていて集中出来る環境じゃねえんじゃね?
社員全員が家族みたい = 家族の為に尽くすのは当たり前だから土日の社内イベントは強制参加だけど「自主的」にやってるだけで代休なしね。と言う都合の良い解釈の仕方だけ押し付けてるんじゃね?

ヘソが曲がっているだけなのだが、過度に「個」に干渉して欲しくない。これに尽きると思う。
ひとつまみのネガティブを情報として確認すると、先程まで見ていたポジティブさは裏の有るポジティブじゃないかと言う疑心暗鬼に変わる。
そして上述した言葉尻から邪推をはじめる。そして2ちゃんなり転職系サイトでのネガティブ収集をはじめる。

結局の所、火のないところに煙は立たない。煙が立っているのだから何かしらの禍根は有る。
ただ、それが個人的な逆恨み的なモノか、相対的に見たネガティブな意見なのかは個々の判断になる。

一時期はFacebookで投稿したモノをいいねして下さいと言う回覧が回っていた時期もあった。
結局のところ、企業としての発信力はその程度のもので個々に半強制的に拡散させる。
そこに本当に「いいな」って言う環状はない。
広報の数値目標の為のいいね、個人的な影響力の誇示の為のいいね。
情報発信の草の根的なモノとして個人アカウントからいいねを押してね。と言う会社への忠誠度を試す踏み絵を行う。
結局はソーシャルで会社の事を言うな!と言う通達は出るが、会社が発信したいポジティブな情報に関しては拡散しろと言う。

実名を必要としない時代とは違い、Facebookなどソーシャルを介した場合、関連している人や考え方から個人を辿られる可能性がある。
個人のネットすらもビジネスに直結する時代、人のしがらみを気にせず、自分が誰かと言う事を考えずに文章が書けるブログに帰依した。
多分おっさんが心地良い距離と言うのは、前述した通り過度に「個」に干渉しない事と「個」に干渉して欲しくないと言う事だとこの頃思う。

EC-CUBE3で値引きをする

一番てっとり早いのは無料プラグインで配布されているクーポンコードプラグインを利用する。
→ https://www.ec-cube.net/products/detail.php?product_id=1069
ロックオンが作っているのでまず間違いがない。無料、大半はこれで事足りてしまう。

ただし、これはコードを入れると言う事をユーザーにさせなければならない為、値引きに1アクションを使う事が嫌だ。と言う人も中には居る。
じゃあどうすればコードとして値引きが出来るのか。と言う事を追ってみた。

/src/Eccube/Resource/template/default/Shopping/index.twig

##342行目から
                        {% if Order.discount > 0 %}
                        <dl id="summary_box__discount_price">
                            <dt>値引き</dt>
                            <dd>{{ (0 - Order.discount)|price}}</dd>
                        </dl>
                        {% endif %}

$Orderの中身にdiscountと言う変数で「値引き」を設定している。
と言う訳で、値引きに金額を入れてみる。
/src/Eccube/Controller/ShoppingController.php

##125行目
        // form作成
        $builder = $app['eccube.service.shopping']->getShippingFormBuilder($Order);

        $event = new EventArgs(
            array(
                'builder' => $builder,
                'Order' => $Order,
            ),
            $request
        );

ページへの変数のセットをするこの上あたりに記述

$Order->setDiscount(1000);

この状態で表示を確認すると

小計    ¥ 12,345
手数料  ¥ 0
送料    ¥ 1,000
値引き  ¥ -1,000

合計 ¥ 13,345税込

ってな訳で、値引きには金額がセットされているが総計に対しての金額の再計算がされていない。

$discount = 1000;
$Order->setDiscount($discount);
$total = $total - $discount;
$Order->setTotal($total);

明示的に総計を再計算して$Orderにセットする。

小計    ¥ 12,345
手数料  ¥ 0
送料    ¥ 1,000
値引き  ¥ -1,000

合計 ¥ 12,345税込

と言う訳で値引き出来るようになった。
ただしこれは表示ページのみ。
同様の処理をconfirmの処理の中にも入れる必要があるので注意。
(記述だけだと表示だけなので、管理画面で確認した時に割引額と総計が変わっていない)

クーポンとの使い勝手の差は、個別商品の割引額を計算してソースコードに貼り付ける事が出来ること。
一律○%の割引等が出来る。ただし細かな設定や、割引額が大きすぎる場合、端数等の問題が有るのでこの辺をどう対処するかはやはりプラグインのロジックと言うのは練られているのでこの辺を考えたくなければクーポンの方が良いかと。

EC-CUBE3のCSVの新規出力データを作成し画面上でダウンロードできるようにする

CSVファイルで取り込んで連動する。多分今後もなかなかこの手法から脱却するのは難しいと思う。
各システムがその他の事を考えていないし、連動するシステムを想定した作りなんてしない。
だからCSVであればエクスポート可能だよーとしておけば、あとは運用側が創意工夫してなんとかしてね。となる訳で。
EC-CUBEにもCSVファイルを「作る」事は出来ても、項目を追加するのはちょっと手間が掛かる。

マスタデータの追加

設定 > システム情報管理 > マスターデータ管理を開き mtb_csv_type を選択する。
ここでCSVファイル出力用のプルダウンのデータを制御している。
IDには既存の数値とは被らないIDを入れ、Nameには好きな物を入れる。

設定 > 基本情報設定 > CSV出力項目設定を選択しプルダウンをクリックするとマスターデータで追加された項目が追加されている。
ただし問題は、CSV出力する項目が入力されていない。
ここからはSQLを利用する。

DBの流し込み

phpMyAdminを使うと簡単だが、まず設定項目に関してはdtb_csvに格納されている。
csv_idは自動採番なのであまり気にする必要はない。csv_typeはマスタデータで必要となるデータを入れる。
必要なデータはテーブル定義書あたりを参考にすると良い。マスタに既に入っているIDから出力するデータが何かと言う事自体は確認出来るので、それをコピーしてINSERT文を流し込む。
例) 1.商品(dtb_product) 2.会員(dtb_customer) 3.受注(dtb_order)

仮に会員データを取得したい場合はcsv_typeが2のデータを抽出し、マスターデータ管理で追加したIDに書き換えてINSERT文を実行。
csv_idは現在の最大値からネストした数値を割り振る。
新規マスターデータIDが6の場合はこんな感じ。

INSERT INTO `dtb_csv` (`csv_id`, `csv_type`, `creator_id`, `entity_name`, `field_name`, `reference_field_name`, `disp_name`, `rank`, `enable_flg`, `create_date`, `update_date`) VALUES
(999, 6, 1, 'Eccube\\Entity\\Customer', 'id', NULL, '会員ID', 1, 1, '2017-07-12 20:58:58', '2017-07-12 20:58:58'),

任意のページでCSVダウンロード出来るようにする。

間借りする形になるが、会員管理>会員マスター>CSVダウンロードに新たに今回のダウンロード項目を付け足し、管理画面からCSVダウンロード出来るようにする。

フックポイントの作成
/src/Eccube/ControllerProvider/AdminControllerProvider.php

#customerの部分に追加
#_customの部分は自分の好きな名前にしておく。
        $c->match('/customer/export_custom', '\Eccube\Controller\Admin\Customer\CustomerController::export_custom')->bind('admin_customer_export_custom');

イベントの作成
/src/Eccube/Controller/Admin/Customer/CustomerController.php

#public function export(Application $app, Request $request) をコピーする
#_customの部分はフックするポイントに合わせる。
    public function export_custom(Application $app, Request $request)
    {

        // タイムアウトを無効にする.
        set_time_limit(0);

        // sql loggerを無効にする.
        $em = $app['orm.em'];
        $em->getConfiguration()->setSQLLogger(null);

        $response = new StreamedResponse();
        $response->setCallback(function () use ($app, $request) {

            // CSV種別を元に初期化.
	  // ※※ここのinitCsvTypeを今回追加したcsv_typeの番号にする。
            $app['eccube.service.csv.export']->initCsvType(6);
	・
	・
	・
    }

テンプレートの追加
/src/Eccube/Resource/template/admin/Customer/index.twig

              <ul class="dropdown-menu">
                <li><a href="{{ url('admin_customer_export') }}">CSVダウンロード</a></li>
                <li><a href="{{ url('admin_setting_shop_csv', { id : constant('\\Eccube\\Entity\\Master\\CsvType::CSV_TYPE_CUSTOMER') }) }}">出力項目設定</a></li>
                <li><a href="/admin/customer/export_custom">カスタムCSVダウンロード</a></li>

ここまで設定すると、CSVダウンロードの項目にカスタムCSVがダウンロード出来るようになる。
項目は、設定>基本情報設定>CSV出力項目設定
で設定した物が出力されている事を確認。

細かいけど、こう言うカスタマイズって必要な物だから文献としてあって損は無いかなーと。