如何调用Shopify的API来创建新产品?

时间:2016-06-08 07:26:01

标签: api salesforce shopify

我需要调用Shopify的API来创建新产品或获取现有产品的详细信息。我怎样才能做到这一点。基本上如何使用shopify建立salesforce连接?

2 个答案:

答案 0 :(得分:0)

Shopify提供REST API,因此您需要将其用于与Salesforce解决方案集成。在Salesforce方面,您需要执行几个步骤来实现连接。

通常您需要发布/获取某些URL的请求,您将执行以下操作。

在远程站点设置下添加域

要从Salesforce中的Apex发送出站呼叫(POST / GET请求),您需要将域添加到设置中的远程站点设置。

在您的APEX控制器中创建并发送请求

例如,对于POST请求,您需要实现类似这样的

HttpRequest req = new HttpRequest();
HttpResponse res = new HttpResponse();
Http http = new Http();

req.setEndpoint('https://someurl.com/api');
req.setMethod('POST');

//these parts of the POST you may want to customize
req.setCompressed(false);
req.setBody('key1=value1&key2=value2');
req.setHeader('Content-Type', 'application/x-www-form-urlencoded');  

try {
    res = http.send(req);
} catch(System.CalloutException e) {
    System.debug('Callout error: '+ e);
}
System.debug(res.getBody());

有关更多信息,请查看Salesforce文档:

Apex Web Services and Callouts

HttpRequest Class

HttpResponse Class

答案 1 :(得分:0)

我最近才真正设法开发了你在PHP中寻找的东西(我认为),因为我在查找所有信息时遇到了很多麻烦我实际上已经开始创建一个帐户只是为了回答这个问题:)

我的PHP代码如下:

//Modify these
  $API_KEY = 'yourAPIkey';
 $SECRET = 'yourAPIsercer(password)';
  $TOKEN = 'zzz';
  $STORE_URL = 'yourstore.myshopify.com';

    $url = 'https://' . $API_KEY . ':' . $SECRET . '@' . $STORE_URL . '/admin/products.xml';

$xmlsrc = <<<XML
<?xml version='1.0' encoding='UTF-8'?>
<product>
<title>TITLEH!!!</title>
<body-html>asdasdfda</body-html>
<product-type>Photoshop</product-type>
<variants type="array">
    <variant>
        <price>3.00</price>
        <inventory-quantity>7</inventory-quantity>
    </variant>
</variants>
<vendor>JLH</vendor>
</product>
XML;

    $session = curl_init(); 
    curl_setopt($session, CURLOPT_URL, $url);
curl_setopt($session, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($session, CURLOPT_POSTFIELDS, $xmlsrc); 
curl_setopt($session, CURLOPT_HEADER, false);
curl_setopt($session, CURLOPT_HTTPHEADER, array('Accept: application/xml', 'Content-Type: application/xml'));
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);

if(ereg("^(https)",$url)) curl_setopt($session,CURLOPT_SSL_VERIFYPEER,false);

$result = curl_exec($session);

    curl_close($session);

    $doc = new DOMDocument();
    $doc->preserveWhiteSpace = true;
    $doc->formatOutput = true;
    $doc->loadXML($result);
    echo $doc->saveXML();

我相信这很简单。 一旦掌握了它,它也很容易为不同的动作进行修改...... 我从这个帖子中获得了很多有用的信息:https://ecommerce.shopify.com/c/shopify-discussion/t/php-api-example-26017

其余的我从shopify API参考中扣除:https://help.shopify.com/api/reference/product (请注意,API引用使用json示例,我正在使用XML)

我希望这会对你有所帮助。

相关问题