func (p Products) ListMatchingProducts(query string, optional ...mws.Parameters) (*mws.Response, error) {
	op := mws.OptionalParams([]string{"QueryContextId"}, optional)
	params := mws.Parameters{
		"Action":        "ListMatchingProducts",
		"Query":         query,
		"MarketplaceId": p.MarketPlaceId,
	}.Merge(op)
	return p.SendRequest(params)
}
ListMatchingProducts Returns a list of products and their attributes, based on a search query.
Optional Parameters:
QueryContextId - string
http://docs.developer.amazonservices.com/en_US/products/Products_ListMatchingProducts.html
package products
import (
	"github.com/svvu/gomws/mws"
)
type Products struct {
	*mws.Client
}
func NewClient(config mws.Config) (*Products, error) {
	prodcuts := new(Products)
	base, err := mws.NewClient(config, prodcuts.Version(), prodcuts.Name())
	if err != nil {
		return nil, err
	}
	prodcuts.Client = base
	return prodcuts, nil
}
func (p Products) Version() string {
	return "2011-10-01"
}
func (p Products) Name() string {
	return "Products"
}
func (p Products) GetServiceStatus() (*mws.Response, error) {
	params := mws.Parameters{
		"Action": "GetServiceStatus",
	}
	return p.SendRequest(params)
}