Skip to content

A Golang wrapper for the WooCommerce API.

License

Notifications You must be signed in to change notification settings

evertonvps/go-wc-client

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WooCommerce API - Golang Client

A Golang wrapper for the WooCommerce REST API. Easily interact with the WooCommerce REST API using this library. This is a fork of darh/wc-api-golang. Main difference: Basically the Client of darh/wc-api-golang is the core, and the WcClient encapsulates it together with the services (Products, Orders, etc).

This lib is not backward compatible with darh/wc-api-golang!

Installation

$ go get github.com/evertonvps/go-wc-client

Getting started

Generate API credentials (Consumer Key & Consumer Secret) following this instructions http://docs.woocommerce.com/document/woocommerce-rest-api/ .

Check out the WooCommerce API endpoints and data that can be manipulated in https://woocommerce.github.io/woocommerce-rest-api-docs/.

Setup

Setup for the new WP REST API integration (WooCommerce 2.6 or later):

import (
	"github.com/evertonvps/go-wc-client/woocommerce/rest"
	"github.com/evertonvps/go-wc-client/woocommerce/rest/api"
)

	woocommerce, err := api.NewWoocommerceClient("https://fake-store.com", &rest.ApiConfig{
		API:            true,
		APIPrefix:      "/wp-json/wc",
		Version:        "v3",
		ConsumerKey:    "ck_",
		ConsumerSecret: "cs_",
	})

Paramaters

ApiConfig Type Description
store string Your Store URL, example: http://woo.dev/
apiConfig *rest.ApiConfig Extra arguments (see client options table)

Client options

Option Type Description
API bool Allow make requests to the new WP REST API integration (WooCommerce 2.6 or later)
APIPrefix string Custom WP REST API URL prefix, used to support custom prefixes created with the rest_url_prefix filter
Version string API version, default is v3
Timeout time.Duration Request timeout, default is 15
VerifySSL bool Verify SSL when connect, use this option as false when need to test with self-signed certificates, default is true
QueryStringAuth bool Force Basic Authentication as query string when true and using under HTTPS, default is false
OauthTimestamp time.Time Custom oAuth timestamp, default is time.Now()
ck string Your API consumer key
cs string Your API consumer secret

Interfaces

Get Products

    ctx := context.Background()
		var products *[]models.Product
		products, err := woocommerce.Products().Get(ctx, map[string][]string{})

		if err == nil {
			for _, product := range *products {
				fmt.Println("Product: ", product.Name)
			}

		} else {
			println("Error:", err.Error())
		}

Methods

Params Type Description
endpoint string WooCommerce API endpoint, example: customers or order/12
data interface{} Only for POST and PUT, data that will be converted to JSON
parameters url.Values Only for GET and DELETE, request query string

GET

rc, err := woocommerce.Get(ctx, endpoint, parameters)

POST

rc, err := woocommerce.Post(ctx, endpoint, data)

PUT

rc, err := woocommerce.Put(ctx, endpoint, data)

DELETE

rc, err := woocommerce.Delete(ctx, endpoint, parameters)

OPTIONS

rc, err := woocommerce.Options(ctx, endpoint)

Response

All methods will return a io.ReadCloser and nil on success or an error on failure.

Release History

About

A Golang wrapper for the WooCommerce API.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%