【问题标题】:How can i call Shopify's API to create a new product?如何调用 Shopify 的 API 来创建新产品?
【发布时间】:2016-06-08 07:26:00
【问题描述】:

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

【问题讨论】:

    标签: api salesforce shopify


    【解决方案1】:

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

    通常您需要向某个 URL 发出 post/get 请求,您将执行以下操作。

    在远程站点设置下添加您的域

    要在 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

    【讨论】:

      【解决方案2】:

      我最近才真正设法开发(我认为)你在 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)

      希望对你有帮助。

      【讨论】:

        猜你喜欢
        • 2020-06-01
        • 1970-01-01
        • 2012-06-11
        • 2015-04-04
        • 1970-01-01
        • 2013-01-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多