Я застрял, пытаясь обновить или удалить метафилд, который я создал при регистрации пользователя, с помощью API клиента shopify.Shopify - обновить/удалить метафилд через API metafield с помощью PHP
Сначала я попытался обновить метафилд, используя API-интерфейс клиента, но он сказал мне, что метафилд уже существует, и я не могу добавить его снова.
Затем я использовал идентификатор пользователя и сделал звонок, чтобы получить все метафили, связанные с пользователем, используя API метафила - это сработало, и оно вернуло мне все метафили.
Однако моя проблема начинается, когда я хочу либо удалить, либо обновить метафилд, который я создал.
Я пробовал много разных вариантов звонков REST, но ничего не работает.
Чтобы попытаться удалить я использовал:
$baseUrl = "https://".$apikey.":".$password."@".$hostname."/admin/";
......
$curl = curl_init($baseUrl.'metafields/'.$metaID.'.json');
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
// Make the REST call, returning the result
$response = curl_exec($curl);
var_dump($response);
Это ничего не делать, так что я пытался идти уровень глубже и используется следующий URL:
$curl = curl_init($baseUrl.'customers/'.$custID.'/metafields/'.$metaID.'.json');
Этот URL не работает либо ,
Тогда я решил, что я мог бы просто попробовать и обновить метафилд до нового значения, которое оно должно было иметь.
Затем я попытался попытался следующие обновить значение:
$metafield = array('metafields' => array(array(
'id' => $metaID,
'value' => '3',
'value_type' => 'string',
)));
$curl_url = $baseUrl.'customers/'.$custID.'/metafields/'.$metaID.'.json';
$ch = curl_init($curl_url);
$data_string = json_encode(array('metafield'=>$metafield));
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);
$server_output = curl_exec ($ch);
curl_close ($ch);
var_dump($server_output);
После этого я попробовал альтернативный URL:
$curl_url = $baseUrl.'metafields/'.$metaID.'.json';
Любая идея, где я напутал?
Вы должны объединить два ответа (отредактируйте один и удалите другой). Нет никакой ценности, чтобы их разделить. –