amazon.comでの支払いは外貨円貨どっちがお得なのか

amazon.comでの買い物は円貨での支払いが可能だ。

TTSでレートが111.96の日の

amazon.comでのレートが115.57

だったので、amazonの手数料はおおよそ3%。

%e3%83%ac%e3%83%bc%e3%83%88amazon2

 

円貨はやめて、そのまま外貨で購入し、後日カードの請求を見てみたところ

レートは113.52であった。amexの外貨取扱手数料を公表されていないが、今回の結果では1.3%。

%e3%83%ac%e3%83%bc%e3%83%88amex2

amazon上で円貨で払うより、カード会社に円貨精算を任せたほうがお得である。

 

 

TTSは三菱UFJ銀行のものを取っておいた。

%e3%83%ac%e3%83%bc%e3%83%88tts2

 

 

 

 

ebayの役立つツール

https://developer.ebay.com/tools

staticshot_15-07-2018_17-35-54

Solve Problemsの中

①Get eBay Metadata Tool

サイトで使える列挙値を調べられる。例えばオーストラリアにおいてShippingServiceDetailsに使える値はなにかということを調べられる。

アメリカではinternationalのshipping detailで下記を指定できるが、

OtherInternational,  StandardInternational,  ExpeditedInternational

オーストラリアではエラーになる。代わりに指定できるもので近そうなのは下記になる。

AU_IntlEconomyTrackedNoSignature,  AU_IntlStandardTrackedSignature,  AU_IntlExpressTrackedSignature

 

 

②Item Specfics Lookup Tool

categoryごとで要求されるitemspcificを確認できる。またカテゴリー番号をてっとり速く探すことにも適している。

 

 

 

ebay api呼び出し制限

最近ebayの挙動が不安定であり、時々下記メッセージが帰ってくる。

Your application has exceeded usage limit on this call, please make call to GetAPIAccessRules to check your call usage.

これを機に、色々調べてみた。

 

まずはメッセージにある通り、GetAPIAccessRulesを実行。大した情報じゃないんだから普通にwebに掲載しておいてくれればいいのにという内容。

xmlで帰ってくるのだが、単純な構造なので、2次元に整形したのが下記。

CallName CountsTowardAggregate DailyHardLimit DailySoftLimit DailyUsage HourlyHardLimitHourlySoftLimit HourlyUsage Period PeriodicHardLimit PeriodicSoftLimit PeriodicUsage RuleCurrentStatus RuleStatus
ApplicationAggregate TRUE 1,500,000 1,500,000 2 1,500,000 1,500,000 2 -1 0 0 0 NotSet RuleOn
AddItem FALSE 5,000,000 5,000,000 0 5,000,000 5,000,000 0 -1 0 0 0 NotSet RuleOn
LeaveFeedback FALSE 1,500,000 1,500,000 0 1,500,000 1,500,000 0 -1 0 0 0 NotSet RuleOn
RelistItem FALSE 5,000,000 5,000,000 0 5,000,000 5,000,000 0 -1 0 0 0 NotSet RuleOn
GetAPIAccessRules FALSE 1,000 950 0 1,000 950 0 -1 0 0 0 NotSet RuleOn
SetApplication FALSE 5,000 5,000 0 5,000 5,000 0 -1 0 0 0 NotSet RuleOff
GetNotificationPreferences TRUE 10,000 10,000 0 1,000 1,000 0 -1 0 0 0 NotSet RuleOn
SetNotificationPreferences TRUE 1,500,000 1,500,000 0 1,500,000 1,500,000 0 -1 0 0 0 NotSet RuleOn
PasswordAuthenticationLimiter TRUE 0 0 0 0 0 0 -1 0 0 0 NotSet ApplicationBlocked
NonUTF8UsageLimiter TRUE 0 0 0 0 0 0 -1 0 0 0 NotSet ApplicationBlocked
GetNotificationsUsage TRUE 1,000 1,000 0 50 50 0 -1 0 0 0 NotSet RuleOn
LegacyXmlEnforcementSoft TRUE 0 0 0 0 0 0 -1 0 0 0 NotSet ApplicationBlocked
LegacyXmlEnforcementHard TRUE 0 0 0 0 0 0 0 0 0 0 NotSet ApplicationBlocked
GetSearchResultsExpress TRUE 10,000 10,000 0 10,000 10,000 0 -1 0 0 0 NotSet RuleOn

肝心のGetOrdersはなかった。。。

 

次にapiの制限が書かれている下記ページ

https://developer.ebay.com/support/api-call-limits

GetOrdersが所属するTradingApiは1,5百万。制限に引っかかるわけないのだが。内部で細分化されているのか。。。

 

 

最後に自分のapi状態が見える下記ページ

https://developer.ebay.com/my/stats?index=0&env=production&start=2018%2F07%2F13+22%3A00&end=2018%2F07%2F14+22%3A00

staticshot_15-07-2018_17-26-49

時間はPST(カリフォルニア時間)で指定する。

GetOrdersは24時間で4,000以下。大したことはない。。。

 

品質

去年度より進めて来たリリースに至る手順見直しで、本年度前半は大きな障害もなくシステム稼働できた。

また、ユーザの皆様より頂いた、amazonの送料の考え方の変更、amazon_au、ebay_au,motor対応、郵便局集荷見直し対応、輸入、メール管理機能など実装対応することができた。(まだできていないことは順次やっていきますので温かい目で見守ってください)

 

一方webシステム以外のところでは、サーバ代金の支払いのクーポン期限を逸したり、財布を落としたりと、重大なミスが多い前半戦だった。(優しい人のおかげで両方とも大事にはいたらず)

 

なかでも、やってしまったのは、

ネムが必要だったのに、ネモを買ってしまったことだ。

思い返してみれば、物販のお姉さんも「緑で大丈夫ですか」と言っていた。ここでミントグリーンと言わなければならなかったのである。

dav

貼った後気がついた。しばらく唖然としたのち、これはこれで良く、むしろ自分をnemo推しへと変容していくのがいいのではと感じた。

 

2017年はもがを失って大変だったと思うが、今では、色々な葛藤をすべて昇華させているように見える。ちゅるりちゅるりらも歌ってたし。

 

彼女らは前しか向いていないのである。

ebayapiのwsdl

2018/7/10、日本時間午前中より

ebayのfiletransfer apiで下記のエラーが出て、まったくfileを受け付けなくなった。

 

Exception in thread “main” com.sun.xml.ws.streaming.XMLStreamReaderException: XML reader error: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog
at [row,col,system-id]: [1,0,”http://developer.ebay.com/webservices/file-transfer/latest/FileTransferService.wsdl”]

 

エラーはebayから提供されているLMSClientJobsライブラリの内部で、手が出しづらい。

エラーの内容を素直に読み取るとprologで変なEOFとのことで、wsdl周りを色々試して、試行錯誤すること2時間。

FileTransferService.wsdlをローカルにおいて読み込むようにしたら、上記エラーを回避できた。

proxy使ってないし、なぜ、急にこうなってしまったのか。

ebayapiが不安定

ebayapiが不安定である。

bulkdataexchangeからのfileuploadで、ここ数日エラーが出まくりである。

 

①Please specify a File with Valid Format

謎である。具体的なエラー内容は通知されない。当然xmlとしてはvalidなものである。全く同一のファイルでも時間帯によっては通ったり通らなかったり

 

②There is failure during file upload and post-upload checking

謎である。具体的なエラー内容は通知されない。なおこの後、abort jobをすると下記が出る。

The job is already in terminated states such as completed, failed and aborted

 

③The File Upload is already in progress

謎である。もちろん同じfile reference idを指定するようなことはしていない。

 

④Client received SOAP Fault from server: Error reading from XML stream: Read timed out Please see the server log to find more detail regarding exact cause of the failure.

アップロード中にタイムアウトする。大体リトライすれば2回目は成功する。

 

⑤The file has already been uploaded

どうも④の後に発生するぽい。④でエラーで処理されているが、実はファイルアップロードは完了しているということか。。。

 

maru9としては、とにかくエラーになったら、abort jobして、即リトライ。

これで、大半はうまくいくが、

①だけは、うまくいかない。signの計算方法でもまちがえているんじゃないか。。。

 

7月からの日本郵政サービス見直し

各所で言われているように、7月から日本郵政のサービスが改悪される。

輸出業務でもっとも痛い変更は下記

・集荷条件の見直し。EMS・国際小包以外で集荷に来てくれない。

 

局によっては、上記集荷時についでに、他種の郵便物ももっていってくれるそうだ。

ただし、その場合でも、後納支払いができない。郵便物に切手をはる必要がある。

 

よってユーザとしては下記の2点のうちどちらかの対処が必要だ。

・窓口に持っていって後納

・小型包装物に切手を貼って、ついでに集荷してもらう。

 

集荷料とか運賃を上げるとかで、集荷サービスは続けてもらえないのかと

営業に相談したが、上の決定ということで、なんともならないとのゼロ回答。。。

 

ゆうパック一つを集荷するよりも、一度に数十個差し出す業者の方がビジネスとしても

大事にすべきと思うが。

 

どうも話を聞いてみると、悪い担当が、集荷時にちょろまかすことがあり、それを取り締まることができないという所が、今回の制度改正の肝っぽい。

 

確かに、人によっては、重量などをきちんと図らず通してくれたり、ちょっと前にDMで郵便部長が不正したニュースがありましたね。

エンドユーザおよびビジネス的にどうこう言う観点はお門違いで、郵便局のガバナンスとしての制度改正という解釈が正しいのかもしれない。

 

 

 

 

 

 

squidの起動に失敗する

5月 31 13:57:49 appprf systemd[1]: Starting Squid caching proxy…
5月 31 13:57:49 appprf squid[30307]: /usr/sbin/squid: relocation error: /usr/sbin/squid: symbol SSL_set_alpn_protos, version libssl.so.10 not defined in file libssl.so.10 with link time reference
5月 31 13:57:49 appprf systemd[1]: squid.service: control process exited, code=exited status=127
5月 31 13:57:49 appprf systemd[1]: Failed to start Squid caching proxy.
5月 31 13:57:49 appprf systemd[1]: Unit squid.service entered failed state.
5月 31 13:57:49 appprf systemd[1]: squid.service failed.

 

さっぱりわからないが、調べたところ使用しているopensslにバグがある模様。

yum update openssl

これで起動できた!

 

 

 

画像の直リンクを取れるwebサービス

https://cloudinary.com/
staticshot_21-05-2018_18-57-36

cloudflareと同じ運営主体だ。

まずは無料でアカウントを取得しよう。

3

ログインしたら、media libraryに移動。最初からサンプルの花の画像が入っている。

操作

1.画像の上にマウスを置く

2.<>が表示され、そこのマウスを持っていく

3.copy urlと表示されるので、クリック

 

これで画像の直リンクが取得できる。

 

magento2restapi

magento2のrest apiで急に

{"message":"You did not sign in correctly or your account is temporarily disabled."}

と出て使えなくなってしまった。

調べてみると、oauthの認証で一定回数失敗すると、うまく行かなくなってしまうらしい。

対処はmagentoのテーブル
oauth_token_request_log
の対象ユーザのエラーの行をdelete

最近、パスワードの有効期限が切れ、webのadminからパスワードを変更したのだが、
それに伴い、aouth側の、対処しておかなければいけなかったといことだ。

一定以上失敗すると、oauth側をちゃんとしたパスワードに治しても、上記エラーが出て使えない所がミソ。

mysql データ圧縮

mysql(mariadb)でalter tableすると、変更元ファイルサイズと同程度の空き領域が必要になり、足りないと変更が失敗する。

足りない場合、空き領域の確保が必要だが、そもそもinsert deleteを繰り返してきたテーブルは、ファイルサイズがでかくなっており、

DBそのものをなんとかしないと、という状況に陥りがちだ。

なぜだか、optimize tableも途中で失敗するので、思考停止で、dump, restoreで対処するとよい。

この時、そのままdumpすると、ファイルサイズが巨大になるので、zipする。

 

mysqldump -R -u user -ppassword dbname | gzip -c > /var/tmp/dump.gz

以下mysqlクライントで実行

drop database dbname

create database dbname

zcat /var/tmp/dump.gz | mysql -u user -ppassword dbname

 

 

SSH

リーモサーバにファイルを転送

scp -i 鍵 -p ポート ローカルファイル ユーザ@IP:リモートファイル

リモートサーバでコマンドを実行

ssh -i 鍵 -p ポート -l ユーザ IP コマンド

メール管理

maru9では各プラットフォームでバイヤーから送られてくるメールを一括表示可能です。

返信して終わりのものは、即、対処完了にし、できないものは、メモ欄にその旨を入力して、対処未のままにしておきます。

 

2017-03-25_13h41_19

対処未のものがないように日々管理していきます。

 

ebay_usのregion

ebayの出品画面で、region(americas,europe,asia)を選んだ場合に対象となる国。

staticshot_19-02-2018_20-56-03

Country code Region
AntiguaandBarbuda AG Americas
Anguilla AI Americas
NetherlandsAntilles AN Americas
Argentina AR Americas
Aruba AW Americas
Barbados BB Americas
Bermuda BM Americas
Bolivia BO Americas
Brazil BR Americas
Bahamas BS Americas
Belize BZ Americas
Canada CA Americas
Chile CL Americas
Colombia CO Americas
CostaRica CR Americas
Dominica DM Americas
DominicanRepublic DO Americas
Ecuador EC Americas
FalklandIslands(Malvinas) FK Americas
Grenada GD Americas
FrenchGuiana GF Americas
Greenland GL Americas
Guadeloupe GP Americas
Guatemala GT Americas
Guyana GY Americas
Honduras HN Americas
Haiti HT Americas
Jamaica JM Americas
SaintKittsandNevis KN Americas
CaymanIslands KY Americas
SaintLucia LC Americas
Martinique MQ Americas
Montserrat MS Americas
Mexico MX Americas
Nicaragua NI Americas
Panama PA Americas
Peru PE Americas
SaintPierreandMiquelon PM Americas
PuertoRico PR Americas
Paraguay PY Americas
Qatar QA Americas
Suriname SR Americas
ElSalvador SV Americas
TurksandCaicosIslands TC Americas
TrinidadandTobago TT Americas
UnitedStates US Americas
Uruguay UY Americas
SaintVincentandtheGrenadines VC Americas
Venezuela VE Americas
VirginIslands,British VG Americas
VirginIslands,US VI Americas
UnitedArabEmirates AE Asia
Afghanistan AF Asia
Armenia AM Asia
Azerbaijan AZ Asia
Bangladesh BD Asia
Bahrain BH Asia
BruneiDarussalam BN Asia
Bhutan BT Asia
China CN Asia
Georgia GE Asia
HongKong HK Asia
Indonesia ID Asia
Israel IL Asia
India IN Asia
Iraq IQ Asia
Jordan JO Asia
Japan JP Asia
Kyrgyzstan KG Asia
Cambodia KH Asia
Kuwait KW Asia
Kazakhstan KZ Asia
LaoPeople’sDemocraticRepublic LA Asia
Lebanon LB Asia
SriLanka LK Asia
Mongolia MN Asia
Macao MO Asia
Maldives MV Asia
Malaysia MY Asia
Nepal NP Asia
Oman OM Asia
Philippines PH Asia
Pakistan PK Asia
SaudiArabia SA Asia
Singapore SG Asia
Thailand TH Asia
Tajikistan TJ Asia
Turkmenistan TM Asia
Turkey TR Asia
Taiwan,ProvinceofChina TW Asia
Uzbekistan UZ Asia
Vietnam VN Asia
Yemen YE Asia
Andorra AD Europe
Albania AL Europe
Austria AT Europe
BosniaandHerzegovina BA Europe
Belgium BE Europe
Bulgaria BG Europe
Belarus BY Europe
Switzerland CH Europe
Cyprus CY Europe
CzechRepublic CZ Europe
Germany DE Europe
Denmark DK Europe
Estonia EE Europe
Spain ES Europe
Finland FI Europe
France FR Europe
UnitedKingdom GB Europe
Guernsey GG Europe
Gibraltar GI Europe
Croatia HR Europe
Hungary HU Europe
Ireland IE Europe
Iceland IS Europe
Italy IT Europe
Jersey JE Europe
Liechtenstein LI Europe
Lithuania LT Europe
Luxembourg LU Europe
Latvia LV Europe
Monaco MC Europe
RepublicofMoldova MD Europe
Montenegro ME Europe
TheFormerYugoslavRepublicofMacedonia MK Europe
Malta MT Europe
Netherlands NL Europe
Norway NO Europe
Poland PL Europe
Portugal PT Europe
Romania RO Europe
Serbia RS Europe
RussianFederation RU Europe
Sweden SE Europe
Slovenia SI Europe
Slovakia SK Europe
SanMarino SM Europe
Ukraine UA Europe
HolySee(VaticanCitystate) VA Europe

出品情報作成ツール

maru9の出品情報作成ツールは、googlespreadsheetで実装されています。

asinを入力して実行すると商品情報を自動で取ってきます。この情報はさらにgoogle翻訳関数で自動英訳されます。

staticshot_20-02-2018_11-24-45

ebayのカテゴリIDだけ、補完して、後はmaru9に貼り付けると、出品作業は完了です。

そのままfileexchage用にすることもできます。

maru9の出品画面

maru9の出品画面は、googlespreadsheetおよびexcelから簡単に出品情報を貼り付けられるよう、

excelライクな管理画面になっています。

staticshot_20-02-2018_11-18-21

 

fileexchangeと同じように情報を作成し、この画面に貼り付けておくと、定期的にebayに情報をアップロードしてくれます。

(自動でアップロードされるfileexchangeと考えてください)

 

値付けに関しては、amazon_jpの価格と、各自の設定に従い、自動で調整されます。

未出荷アラートをchatworkに自動投稿する。

maru9から送信される未出荷アラートメールをchatworkに表示する方法。

maru9→各位メール→zapier→chatworkといったイメージ

 

 

まず、zapierでアカウントを作成。top画面で make zapをクリック

 

gmailと検索。出てきたものをクリック

staticshot_06-02-2018_22-35-21

 

New Email Matching searchを選択

staticshot_06-02-2018_22-36-28

 

connect an accountをクリック

staticshot_06-02-2018_22-36-51

 

gmailで色々許可する画面が表示されるので、全部肯定的な選択肢を選んでいく。

 

その後zapierに戻ってきたら、save+continueをクリック

staticshot_06-02-2018_22-38-18

 

 

テキストエリアに

from:sendonly@white-box.biz subject:時間以内に出荷期限が来ます。

と入力し、continueを押下

staticshot_06-02-2018_22-43-32

fetch & continueを押下

staticshot_06-02-2018_22-46-39

 

continueをクリック

staticshot_06-02-2018_22-46-53

 

chatworkと入力し出てきたものをクリック

staticshot_06-02-2018_22-47-52

 

send messageを選択

staticshot_06-02-2018_22-48-12

 

 

一旦chatworkを開いて、右上から、api設定を押下

staticshot_06-02-2018_22-51-06

 

パスワードを入れて表示をクリックすると、apitokenを入手できる。

staticshot_06-02-2018_22-51-30

 

connect an accountをクリックするとapiを聞かれるので、先程取得したものを入れる。

staticshot_06-02-2018_22-52-15

 

save+continueをクリック

staticshot_06-02-2018_22-52-47

 

chatworkにどう表示するかを決める。

roomにどのroomに表示するかを入れ、

textにメールをどう表示するかを入れる。下記は、日時、メールタイトル、メール本文を表示する設定をした例

staticshot_06-02-2018_22-55-40

send test to chatworkをクリック

staticshot_06-02-2018_22-56-39

finishをクリック

staticshot_06-02-2018_22-57-13

ship alertと名前を付け、your zap is を onにし完了。

staticshot_06-02-2018_22-57-58

amazonギフト券

amazonでよくお買い物する場合は、ギフト券を買っておいたほうが断然お得

90000円以上チャージすると2.5%ポイントが貰える。

staticshot_07-02-2018_10-03-49

 

アカウントサービスから、Amazonギフト券を選択

staticshot_07-02-2018_09-44-34

 

 

 

 

Amazonギフト券(チャージタイプ)を購入するを選択

staticshot_07-02-2018_09-45-07

 

 

今回は300000円分購入する

staticshot_07-02-2018_09-45-43

 

コンビニ・ATM・ネットバンキング・電子マネー払いを選択

staticshot_07-02-2018_09-47-16

 

 

普通に商品を購入するのと同じように、進める

staticshot_07-02-2018_09-47-57

確定するとメールが送られてくる。その中にある、お支払い方法別の手順のリンクをクリックすると下記画面に飛ぶので、

ネットバンキングを選択。

 

staticshot_07-02-2018_09-53-51

 

今回はSBIで支払う

staticshot_07-02-2018_09-54-35

後は、順番に進めていけば、無事支払ができ、ギフト券残高がチャージされる。

 

 

paypal payoneer 手数料比較

payoneerの方が断然手数料が安い。

下記は、Fx会社で、ドル円が109.4の時に比較

paypal=106.1 + 250yen

payoneer=108.37

なので、paypalのお金はpayoneerに送ってから、日本の銀行に送ろう

 

staticshot_07-02-2018_10-51-24

staticshot_07-02-2018_10-49-37

paypal→payoneer

paypalで、出金先の口座としてアメリカの口座を指定できる。

payoneerの方が手数料が安いので、paypal→payoneer→日本の銀行というルートを利用したい所。

だが、payoneerで取得した口座を登録しようとしても下記メッセージが出て、うまくいかない。

「申し訳ございませんが、お客さまのリクエストを処理できません。しばらくしてから再実行してください。」

 

paypalサポートに電話で問い合わせてみると

payoneer口座に限らず、アメリカ口座を登録する時は、paypalに連絡してからじゃないと、登録できないということ。

 

だったら、そういうメッセージにしてくれ。という感じ。

 

梱包番号の利用

maru9で自動的に発行される梱包番号を、最終封入前の梱包に思い切って記載。

maru9で作成したラベルにはFAX番号の部分に梱包番号が印字されるので、ラベルの貼り間違いを防止できます。

img_20171210_153139

ダンボール研究

amazonダンボール

エントリー

No1 XE08 30g

img_20171210_112557

圧倒的軽さ

 

No2 XS07 135g

img_20171224_222030

下のXM系に比べ、少し縦が短く28cm

 

No3 XM49 147g

img_20171224_222043

No4 XM53 156g

img_20171224_222056

No5 XM50 243g

img_20171224_222107

 

小型包装物で100g増えることは、約150円送料が増すことを意味する。

ダンボールを再利用するのもいいが、こんなパターンはクッション封筒に入れ替えたほうがいいだろう。

クッション封筒は50円/1枚くらいで購入できる。

img_20171210_121204

 

 

 

JAPAN IT WEEK 通販ソリューション展

上記に参加のため、はるばる幕張メッセまで行ってきました。

img_20171110_111724

最終日ということもあって、すごい活気でした。

 

発光ダイオードを高速で回転させて、ホログラムのように映像を写す技術。

どういうビジネスになるかは検討中とのことでしたが、とにかく不思議で、人の足を止めるものとして、そうとうすごかったです(写真で凄さが伝わらないですね。。。)

img_20171110_160539

 

magentoのサポート企業でもらったノベルティのハンドスピナー!

magento認定マスターの人がいて、色々教えてもらえました。やはりmagento2デフォルトのimportモジュールはイケてないとのこと。恐れず、自分でつくれよ! と心強いアドバイスをもらって、自作の決心がつきました。

img_20171113_222553

 

 

リモート開発環境1

もし各自のPCが壊れたら、サービスの保守ができなくなってしまう。

そんな事態を想定し、azureで開発環境を整えることとした。

 

1.azureでPC環境を用意する。

bizsparkライセンスのお陰で、1年間無料で使える。

OSはwindows10

2cpu,8Gメモリ(自分が使っているPCと同じ)

 

手順

新規>Computeからwindows Clientを選択

staticshot_13-11-2017_21-26-59

sindows 10 Pro か Pro Nを選択

staticshot_13-11-2017_21-28-01 staticshot_13-11-2017_21-28-56

B2MSを選ぶ

staticshot_13-11-2017_21-30-08

デフォルトのままstaticshot_13-11-2017_21-30-57

作成

staticshot_13-11-2017_21-32-28

作成されたvirtural mashineからネットワークを選択し、受信ポートの規則を追加する。

staticshot_13-11-2017_22-05-33

RDPを追加。

 

 

staticshot_13-11-2017_22-05-57

 

概要を選択し、接続をクリックすると、リモート接続用のrdpファイルがダウンロードされるので、それをダブルクリック。staticshot_13-11-2017_22-06-45

 

2.windowsライセンス。

接続したwindowsのスタートボタンから、歯車マークの設定をクリック。

settingのupdate & securityのactivationのchange product keyをクリック。

ws000000

 

普通に買うと高いので、bizsparkのを使う。

とりあえず、今後も使えそうなwindows10系のライセンスを発行しておく。

staticshot_13-11-2017_21-24-48

 

 

 

3.使用しない時は。

停止済み(割当解除)をしておけば、課金されない。

使うときだけ、起動すればよい。

staticshot_13-11-2017_21-25-05

dbリストア手順

dbがクラッシュしてどうしても起動しない。

日時でフルバックアップを取っているので、そこから戻します。

バックアップ

mysqldump -R -u user -ppassword  dbname filename.sql.gz

 

復旧

mv /var/lib/mysql /var/lib/mysqlcrashed  //念の為壊れたものを移動

mkdir /var/lib/mysql

chown mysql:mysql mysql

mysql_install_db –datadir=/var/lib/mysql  –user=mysql //DB初期化

mysql -u root

GRANT ALL ON *.* TO username@’%’ IDENTIFIED BY ‘password’ WITH GRANT OPTION; //ユーザ作成

GRANT ALL ON *.* TO username@localhost IDENTIFIED BY ‘password’ WITH GRANT OPTION;

exit

mysql -u username-p //新しいユーザでログイン

create database dbname //DB作成

exit

mysql -u username -ppassword dbname < /filename.sql //リストア

 

圧縮してバックアップ、リストア

mysqldump -u user -p password dbname | gzip > dbname.dump.gz

zcat dbname.dump.gz | mysql -u user -p password dbname

 

 

bizsparkサブスクリプション

マイクロソフトのbizsparkサブスクリプション。

これは新規創業者に、azureなどを月額15500円分最大2年間貸してくれる太っ腹な施策だ。

では、どれくらい何を使えるのかというのがなかなか難しい。

下記は、仮想マシンを2台用意して、28日使いっぱなしにした金額だ。

まあ、15500という金額をそれなりに使えたと思える数字になった。

・コンピュート時間 6457円のほうが、Standard DS1 (1 vcpu、3.5 GB メモリ)

・コンピュート時間 2965円ののほうが、Standard A1_v2 (1 コア、2 GB メモリ)

 

bizspark

 

amazon出品レポート

amazonの出品レポートの種類がすごく増えている。

ama

現状まず押さえておきたいのが、下記2つ

・出品中の商品レポート 通称 inventry report

・出品されていない商品のレポート 通称 inactive listing report

前者は、amazon上で現在販売できている商品の簡易レポート。列はsku、asin、price、quantityしかない。

後者は、在庫0、amazonで出品停止されたもの、価格異常とされたもの等、amazon上で販売できていない商品のレポート。

 

一時的にこちらの在庫が切れているもので、将来復活の可能性があるものは、そのままでもいいが、

カテゴリ販売者ではないなど、amazonで出品停止されて、出品できていないものはinventryから削除してしまったほうがよい。

 

ちなみにapiでとれる

_GET_FLAT_FILE_OPEN_LISTINGS_DATA_

はquantity=0のものも入っているが、amazonで出品停止されているものは入ってこない。

apiと画面で取れるレポート種が一致しないのでとてもわかりずらい。

 

 

オーケストラ

先日ステージマネージャーの仕事をしてきました。
厳かな雰囲気の教会で、とても素敵な演奏会でした。

img_20171029_122215

当日は、あいにくの天気でしたが、天気の良い日は、ステンドグラスが光り輝くとのこと。

今度、ミサにいってみようかな。

googledriveのファイルのダウンロードリンクを作る

googledrive上で、ファイルを右クリックし「共有可能なリンク」を選ぶと、下記のようなリンクが取れる。

https://drive.google.com/open?id=0B9jvaIEtqKzDamhuNHdtV0UyT3c

これを下記の形に変換する。

https://drive.google.com/uc?id=0B9jvaIEtqKzDamhuNHdtV0UyT3c

 

画像を表示したい場合は

https://drive.google.com/uc?export=view&id=ID

mysqlのクライアントへの返送文字コード

こんな感じで、文字コードを指定できる。

-eと組み合わせても使えるから、よけいな文字コードの変換も不要になって便利だね。

#mysql -u ユーザ名 -pパスワード -h ホスト名 –default-character-set=cp932

MariaDB [(none)]> show variables like ‘%char%’;
+————————–+—————————-+
| Variable_name | Value |
+————————–+—————————-+
| character_set_client | cp932 |
| character_set_connection | cp932 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | cp932 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+————————–+—————————-+
8 rows in set (0.01 sec)

MariaDB [(none)]> exit
Bye

 

 

 

#mysql -u ユーザ名 -pパスワード -h ホスト名 –default-character-set=sjis

MariaDB [(none)]> show variables like ‘%char%’;
+————————–+—————————-+
| Variable_name | Value |
+————————–+—————————-+
| character_set_client | sjis |
| character_set_connection | sjis |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | sjis |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+————————–+—————————-+
8 rows in set (0.01 sec)

CSVダウンロード

データベースのデータを引っこ抜いて、ユーザにダウンロードして使ってもらう。というシュチュエーションはよくあると思うのだが、ベスト・プラクティスがない。

要件

1.実行環境はphp、DBの文字コードはUTF8

2.windows,macのエクセルできれいに開ける。

UTFの場合、windowsエクセルはUTF8BOM。macはUTF-16LE。→ しょうがないのでSJISで

タブ区切りは、そのままでは、きれいに表示されない。→ カンマ区切りで。

3.データ最大5万件

オンラインで提供するので、ユーザの待ちは、まあ1分が限界。

 

でphpで色々試したのが

fputcsvが一番早いが、改行コードがLF。CRLFにするには、出力ストリームの調整が必要でめんどくさいしわかりずらい。

実測15sec/10000件くらい。

1行ずつデータ加工して、fwrite 実測20sec/10000件

Webで調査、そして実際にコードを書いて試すこと数時間。もうこれはphp(PDO)を前提にしている限り、性能向上は無理なんじゃないかと考えて、方向転換。

バッチ処理にして、処理完了後ユーザがダウンロードできるようにするのが一般的だが、今その仕組みはないので、そうとうな作り込みになる。。。

サーバにmysqlクライアントは入っているのでそれを使えば??

1.とりあえず、それっぽいファイルを吐く。

$file=CSVファイル名。

$command = “パスmysql -u ユーザ名 -pパスワード -h ホスト名 –default-character-set=sjis DB名 -e \”実行したいSQL\” > $file”;
$ret = exec ($command);

2.CSVに加工

$str = file_get_contents(file);
$str = str_replace(‘”‘,'””‘,$str);   //データ内のダブルコーテーションをエスケープ
$str = str_replace(“\t”,'”,”‘,$str); //タブを”,”に置換
$str = preg_replace(“/^|$/m”,'”‘,$str);//行頭行末を”に置換
$str = str_replace(“\n”, “\r\n”, $str);//LFをCRLFに テキストで開く人用。
$str = mb_convert_encoding($str,”SJIS”,”UTF-8″); //SJISに sqlでやってしまうように変更
file_put_contents(file, $str);

 

fputcsvで1分以上かかっていた処理が

この実装だと、10秒になった。

数値を含め、全てのデータをダブルコーテーションでくくるのが気になるけど。。。

あとはnullデータががNULLと表示されてしまうところと

データ内にタブがあると、1列ずつずれるところ。

タブについては、入力時にタブを入力されないようにすることで防げる。

NULLを含むカラムを出力する場合はstr_replaceで空文字に置き換えてしまえばいいとする。

 

 

エクセルでCSVが

UTF8、タブを区切り文字としてのデフォルトオープンを扱ってくれれば、ほとんどの変換処理はいらないのだが。

赤塚

ebay connect 2017

に参加してきました。

ebayが新規にapiを公開し、説明の内容によると、最大のネックだったカテゴリIDもAPIで引っ張ってこれそうです。

https://go.developer.ebay.com/api-documentation

研究して、目処が付けば実装してみようと思います。

img_20170915_131230

 

ebayの社員さんや、色々な開発者さん、また我々のサービスに興味をもってくれた参加者もいて、とても充実した時間でした。

 

img_20170915_202032tori

 

 

おみやげもこんなにもらってebay太っ腹!

 

赤塚

ebayapiで障害発生

maru9で使っているbulkdataexchangeに障害が発生していたようで、

2017/07/11 12:00から

2017/07/12 10:00まで

価格更新ができな状況になっていました。

ebayのどこにも報告されていないし、告知くらいしてほしいですね。

 

magento2:メールモジュール

magento2にはデフォルトでsmtp送信する機能はない。

そのためmagento2-gmailsmtpapp.gitをインストールする。
cd /var/www/html/magento2/
php /home/yamagyu/composer.phar config repositories.magepal-gmailsmtpapp git git@github.com:magepal/magento2-gmailsmtpapp.git
php /home/yamagyu/composer.phar require magepal/magento2-gmailsmtpapp
php bin/magento module:enable --clear-static-content MagePal_GmailSmtpApp
php bin/magento setup:upgrade

これをしておくと、指定したsmtpサーバで受注メールなどを送れるようになる。
メールの設定は、管理画面から行う。

magento2:バッチインポートモジュール

magento2になってもいい感じで商品情報をバッチインポートする機能はデフォルトでは存在しない。

そのため、magento2-module-catalog-import-commandモジュールを使用する。
インストールにはcomposerを利用する。
cd /var/www/html/magento2/
php /home/yamagyu/composer.phar require cedricblondeau/magento2-module-catalog-import-command
php bin/magento module:enable CedricBlondeau_CatalogImportCommand
php bin/magento setup:upgrade

これを使うとcsvファイルをコマンドラインでインポートすることができるようになる。

使い方はこんな感じ。
php /var/www/html/magento2/bin/magento catalog:import -b=add_update /var/tmp/whitebox/magento/magentouser/us/feed/notyet/Magento-us-Ful-.csv
php /var/www/html/magento2/bin/magento catalog:import -b=add_update /var/tmp/whitebox/magento/magentouser/us/feed/notyet/Magento-us-Min-.csv
php /var/www/html/magento2/bin/magento catalog:import -b=delete /var/tmp/whitebox/magento/magentouser/us/feed/notyet/Magento-us-End-.csv
php /var/www/html/magento2/bin/magento indexer:reindex
php /var/www/html/magento2/bin/magento cache:flush

なおcsvのフォーマットは、管理画面でインポートする時に使うファイルと同じ形式である。

magento2

magento2はmagentoとは大夫思想が変わっていて、概念等も1から理解し直す必要がある。

magento2のインストール方法
基本的にcomposer経由が一番楽。

はじめにmagento2動作の前提となる、phpモジュールをインストール。
sudo yum -y install --enablerepo=remi-php70 php php-bz2 php-calendar php-ctype php- curl php-exif php-fileinfo php-ftp php-gd php-gettext php-iconv php-intl php-json php-mbstring php-mbstring php-mcrypt php-mysqlnd php-pdo php-phar php-sockets php-sqlite3 php-tokenizer php-mysqli php-pdo_mysql php-pdo_sqlite php-zip

composerが入ってない場合は入れる。
curl -sS https://getcomposer.org/installer | php

magento2をインストール
php composer.phar create-project --repository-url=https://repo.magento.com/ magento/project-community-edition /var/www/html/magento2

中国に行ってきました

img_20161124_125218
中国の銀行のアカウント開設のため、中国に行ってきました。
アカウントはなんとか開設できましたが、とっても大変でした。
だんだん厳しくなってきているとは聞いていたけど、ここまで大変とは。。。