質問編集履歴

11

解決コードを追加

2021/05/09 14:28

投稿

mukufusa
mukufusa

スコア12

test CHANGED
File without changes
test CHANGED
@@ -259,3 +259,103 @@
259
259
  ?>
260
260
 
261
261
  ```
262
+
263
+
264
+
265
+
266
+
267
+
268
+
269
+
270
+
271
+ **解決コードがコメント欄になってしまったので、ここに記載しておきます。**
272
+
273
+
274
+
275
+ ```
276
+
277
+ <?php
278
+
279
+
280
+
281
+ $attributes = array(
282
+
283
+ "product" => array(
284
+
285
+ "variants" => array(
286
+
287
+ array(
288
+
289
+ "option1_value"=>"WH",
290
+
291
+ "option2_value"=>"S",
292
+
293
+ "stocks"=>1
294
+
295
+ )
296
+
297
+ )
298
+
299
+ )
300
+
301
+ );
302
+
303
+
304
+
305
+ $request_options = array(
306
+
307
+ 'http' => array(
308
+
309
+ 'method' => 'PUT',
310
+
311
+ 'header' => "Authorization: Bearer 3e8a09c7e2b04e8b69e52e3507daac8e334fcb6b069cef00d8caec84d2305724\r\n" . "Content-Type: application/json\r\n",
312
+
313
+ 'content' => json_encode($attributes)
314
+
315
+ )
316
+
317
+ );
318
+
319
+
320
+
321
+ $context = stream_context_create($request_options);
322
+
323
+
324
+
325
+ $url = 'https://api.shop-pro.jp/v1/products/159565096.json';
326
+
327
+
328
+
329
+ $response_body = file_get_contents($url, false, $context);
330
+
331
+ $response = json_decode($response_body, true);
332
+
333
+
334
+
335
+ print '<pre>';
336
+
337
+ print_r( $response );
338
+
339
+ print '</pre>';
340
+
341
+
342
+
343
+ ?>
344
+
345
+ ```
346
+
347
+
348
+
349
+ 3e8a09c7e2b04e8b69e52e3507daac8e334fcb6b069cef00d8caec84d2305724 はアクセストークンです。
350
+
351
+
352
+
353
+ $url の 159565096 は商品ID です。
354
+
355
+
356
+
357
+ それぞれのケースに合わせて変更して下さい。
358
+
359
+
360
+
361
+ 同じことでハマる人が少なくなることを願います。

10

コードを修正して追記

2021/05/09 14:28

投稿

mukufusa
mukufusa

スコア12

test CHANGED
File without changes
test CHANGED
@@ -153,3 +153,109 @@
153
153
 
154
154
 
155
155
  お手数おかけしますが、何卒よろしくお願いいたします。jsonのURLの後に検索ワードのようにオプションの値を入れるのでしょうか。
156
+
157
+
158
+
159
+
160
+
161
+
162
+
163
+
164
+
165
+
166
+
167
+
168
+
169
+
170
+
171
+ 頂いた回答を参考に以下のコードに修正しましたが、エラーになってしまいました。
172
+
173
+
174
+
175
+ 実際に在庫数を変更を確認したパラメーターをそのまま参考にさせて頂き書いたので、正常に動くはずですがとても不思議です。
176
+
177
+
178
+
179
+ Array ( [http_code] => 500 [response] => {"errors":[{"code":500000,"message":"Internal Server Error","status":500}]} )
180
+
181
+
182
+
183
+ 何が原因でしょうか。
184
+
185
+
186
+
187
+ ```
188
+
189
+ <?php
190
+
191
+
192
+
193
+ $header = [
194
+
195
+ 'Authorization: Bearer 3e8a09c7e2b04e8b69e52e3507daac8e334fcb6b069cef00d8caec84d2305724'
196
+
197
+ ];
198
+
199
+
200
+
201
+ $url = 'https://api.shop-pro.jp/v1/products/159565096.json';
202
+
203
+
204
+
205
+ **$param = array(
206
+
207
+ 'product' => array(
208
+
209
+ 'variants' => array (
210
+
211
+ 'option1_value' => 'WH',
212
+
213
+ 'option2_value' => 'S',
214
+
215
+ 'stocks' => 99
216
+
217
+ )
218
+
219
+ )
220
+
221
+ );**
222
+
223
+
224
+
225
+ $ch = curl_init();
226
+
227
+ curl_setopt($ch, CURLOPT_URL, $url);
228
+
229
+ curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
230
+
231
+ curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($param));
232
+
233
+ curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
234
+
235
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
236
+
237
+
238
+
239
+ $result = curl_exec($ch);
240
+
241
+ $information = curl_getinfo($ch);
242
+
243
+
244
+
245
+ curl_close($ch);
246
+
247
+
248
+
249
+ print_r(array(
250
+
251
+ 'http_code' => $information['http_code'],
252
+
253
+ 'response' => $result,
254
+
255
+ ));
256
+
257
+
258
+
259
+ ?>
260
+
261
+ ```

9

タイトル

2021/05/09 10:25

投稿

mukufusa
mukufusa

スコア12

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

8

変更

2021/05/09 09:29

投稿

mukufusa
mukufusa

スコア12

test CHANGED
File without changes
test CHANGED
@@ -6,11 +6,11 @@
6
6
 
7
7
 
8
8
 
9
- 現在、カラーミー(ユーザー数4万人のECサイトのASP)と自分のECサイトの在庫連携機能をカラーミーAPIを利用して作っているのですが、「カラーミーのショップの在庫数(オプションあり)をAPIから更新する方法」がまったくわかりません。
9
+ 現在、カラーミー(ユーザー数4万人のECサイトのASP)と自分のECサイトの在庫連携機能をカラーミーAPIを利用して作っているのですが、「カラーミーのショップの在庫数をAPIから更新する方法」がまったくわかりません。※商品にはオプション(サイズ)ありの条件。
10
10
 
11
11
 
12
12
 
13
- オプションなしの在庫更新はサンプルを頂き、無事に更新できたのですが、オプションありの商品の在庫更新をどうやってやればいのか検討も付きません。
13
+ オプションなしの在庫更新は知り合いにサンプルを頂き、無事に在庫更新できたのですが、オプションありの商品の在庫更新をどうやってやればいのか検討も付きません。SQLならWHERE句にidとoptionを入れてUPDATEするだけですが。やることは単純なのに書き方がわからないのです。
14
14
 
15
15
 
16
16
 

7

追記

2021/05/09 09:16

投稿

mukufusa
mukufusa

スコア12

test CHANGED
File without changes
test CHANGED
@@ -26,9 +26,9 @@
26
26
 
27
27
  [https://developer.shop-pro.jp/docs/colorme-api#operation/updateProduct](https://developer.shop-pro.jp/docs/colorme-api#operation/updateProduct)
28
28
 
29
- (「在庫」という機能なく「商品」というところで更新するようです)
29
+ (「在庫」という機能GETしか存在せず「商品」というところでPUT(更新するようです)
30
30
 
31
- variants という中に、option1_value, option1_value, stocks が入っているようです。
31
+ variants という中に、option1_value, option2_value, stocks が入ってす。
32
32
 
33
33
 
34
34
 

6

追記

2021/05/09 09:09

投稿

mukufusa
mukufusa

スコア12

test CHANGED
File without changes
test CHANGED
@@ -6,11 +6,11 @@
6
6
 
7
7
 
8
8
 
9
- 現在、カラーミー(ユーザー数4万人のECサイトのASP)と自分のECサイトの在庫連携機能をカラーミーAPIを利用して作っているのですが、「カラーミーのショップの在庫数(SKUとしてサイズあり)をAPIから更新する方法」がまったくわかりません。
9
+ 現在、カラーミー(ユーザー数4万人のECサイトのASP)と自分のECサイトの在庫連携機能をカラーミーAPIを利用して作っているのですが、「カラーミーのショップの在庫数(オプションあり)をAPIから更新する方法」がまったくわかりません。
10
10
 
11
11
 
12
12
 
13
- SKUない在庫更新はサンプルを頂き、無事に更新できたのですが、自分に知識がなく、サイズありの商品の在庫更新をどうやってやればいいのか検討も付きません。
13
+ オプションなしの在庫更新はサンプルを頂き、無事に更新できたのですが、オプションありの商品の在庫更新をどうやってやればいいのか検討も付きません。
14
14
 
15
15
 
16
16
 
@@ -152,4 +152,4 @@
152
152
 
153
153
 
154
154
 
155
- お手数おかけしますが、何卒よろしくお願いいたします。
155
+ お手数おかけしますが、何卒よろしくお願いいたします。jsonのURLの後に検索ワードのようにオプションの値を入れるのでしょうか。

5

コードを変更

2021/05/09 09:07

投稿

mukufusa
mukufusa

スコア12

test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,11 @@
6
6
 
7
7
 
8
8
 
9
- 現在、カラーミー(ユーザー数4万人のECサイトのASP)と自分のECサイトの在庫連携機能をカラーミーAPIを利用して作っているのですが、「カラーミーのショップの在庫数をAPIから更新する方法」がまったくわかりません。
9
+ 現在、カラーミー(ユーザー数4万人のECサイトのASP)と自分のECサイトの在庫連携機能をカラーミーAPIを利用して作っているのですが、「カラーミーのショップの在庫数(SKUとしてサイズあり)をAPIから更新する方法」がまったくわかりません。
10
+
11
+
12
+
13
+ SKUのない在庫更新はサンプルを頂き、無事に更新できたのですが、自分に知識がなく、サイズありの商品の在庫更新をどうやってやればいいのか検討も付きません。
10
14
 
11
15
 
12
16
 
@@ -28,10 +32,6 @@
28
32
 
29
33
 
30
34
 
31
- 昔、自分で書いたコード(おそらくサンプルコードをコピペ)では、在庫数の取得はできているのですが、在庫の更新の仕方がいくら公式ドキュメントを見ても、いくら検索しても全くわかりません。(自分にはどこにもやり方が書いてないような気さえします)
32
-
33
-
34
-
35
35
  どなたかの手を借りないと、実現できそうにないので、テストアカウントを作成し、公開しても問題のないアクセストークンを取得しました。
36
36
 
37
37
 
@@ -42,41 +42,69 @@
42
42
 
43
43
  ```
44
44
 
45
- /* 動作確認済 */
45
+ <?php
46
46
 
47
- $request_options = array(
48
47
 
49
- 'http' => array(
50
48
 
51
- 'method' => 'GET',
49
+ $header = [
52
50
 
53
- 'header' => "Authorization: Bearer 3e8a09c7e2b04e8b69e52e3507daac8e334fcb6b069cef00d8caec84d2305724\r\n"
51
+ 'Authorization: Bearer 3e8a09c7e2b04e8b69e52e3507daac8e334fcb6b069cef00d8caec84d2305724'
54
52
 
53
+ ];
54
+
55
+
56
+
57
+ $url = 'https://api.shop-pro.jp/v1/products/159565096.json';
58
+
59
+
60
+
61
+ $param = array(
62
+
63
+ 'product' => array(
64
+
65
+ 'stocks' => 1000
66
+
55
- )
67
+ )
56
68
 
57
69
  );
58
70
 
71
+
72
+
73
+ $ch = curl_init();
74
+
75
+ curl_setopt($ch, CURLOPT_URL, $url);
76
+
77
+ curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
78
+
59
- $context = stream_context_create($request_options);
79
+ curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($param));
80
+
81
+ curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
82
+
83
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
60
84
 
61
85
 
62
86
 
87
+ $result = curl_exec($ch);
88
+
63
- $url = 'https://api.shop-pro.jp/v1/stocks.json?ids=159565096&fields=option1_value,option2_value,stocks';
89
+ $information = curl_getinfo($ch);
64
90
 
65
91
 
66
92
 
67
- $response_body = file_get_contents($url, false, $context);
68
-
69
- $response = json_decode($response_body, true);
93
+ curl_close($ch);
70
94
 
71
95
 
72
96
 
73
- print '<pre>';
97
+ print_r(array(
74
98
 
75
- print_r( $response );
99
+ 'http_code' => $information['http_code'],
76
100
 
77
- print '</pre>';
101
+ 'response' => $result,
78
102
 
103
+ ));
104
+
105
+
106
+
79
- /* 動作確認済 */
107
+ ?>
80
108
 
81
109
  ```
82
110
 

4

配列の名前を追記

2021/05/09 09:04

投稿

mukufusa
mukufusa

スコア12

test CHANGED
@@ -1 +1 @@
1
- カラーミーAPI / PHPで在庫数の更新ができません
1
+ 配列尾カラーミーAPI / PHPで在庫数の更新ができません
test CHANGED
@@ -23,6 +23,8 @@
23
23
  [https://developer.shop-pro.jp/docs/colorme-api#operation/updateProduct](https://developer.shop-pro.jp/docs/colorme-api#operation/updateProduct)
24
24
 
25
25
  (「在庫」という機能ではなく「商品」というところで更新するようです)
26
+
27
+ variants という中に、option1_value, option1_value, stocks が入っているようです。
26
28
 
27
29
 
28
30
 

3

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

2021/05/09 08:06

投稿

mukufusa
mukufusa

スコア12

test CHANGED
File without changes
test CHANGED
@@ -19,6 +19,10 @@
19
19
 
20
20
 
21
21
  [カラーミー公式APIドキュメント](https://developer.shop-pro.jp/docs/colorme-api)
22
+
23
+ [https://developer.shop-pro.jp/docs/colorme-api#operation/updateProduct](https://developer.shop-pro.jp/docs/colorme-api#operation/updateProduct)
24
+
25
+ (「在庫」という機能ではなく「商品」というところで更新するようです)
22
26
 
23
27
 
24
28
 

2

2021/05/09 08:03

投稿

mukufusa
mukufusa

スコア12

test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- 現在、カラーミー(ユーザー数4万人のECサイトのASP)と自分のECサイトの在庫連携機能をカラーミーAPIを利用して作っているのですが、在庫数更新方法がまったくわかりません。
9
+ 現在、カラーミー(ユーザー数4万人のECサイトのASP)と自分のECサイトの在庫連携機能をカラーミーAPIを利用して作っているのですが、「カラーミーのショップの在庫数をAPIから更新する方法がまったくわかりません。
10
10
 
11
11
 
12
12
 

1

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

2021/05/09 05:51

投稿

mukufusa
mukufusa

スコア12

test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,11 @@
6
6
 
7
7
 
8
8
 
9
- 現在、カラーミー(ユーザー数4万人のECサイトのASP)と自分のECサイトの在庫連携機能をカラーミーAPIを利用して作っているのですが、公式ドキュメントやネット上に更新のサンプルコードや解説なく、1日以上つまってしい、これ以上は自分で解決できる見込みがないため、投稿さて頂きます
9
+ 現在、カラーミー(ユーザー数4万人のECサイトのASP)と自分のECサイトの在庫連携機能をカラーミーAPIを利用して作っているのですが、在庫数の更新方法がまったくわかりませ
10
+
11
+
12
+
13
+ 公式ドキュメントやネット上に更新のサンプルコードや解説がなく、1日以上つまってしまい、これ以上は自分で解決できる見込みがないため、投稿させて頂きました。
10
14
 
11
15
 
12
16
 
@@ -106,4 +110,12 @@
106
110
 
107
111
 
108
112
 
113
+ どなたか在庫の更新の方法をご教授いただけませんでしょうか。
114
+
115
+
116
+
117
+ 公式ドキュメントもネット上にも「更新方法」については情報が不足していると思うので、実装できた際には記事にして、誰が見てもスムーズにできるように、やり方を公開しようと思っております。
118
+
119
+
120
+
109
121
  お手数おかけしますが、何卒よろしくお願いいたします。