2017 © Pedro Peláez
 

library shopify-php

Simple Shopify API client in PHP

image

cadicvnn/shopify-php

Simple Shopify API client in PHP

  • Friday, December 15, 2017
  • by cadicvnn
  • Repository
  • 2 Watchers
  • 0 Stars
  • 181 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 84 Forks
  • 1 Open issues
  • 3 Versions
  • 12 % Grown

The README.md

shopify-php

Latest Stable Version Total Downloads Latest Unstable Version License, (*1)

A simple Shopify API client in PHP., (*2)

The canoncial repository for this stream of development is https://github.com/TeamOffshoot/shopify-php, (*3)

This APII Client is still in a pre-1.0 state, so you can expect:, (*4)

  • some bugs (feel free to submit a pull request with bug fixes and test coverage)
  • possibly some breaking API changes between v0.10 and v1.0

Requirements

  • PHP 5.3 (or higher)
  • ext-curl, ext-json

Development Requirements

  • phpunit/phpunit 3.7

Getting Started

Install shopify-php via Composer, (*5)

Create a composer.json file if you don't already have one in your projects root directory and require shopify-php:, (*6)

{
  "require": {
    "cadicvnn/shopify-php": "dev-master"
  }
}

To learn more about Composer, including the complete installation process, visit http://getcomposer.org/, (*7)

Using cURL

If you're using a cURL based HttpClient like the CurlHttpClient, you will want to include the cacert.pem file that can be found at http://curl.haxx.se/docs/caextract.html, (*8)

You can add this as a dependency in your composer file. Your composer.json might look something like this:, (*9)

{
  "require": {
    "cadicvnn/shopify-php": "dev-master",
    "haxx-se/curl": "1.0.0"
  },
  "repositories": [
    {
      "type": "package",
      "package": {
        "name": "haxx-se/curl",
        "version": "1.0.0",
        "dist": {
          "url": "http://curl.haxx.se/ca/cacert.pem",
          "type": "file"
        }
      }
    }
  ]
}

You will be able to find the cacert.pem file in vendor/haxx-se/curl/cacert.pem, (*10)

Usage

Authentication

If you do not already have a Shopify API Permanent Access Token, you will need you authenticate with the Shopify API first, (*11)

$pathToCertificateFile = "vendor/haxx-se/curl/cacert.pem";
$httpClient = new \Shopify\HttpClient\CurlHttpClient($pathToCertificateFile);

$redirector = new \Shopify\Redirector\HeaderRedirector();

$authenticate = new \Shopify\Api\AuthenticationGateway(
    $httpClient, $redirector
);

$authenticate->forShopName('mycoolshop')
    ->usingClientId('XXX1234567890') // get this from your Shopify Account
    ->withScope(array('write_products', 'read_orders'))
    ->andReturningTo("http://wherever.you/like")
    ->initiateLogin();

This will redirect your user to a Shopify login screen where they will need to authenticate with their Shopify credentials. After doing that, Shopify will perform a GET request to your redirect URI, that will look like:, (*12)

GET http://wherever.you/like?code=TEMP_TOKEN

Your application will need to capture the code query param from the request and use that to get the permanent access token from Shopify, (*13)

$client = new Shopify\Api\Client($httpClient);
$client->setClientSecret('ABC123XYZ');

// validate the Shopify Request
if ($client->isValidRequest($_GET)) {

    // exchange the token
    $permanentAccessToken = $authenticate->forShopName('mycoolshop')
        ->usingClientId('XXX1234567890')
        ->usingClientSecret('ABC123XYZ')
        ->toExchange($_GET['code']);

}

TODO: build request validation into exchange process

TODO: have AuthenticationGateway extend Api\Client

Interacting with the Shopify API

Once you have a valid Shopify Permanent Access Token, you can start making calls to the Shopify API, (*14)

First setup an instance of the Shopify API client., (*15)

$client = new \Shopify\Api\Client($httpClient);
$client->setAccessToken($permanentAccessToken);
$client->setClientSecret('ABC123XYZ');
$client->setShopName('mycoolshop');

Then you're ready to start interacting with the Shopify API. Maybe you want to get all of the products from your store, (*16)

$products = $client->get('/admin/products.json', array(
    'collection_id' => '987654321'
));

Maybe you want to get the details of a specific order, (*17)

$order = $client->get('/admin/orders/123456789.json');

Or maybe you want to create a new Order, (*18)

$order = $client->post('/admin/orders.json', array(
    'order' => array(
        'line_items' => array(
            0 => array(
                'grams' => 1300,
                'price' => 74.99,
                'quantity' => 3,
                'title' => "Big Brown Bear Boots",
            ),
        ),
        'tax_lines' => array(
            0 => array(
                'price' => 29.25,
                'rate' => 0.13,
                'title' => "HST",
            ),
        ),
        'transactions' => array(
            0 => array(
                'amount' => 254.22,
                'kind' => "sale",
                'status' => "success",
            )
        ),
        'total_tax' => 29.25,
        'currency' => "CAD",
    )
));

TODO: Implement PUT and DELETE functionality

Contributing

Contributions are welcome. Just fork the repository and send a pull request. Please be sure to include test coverage with your pull request. You can learn more about Pull Requests here, (*19)

In order to run the test suite, ensure that the development dependencies have been installed via composer. Then from your command line, simple run:, (*20)

vendor/bin/phpunit --bootstrap tests/bootstrap.php tests/

License

This library is released under the MIT License, (*21)

Acknowledgements

Thanks to Sandeep Shetty for his development of the initial code base., (*22)

The Versions

15/12 2017

dev-master

9999999-dev https://github.com/cadicvnn/shopify-php

Simple Shopify API client in PHP

  Sources   Download

MIT

The Requires

  • php >=5.3.0
  • ext-curl *
  • ext-json *

 

The Development Requires

by Cadic

api shopify

04/02 2014

0.9.1

0.9.1.0 https://github.com/TeamOffshoot/shopify-php

Simple Shopify API client in PHP

  Sources   Download

MIT

The Requires

  • php >=5.3.0
  • ext-curl *
  • ext-json *

 

The Development Requires

api shopify

27/01 2014

0.9.0

0.9.0.0 https://github.com/TeamOffshoot/shopify-php

Simple Shopify API client in PHP

  Sources   Download

MIT

The Requires

  • php >=5.3.0
  • ext-curl *
  • ext-json *

 

The Development Requires

api shopify