teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

11

解決コードを追加

2021/05/09 14:28

投稿

mukufusa
mukufusa

スコア12

title CHANGED
File without changes
body CHANGED
@@ -128,4 +128,54 @@
128
128
  ));
129
129
 
130
130
  ?>
131
- ```
131
+ ```
132
+
133
+
134
+
135
+
136
+ **解決コードがコメント欄になってしまったので、ここに記載しておきます。**
137
+
138
+ ```
139
+ <?php
140
+
141
+ $attributes = array(
142
+ "product" => array(
143
+ "variants" => array(
144
+ array(
145
+ "option1_value"=>"WH",
146
+ "option2_value"=>"S",
147
+ "stocks"=>1
148
+ )
149
+ )
150
+ )
151
+ );
152
+
153
+ $request_options = array(
154
+ 'http' => array(
155
+ 'method' => 'PUT',
156
+ 'header' => "Authorization: Bearer 3e8a09c7e2b04e8b69e52e3507daac8e334fcb6b069cef00d8caec84d2305724\r\n" . "Content-Type: application/json\r\n",
157
+ 'content' => json_encode($attributes)
158
+ )
159
+ );
160
+
161
+ $context = stream_context_create($request_options);
162
+
163
+ $url = 'https://api.shop-pro.jp/v1/products/159565096.json';
164
+
165
+ $response_body = file_get_contents($url, false, $context);
166
+ $response = json_decode($response_body, true);
167
+
168
+ print '<pre>';
169
+ print_r( $response );
170
+ print '</pre>';
171
+
172
+ ?>
173
+ ```
174
+
175
+ 3e8a09c7e2b04e8b69e52e3507daac8e334fcb6b069cef00d8caec84d2305724 はアクセストークンです。
176
+
177
+ $url の 159565096 は商品ID です。
178
+
179
+ それぞれのケースに合わせて変更して下さい。
180
+
181
+ 同じことでハマる人が少なくなることを願います。

10

コードを修正して追記

2021/05/09 14:28

投稿

mukufusa
mukufusa

スコア12

title CHANGED
File without changes
body CHANGED
@@ -75,4 +75,57 @@
75
75
 
76
76
  公式ドキュメントもネット上にも「更新方法」については情報が不足していると思うので、実装できた際には記事にして、誰が見てもスムーズにできるように、やり方を公開しようと思っております。
77
77
 
78
- お手数おかけしますが、何卒よろしくお願いいたします。jsonのURLの後に検索ワードのようにオプションの値を入れるのでしょうか。
78
+ お手数おかけしますが、何卒よろしくお願いいたします。jsonのURLの後に検索ワードのようにオプションの値を入れるのでしょうか。
79
+
80
+
81
+
82
+
83
+
84
+
85
+
86
+ 頂いた回答を参考に以下のコードに修正しましたが、エラーになってしまいました。
87
+
88
+ 実際に在庫数を変更を確認したパラメーターをそのまま参考にさせて頂き書いたので、正常に動くはずですがとても不思議です。
89
+
90
+ Array ( [http_code] => 500 [response] => {"errors":[{"code":500000,"message":"Internal Server Error","status":500}]} )
91
+
92
+ 何が原因でしょうか。
93
+
94
+ ```
95
+ <?php
96
+
97
+ $header = [
98
+ 'Authorization: Bearer 3e8a09c7e2b04e8b69e52e3507daac8e334fcb6b069cef00d8caec84d2305724'
99
+ ];
100
+
101
+ $url = 'https://api.shop-pro.jp/v1/products/159565096.json';
102
+
103
+ **$param = array(
104
+ 'product' => array(
105
+ 'variants' => array (
106
+ 'option1_value' => 'WH',
107
+ 'option2_value' => 'S',
108
+ 'stocks' => 99
109
+ )
110
+ )
111
+ );**
112
+
113
+ $ch = curl_init();
114
+ curl_setopt($ch, CURLOPT_URL, $url);
115
+ curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
116
+ curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($param));
117
+ curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
118
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
119
+
120
+ $result = curl_exec($ch);
121
+ $information = curl_getinfo($ch);
122
+
123
+ curl_close($ch);
124
+
125
+ print_r(array(
126
+ 'http_code' => $information['http_code'],
127
+ 'response' => $result,
128
+ ));
129
+
130
+ ?>
131
+ ```

9

タイトル

2021/05/09 10:25

投稿

mukufusa
mukufusa

スコア12

title CHANGED
@@ -1,1 +1,1 @@
1
- 配列尾カラーミーAPI / PHPで在庫数の更新ができません
1
+ カラーミーAPI / PHPで在庫数の更新ができません
body CHANGED
File without changes

8

変更

2021/05/09 09:29

投稿

mukufusa
mukufusa

スコア12

title CHANGED
File without changes
body CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
  自分はまだ技術が十分ではありませんが、ECサイトを作っております。(セキュリティについてはSQLi,XSS,CSRF対策済みで、他は現在勉強中になります。決済機能は外部のためカード情報は保持しません)
4
4
 
5
- 現在、カラーミー(ユーザー数4万人のECサイトのASP)と自分のECサイトの在庫連携機能をカラーミーAPIを利用して作っているのですが、「カラーミーのショップの在庫数(オプションあり)をAPIから更新する方法」がまったくわかりません。
5
+ 現在、カラーミー(ユーザー数4万人のECサイトのASP)と自分のECサイトの在庫連携機能をカラーミーAPIを利用して作っているのですが、「カラーミーのショップの在庫数をAPIから更新する方法」がまったくわかりません。※商品にはオプション(サイズ)ありの条件。
6
6
 
7
- オプションなしの在庫更新はサンプルを頂き、無事に更新できたのですが、オプションありの商品の在庫更新をどうやってやればいのか検討も付きません。
7
+ オプションなしの在庫更新は知り合いにサンプルを頂き、無事に在庫更新できたのですが、オプションありの商品の在庫更新をどうやってやればいのか検討も付きません。SQLならWHERE句にidとoptionを入れてUPDATEするだけですが。やることは単純なのに書き方がわからないのです。
8
8
 
9
9
  公式ドキュメントやネット上に更新のサンプルコードや解説がなく、1日以上つまってしまい、これ以上は自分で解決できる見込みがないため、投稿させて頂きました。
10
10
 

7

追記

2021/05/09 09:16

投稿

mukufusa
mukufusa

スコア12

title CHANGED
File without changes
body CHANGED
@@ -12,8 +12,8 @@
12
12
 
13
13
  [カラーミー公式APIドキュメント](https://developer.shop-pro.jp/docs/colorme-api)
14
14
  [https://developer.shop-pro.jp/docs/colorme-api#operation/updateProduct](https://developer.shop-pro.jp/docs/colorme-api#operation/updateProduct)
15
- (「在庫」という機能なく「商品」というところで更新するようです)
15
+ (「在庫」という機能GETしか存在せず「商品」というところでPUT(更新するようです)
16
- variants という中に、option1_value, option1_value, stocks が入っているようです。
16
+ variants という中に、option1_value, option2_value, stocks が入ってす。
17
17
 
18
18
  どなたかの手を借りないと、実現できそうにないので、テストアカウントを作成し、公開しても問題のないアクセストークンを取得しました。
19
19
 

6

追記

2021/05/09 09:09

投稿

mukufusa
mukufusa

スコア12

title CHANGED
File without changes
body CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
  自分はまだ技術が十分ではありませんが、ECサイトを作っております。(セキュリティについてはSQLi,XSS,CSRF対策済みで、他は現在勉強中になります。決済機能は外部のためカード情報は保持しません)
4
4
 
5
- 現在、カラーミー(ユーザー数4万人のECサイトのASP)と自分のECサイトの在庫連携機能をカラーミーAPIを利用して作っているのですが、「カラーミーのショップの在庫数(SKUとしてサイズあり)をAPIから更新する方法」がまったくわかりません。
5
+ 現在、カラーミー(ユーザー数4万人のECサイトのASP)と自分のECサイトの在庫連携機能をカラーミーAPIを利用して作っているのですが、「カラーミーのショップの在庫数(オプションあり)をAPIから更新する方法」がまったくわかりません。
6
6
 
7
- SKUの在庫更新はサンプルを頂き、無事に更新できたのですが、自分に知識がなく、サイズありの商品の在庫更新をどうやってやればいいのか検討も付きません。
7
+ オプションしの在庫更新はサンプルを頂き、無事に更新できたのですが、オプションありの商品の在庫更新をどうやってやればいいのか検討も付きません。
8
8
 
9
9
  公式ドキュメントやネット上に更新のサンプルコードや解説がなく、1日以上つまってしまい、これ以上は自分で解決できる見込みがないため、投稿させて頂きました。
10
10
 
@@ -75,4 +75,4 @@
75
75
 
76
76
  公式ドキュメントもネット上にも「更新方法」については情報が不足していると思うので、実装できた際には記事にして、誰が見てもスムーズにできるように、やり方を公開しようと思っております。
77
77
 
78
- お手数おかけしますが、何卒よろしくお願いいたします。
78
+ お手数おかけしますが、何卒よろしくお願いいたします。jsonのURLの後に検索ワードのようにオプションの値を入れるのでしょうか。

5

コードを変更

2021/05/09 09:07

投稿

mukufusa
mukufusa

スコア12

title CHANGED
File without changes
body CHANGED
@@ -2,8 +2,10 @@
2
2
 
3
3
  自分はまだ技術が十分ではありませんが、ECサイトを作っております。(セキュリティについてはSQLi,XSS,CSRF対策済みで、他は現在勉強中になります。決済機能は外部のためカード情報は保持しません)
4
4
 
5
- 現在、カラーミー(ユーザー数4万人のECサイトのASP)と自分のECサイトの在庫連携機能をカラーミーAPIを利用して作っているのですが、「カラーミーのショップの在庫数をAPIから更新する方法」がまったくわかりません。
5
+ 現在、カラーミー(ユーザー数4万人のECサイトのASP)と自分のECサイトの在庫連携機能をカラーミーAPIを利用して作っているのですが、「カラーミーのショップの在庫数(SKUとしてサイズあり)をAPIから更新する方法」がまったくわかりません。
6
6
 
7
+ SKUのない在庫更新はサンプルを頂き、無事に更新できたのですが、自分に知識がなく、サイズありの商品の在庫更新をどうやってやればいいのか検討も付きません。
8
+
7
9
  公式ドキュメントやネット上に更新のサンプルコードや解説がなく、1日以上つまってしまい、これ以上は自分で解決できる見込みがないため、投稿させて頂きました。
8
10
 
9
11
  環境はローカルです。PHP 7.4.15 / MySQL 8.0.23 / Apache 2.4.46 (Win64)
@@ -13,31 +15,43 @@
13
15
  (「在庫」という機能ではなく「商品」というところで更新するようです)
14
16
  variants という中に、option1_value, option1_value, stocks が入っているようです。
15
17
 
16
- 昔、自分で書いたコード(おそらくサンプルコードをコピペ)では、在庫数の取得はできているのですが、在庫の更新の仕方がいくら公式ドキュメントを見ても、いくら検索しても全くわかりません。(自分にはどこにもやり方が書いてないような気さえします)
17
-
18
18
  どなたかの手を借りないと、実現できそうにないので、テストアカウントを作成し、公開しても問題のないアクセストークンを取得しました。
19
19
 
20
20
  以下が在庫数を取得できているコードになります。商品には**「カラー と サイズ」**が存在します。**(オプション1 と オプション2)**
21
21
 
22
22
  ```
23
+ <?php
24
+
23
- /* 動作確認済 */
25
+ $header = [
26
+ 'Authorization: Bearer 3e8a09c7e2b04e8b69e52e3507daac8e334fcb6b069cef00d8caec84d2305724'
27
+ ];
28
+
29
+ $url = 'https://api.shop-pro.jp/v1/products/159565096.json';
30
+
24
- $request_options = array(
31
+ $param = array(
25
- 'http' => array(
32
+ 'product' => array(
26
- 'method' => 'GET',
33
+ 'stocks' => 1000
27
- 'header' => "Authorization: Bearer 3e8a09c7e2b04e8b69e52e3507daac8e334fcb6b069cef00d8caec84d2305724\r\n"
28
- )
34
+ )
29
35
  );
30
- $context = stream_context_create($request_options);
31
36
 
37
+ $ch = curl_init();
38
+ curl_setopt($ch, CURLOPT_URL, $url);
39
+ curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
32
- $url = 'https://api.shop-pro.jp/v1/stocks.json?ids=159565096&fields=option1_value,option2_value,stocks';
40
+ curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($param));
41
+ curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
42
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
33
43
 
34
- $response_body = file_get_contents($url, false, $context);
44
+ $result = curl_exec($ch);
35
- $response = json_decode($response_body, true);
45
+ $information = curl_getinfo($ch);
36
46
 
37
- print '<pre>';
47
+ curl_close($ch);
48
+
38
- print_r( $response );
49
+ print_r(array(
50
+ 'http_code' => $information['http_code'],
39
- print '</pre>';
51
+ 'response' => $result,
52
+ ));
53
+
40
- /* 動作確認済 */
54
+ ?>
41
55
  ```
42
56
 
43
57
  アクセストークン: 3e8a09c7e2b04e8b69e52e3507daac8e334fcb6b069cef00d8caec84d2305724 (動作確認済)

4

配列の名前を追記

2021/05/09 09:04

投稿

mukufusa
mukufusa

スコア12

title CHANGED
@@ -1,1 +1,1 @@
1
- カラーミーAPI / PHPで在庫数の更新ができません
1
+ 配列尾カラーミーAPI / PHPで在庫数の更新ができません
body CHANGED
@@ -11,6 +11,7 @@
11
11
  [カラーミー公式APIドキュメント](https://developer.shop-pro.jp/docs/colorme-api)
12
12
  [https://developer.shop-pro.jp/docs/colorme-api#operation/updateProduct](https://developer.shop-pro.jp/docs/colorme-api#operation/updateProduct)
13
13
  (「在庫」という機能ではなく「商品」というところで更新するようです)
14
+ variants という中に、option1_value, option1_value, stocks が入っているようです。
14
15
 
15
16
  昔、自分で書いたコード(おそらくサンプルコードをコピペ)では、在庫数の取得はできているのですが、在庫の更新の仕方がいくら公式ドキュメントを見ても、いくら検索しても全くわかりません。(自分にはどこにもやり方が書いてないような気さえします)
16
17
 

3

ドキュメントの参照個所を追記

2021/05/09 08:06

投稿

mukufusa
mukufusa

スコア12

title CHANGED
File without changes
body CHANGED
@@ -9,6 +9,8 @@
9
9
  環境はローカルです。PHP 7.4.15 / MySQL 8.0.23 / Apache 2.4.46 (Win64)
10
10
 
11
11
  [カラーミー公式APIドキュメント](https://developer.shop-pro.jp/docs/colorme-api)
12
+ [https://developer.shop-pro.jp/docs/colorme-api#operation/updateProduct](https://developer.shop-pro.jp/docs/colorme-api#operation/updateProduct)
13
+ (「在庫」という機能ではなく「商品」というところで更新するようです)
12
14
 
13
15
  昔、自分で書いたコード(おそらくサンプルコードをコピペ)では、在庫数の取得はできているのですが、在庫の更新の仕方がいくら公式ドキュメントを見ても、いくら検索しても全くわかりません。(自分にはどこにもやり方が書いてないような気さえします)
14
16
 

2

2021/05/09 08:03

投稿

mukufusa
mukufusa

スコア12

title CHANGED
File without changes
body CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  自分はまだ技術が十分ではありませんが、ECサイトを作っております。(セキュリティについてはSQLi,XSS,CSRF対策済みで、他は現在勉強中になります。決済機能は外部のためカード情報は保持しません)
4
4
 
5
- 現在、カラーミー(ユーザー数4万人のECサイトのASP)と自分のECサイトの在庫連携機能をカラーミーAPIを利用して作っているのですが、在庫数更新方法がまったくわかりません。
5
+ 現在、カラーミー(ユーザー数4万人のECサイトのASP)と自分のECサイトの在庫連携機能をカラーミーAPIを利用して作っているのですが、「カラーミーのショップの在庫数をAPIから更新する方法がまったくわかりません。
6
6
 
7
7
  公式ドキュメントやネット上に更新のサンプルコードや解説がなく、1日以上つまってしまい、これ以上は自分で解決できる見込みがないため、投稿させて頂きました。
8
8
 

1

知りたいことをより明確にしました

2021/05/09 05:51

投稿

mukufusa
mukufusa

スコア12

title CHANGED
File without changes
body CHANGED
@@ -2,8 +2,10 @@
2
2
 
3
3
  自分はまだ技術が十分ではありませんが、ECサイトを作っております。(セキュリティについてはSQLi,XSS,CSRF対策済みで、他は現在勉強中になります。決済機能は外部のためカード情報は保持しません)
4
4
 
5
- 現在、カラーミー(ユーザー数4万人のECサイトのASP)と自分のECサイトの在庫連携機能をカラーミーAPIを利用して作っているのですが、公式ドキュメントやネット上に更新のサンプルコードや解説なく、1日以上つまってしまい、これ以上は自分で解決できる見込みがないめ、投稿させて頂き
5
+ 現在、カラーミー(ユーザー数4万人のECサイトのASP)と自分のECサイトの在庫連携機能をカラーミーAPIを利用して作っているのですが、在庫数の更新方法がまったくわかりせん
6
6
 
7
+ 公式ドキュメントやネット上に更新のサンプルコードや解説がなく、1日以上つまってしまい、これ以上は自分で解決できる見込みがないため、投稿させて頂きました。
8
+
7
9
  環境はローカルです。PHP 7.4.15 / MySQL 8.0.23 / Apache 2.4.46 (Win64)
8
10
 
9
11
  [カラーミー公式APIドキュメント](https://developer.shop-pro.jp/docs/colorme-api)
@@ -52,4 +54,8 @@
52
54
 
53
55
  この機会にちゃんと足りない知識を埋め、いろいろなAPIを問題なくスムーズに使えるようになりたいと考えております。
54
56
 
57
+ どなたか在庫の更新の方法をご教授いただけませんでしょうか。
58
+
59
+ 公式ドキュメントもネット上にも「更新方法」については情報が不足していると思うので、実装できた際には記事にして、誰が見てもスムーズにできるように、やり方を公開しようと思っております。
60
+
55
61
  お手数おかけしますが、何卒よろしくお願いいたします。