magento2

package module
v0.1.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 20, 2021 License: Apache-2.0 Imports: 10 Imported by: 0

README

Lint Maintainability Donate

go-magento2

A Golang package for communicating with the magento2 api. (tested with >=2.1.0)

I initially built this package because I need it for a project I'm currently working on.
For the start, I will add further features upon my need.

If you need a feature which is not implemented yet, feel free to open a pull request.


⚠ ⚠ COMPATIBILITY NOTICE ⚠ ⚠

This package is still in development-state.
While I'm trying to ensure 100% backwards-compatibility, there might be breaking changes in minor- or patch-level updates.


Features

  • Guest api
    • guest-carts
      • add items
      • get available shipping carrier
      • add shipping information (billing- and shipping-address)
      • get available payment methods
      • add payment method
      • place order
  • Registered customer api
    • cart
      • add items
      • get available shipping carrier
      • add shipping information (billing- and shipping-address)
      • get available payment methods
      • add payment method
      • place order
  • Administrator / Integration
    • cart
      • all features from guest- and customer-api
    • order
      • add comment to order
    • products
      • create new product
        • configurable products
          • assign simple products
        • simple products
      • create attributes
      • create attribute-set
        • assign attributes to attribute-set

Examples

See examples-directory.

Documentation

Index

Constants

View Source
const (
	RetryAttempts       = 3
	RetryWaitSeconds    = 5
	RetryMaxWaitSeconds = 20
)
View Source
const (
	Orders        = "/orders"
	OrderComments = "comments"
)

Variables

View Source
var ErrBadRequest = fmt.Errorf("%s", "bad request")
View Source
var ErrNoPointer = errors.New("target interface must be a pointer")
View Source
var ErrNotFound = errors.New("no document found")

Functions

func BuildFlexibleSearchQuery

func BuildFlexibleSearchQuery(criteria []SearchQueryCriteria, additionalQuery ...Fields) string

this method is used to build very flexible search-queries for example: ?searchCriteria[filter_groups][2][filters][0][field]=increment_id &searchCriteria[filter_groups][2][filters][0][value]=XXXXX &searchCriteria[filter_groups][2][filters][0][condition_type]=eq &fields=items[entity_id]

func BuildSearchQuery

func BuildSearchQuery(field, value, conditionType string) string

use this method for building simple search queries without any flexibility

Types

type AddProductPayload

type AddProductPayload struct {
	Product     Product `json:"product"`
	SaveOptions bool    `json:"saveOptions"`
}

type Address

type Address struct {
	ID                  int                      `json:"id,omitempty"`
	RegionID            int                      `json:"region_id,omitempty"`
	RegionCode          string                   `json:"region_code,omitempty"`
	CountryID           string                   `json:"country_id"`
	Street              []string                 `json:"street"`
	Company             string                   `json:"company,omitempty"`
	Telephone           string                   `json:"telephone"`
	Fax                 string                   `json:"fax,omitempty"`
	Postcode            string                   `json:"postcode"`
	City                string                   `json:"city"`
	Firstname           string                   `json:"firstname"`
	Lastname            string                   `json:"lastname"`
	Middlename          string                   `json:"middlename,omitempty"`
	Prefix              string                   `json:"prefix,omitempty"`
	Suffix              string                   `json:"suffix,omitempty"`
	VatID               string                   `json:"vat_id,omitempty"`
	CustomerID          int                      `json:"customer_id,omitempty"`
	Email               string                   `json:"email"`
	SameAsBilling       int                      `json:"same_as_billing,omitempty"`
	CustomerAddressID   int                      `json:"customer_address_id,omitempty"`
	SaveInAddressBook   int                      `json:"save_in_address_book,omitempty"`
	ExtensionAttributes map[string]interface{}   `json:"extension_attributes,omitempty"`
	CustomAttributes    []map[string]interface{} `json:"custom_attributes,omitempty"`
}

type AddressInformation

type AddressInformation struct {
	ShippingAddress      *ShippingAddress         `json:"shipping_address"`
	BillingAddress       *BillingAddress          `json:"billing_address"`
	ShippingMethodCode   string                   `json:"shipping_method_code"`
	ShippingCarrierCodes string                   `json:"shipping_carrier_code"`
	ExtensionAttributes  map[string]interface{}   `json:"extension_attributes,omitempty"`
	CustomAttributes     []map[string]interface{} `json:"custom_attributes,omitempty"`
}

type Attribute

type Attribute struct {
	ExtensionAttributes       ExtensionAttributes `json:"extension_attributes,omitempty"`
	IsWysiwygEnabled          bool                `json:"is_wysiwyg_enabled,omitempty"`
	IsHTMLAllowedOnFront      bool                `json:"is_html_allowed_on_front,omitempty"`
	UsedForSortBy             bool                `json:"used_for_sort_by,omitempty"`
	IsFilterable              bool                `json:"is_filterable,omitempty"`
	IsFilterableInSearch      bool                `json:"is_filterable_in_search,omitempty"`
	IsUsedInGrid              bool                `json:"is_used_in_grid,omitempty"`
	IsVisibleInGrid           bool                `json:"is_visible_in_grid,omitempty"`
	IsFilterableInGrid        bool                `json:"is_filterable_in_grid,omitempty"`
	Position                  int                 `json:"position,omitempty"`
	ApplyTo                   []string            `json:"apply_to,omitempty"`
	IsSearchable              string              `json:"is_searchable,omitempty"`
	IsVisibleInAdvancedSearch string              `json:"is_visible_in_advanced_search,omitempty"`
	IsComparable              string              `json:"is_comparable,omitempty"`
	IsUsedForPromoRules       string              `json:"is_used_for_promo_rules,omitempty"`
	IsVisibleOnFront          string              `json:"is_visible_on_front,omitempty"`
	UsedInProductListing      string              `json:"used_in_product_listing,omitempty"`
	IsVisible                 bool                `json:"is_visible,omitempty"`
	Scope                     string              `json:"scope,omitempty"`
	AttributeID               int                 `json:"attribute_id,omitempty"`
	AttributeCode             string              `json:"attribute_code"`
	FrontendInput             string              `json:"frontend_input"`
	EntityTypeID              string              `json:"entity_type_id,omitempty"`
	IsRequired                bool                `json:"is_required,omitempty"`
	Options                   []Option            `json:"options,omitempty"`
	IsUserDefined             bool                `json:"is_user_defined,omitempty"`
	DefaultFrontendLabel      string              `json:"default_frontend_label"`
	FrontendLabels            []FrontendLabels    `json:"frontend_labels,omitempty"`
	Note                      string              `json:"note,omitempty"`
	BackendType               string              `json:"backend_type,omitempty"`
	BackendModel              string              `json:"backend_model,omitempty"`
	SourceModel               string              `json:"source_model,omitempty"`
	DefaultValue              string              `json:"default_value,omitempty"`
	IsUnique                  string              `json:"is_unique,omitempty"`
	FrontendClass             string              `json:"frontend_class,omitempty"`
	ValidationRules           []ValidationRules   `json:"validation_rules,omitempty"`
	CustomAttributes          []CustomAttributes  `json:"custom_attributes,omitempty"`
}

type AttributeSet

type AttributeSet struct {
	AttributeSetID      int         `json:"attribute_set_id,omitempty"`
	AttributeSetName    string      `json:"attribute_set_name"`
	SortOrder           int         `json:"sort_order"`
	EntityTypeID        int         `json:"entity_type_id,omitempty"`
	ExtensionAttributes interface{} `json:"extension_attributes,omitempty"`
}

type AuthenticationRequestPayload

type AuthenticationRequestPayload struct {
	Username string `json:"username"`
	Password string `json:"password"`
}

type AuthenticationType

type AuthenticationType int
const (
	CustomerAuth AuthenticationType = iota
	Administrator
)

func (AuthenticationType) Route

func (authenticationType AuthenticationType) Route() string

type BillingAddress

type BillingAddress struct {
	Address
}

type Carrier

type Carrier struct {
	CarrierCode  string  `json:"carrier_code"`
	MethodCode   string  `json:"method_code"`
	CarrierTitle string  `json:"carrier_title"`
	MethodTitle  string  `json:"method_title"`
	Amount       float64 `json:"amount"`
	BaseAmount   float64 `json:"base_amount"`
	Available    bool    `json:"available"`
	ErrorMessage string  `json:"error_message,omitempty"`
	PriceExclTax float64 `json:"price_excl_tax"`
	PriceInclTax float64 `json:"price_incl_tax"`
}

type Cart

type Cart struct {
	ID                  int                    `json:"id"`
	CreatedAt           string                 `json:"created_at"`
	UpdatedAt           string                 `json:"updated_at"`
	ConvertedAt         string                 `json:"converted_at"`
	IsActive            bool                   `json:"is_active"`
	IsVirtual           bool                   `json:"is_virtual"`
	Items               []CartItem             `json:"items"`
	ItemsCount          int                    `json:"items_count"`
	ItemsQty            int                    `json:"items_qty"`
	Customer            Customer               `json:"customer"`
	BillingAddress      *BillingAddress        `json:"billing_address"`
	ReservedOrderID     int                    `json:"reserved_order_id"`
	OrigOrderID         int                    `json:"orig_order_id"`
	Currency            Currency               `json:"currency"`
	CustomerIsGuest     bool                   `json:"customer_is_guest"`
	CustomerNote        string                 `json:"customer_note"`
	CustomerNoteNotify  bool                   `json:"customer_note_notify"`
	CustomerTaxClassID  int                    `json:"customer_tax_class_id"`
	StoreID             int                    `json:"store_id"`
	ExtensionAttributes map[string]interface{} `json:"extension_attributes"`
}

type CartItem

type CartItem struct {
	ItemID              int                    `json:"item_id,omitempty"`
	Sku                 string                 `json:"sku"`
	Qty                 float64                `json:"qty"`
	Name                string                 `json:"name,omitempty"`
	Price               float64                `json:"price,omitempty"`
	ProductType         string                 `json:"product_type,omitempty"`
	QuoteID             string                 `json:"quote_id"`
	ProductOption       CartProductOption      `json:"product_option,omitempty"`
	ExtensionAttributes map[string]interface{} `json:"extension_attributes,omitempty"`
}

type CartProductOption

type CartProductOption struct {
	ExtensionAttributes map[string]interface{} `json:"extension_attributes,omitempty"`
}

type Category

type Category struct {
	ID                  int                `json:"id,omitempty"`
	ParentID            int                `json:"parent_id,omitempty"`
	Name                string             `json:"name,omitempty"`
	IsActive            bool               `json:"is_active,omitempty"`
	Position            int                `json:"position,omitempty"`
	Level               int                `json:"level,omitempty"`
	Children            string             `json:"children,omitempty"`
	CreatedAt           string             `json:"created_at,omitempty"`
	UpdatedAt           string             `json:"updated_at,omitempty"`
	Path                string             `json:"path,omitempty"`
	AvailableSortBy     []string           `json:"available_sort_by,omitempty"`
	IncludeInMenu       bool               `json:"include_in_menu,omitempty"`
	ExtensionAttributes interface{}        `json:"extension_attributes,omitempty"`
	CustomAttributes    []CustomAttributes `json:"custom_attributes,omitempty"`
}

type Client

type Client struct {
	HTTPClient *resty.Client
}

func NewAPIClientFromAuthentication

func NewAPIClientFromAuthentication(storeConfig *StoreConfig, payload AuthenticationRequestPayload, authenticationType AuthenticationType) (*Client, error)

func NewAPIClientFromIntegration

func NewAPIClientFromIntegration(storeConfig *StoreConfig, bearer string) (*Client, error)

func NewAPIClientWithoutAuthentication

func NewAPIClientWithoutAuthentication(storeConfig *StoreConfig) *Client

func (*Client) GetRouteAndDecode

func (c *Client) GetRouteAndDecode(route string, target interface{}, tryTo string) error

func (*Client) PostRouteAndDecode

func (c *Client) PostRouteAndDecode(route string, body, target interface{}, tryTo string) error

type ConfigurableProductOption

type ConfigurableProductOption struct {
	ID                  int         `json:"id,omitempty"`
	AttributeID         string      `json:"attribute_id"`
	Label               string      `json:"label"`
	Position            int         `json:"position"`
	IsUseDefault        bool        `json:"is_use_default"`
	Values              []Value     `json:"values"`
	ExtensionAttributes interface{} `json:"extension_attributes,omitempty"`
	ProductID           int         `json:"product_id,omitempty"`
}

type Content

type Content struct {
	Base64EncodedData string `json:"base64_encoded_data"`
	Type              string `json:"type"`
	Name              string `json:"name"`
}

type Currency

type Currency struct {
	GlobalCurrencyCode  string                 `json:"global_currency_code,omitempty"`
	BaseCurrencyCode    string                 `json:"base_currency_code,omitempty"`
	StoreCurrencyCode   string                 `json:"store_currency_code,omitempty"`
	QuoteCurrencyCode   string                 `json:"quote_currency_code,omitempty"`
	StoreToBaseRate     int                    `json:"store_to_base_rate,omitempty"`
	StoreToQuoteRate    int                    `json:"store_to_quote_rate,omitempty"`
	BaseToGlobalRate    int                    `json:"base_to_global_rate,omitempty"`
	BaseToQuoteRate     int                    `json:"base_to_quote_rate,omitempty"`
	ExtensionAttributes map[string]interface{} `json:"extension_attributes,omitempty"`
}

type CustomAttributes

type CustomAttributes struct {
	AttributeCode string `json:"attribute_code"`
	Value         string `json:"value"`
}

type Customer

type Customer struct {
	ID                     int                      `json:"id,omitempty"`
	GroupID                int                      `json:"group_id,omitempty"`
	DefaultBilling         string                   `json:"default_billing,omitempty"`
	DefaultShipping        string                   `json:"default_shipping,omitempty"`
	Confirmation           string                   `json:"confirmation,omitempty"`
	CreatedAt              string                   `json:"created_at,omitempty"`
	UpdatedAt              string                   `json:"updated_at,omitempty"`
	CreatedIn              string                   `json:"created_in,omitempty"`
	Dob                    string                   `json:"dob,omitempty"`
	Email                  string                   `json:"email,omitempty"`
	Firstname              string                   `json:"firstname,omitempty"`
	Lastname               string                   `json:"lastname,omitempty"`
	Middlename             string                   `json:"middlename,omitempty"`
	Prefix                 string                   `json:"prefix,omitempty"`
	Suffix                 string                   `json:"suffix,omitempty"`
	Gender                 int                      `json:"gender,omitempty"`
	StoreID                int                      `json:"store_id,omitempty"`
	Taxvat                 string                   `json:"taxvat,omitempty"`
	WebsiteID              int                      `json:"website_id,omitempty"`
	Addresses              []Address                `json:"addresses,omitempty"`
	DisableAutoGroupChange int                      `json:"disable_auto_group_change,omitempty"`
	ExtensionAttributes    map[string]interface{}   `json:"extension_attributes,omitempty"`
	CustomAttributes       []map[string]interface{} `json:"custom_attributes,omitempty"`
}

type ExtensionAttributes

type ExtensionAttributes struct {
	IsPagebuilderEnabled bool `json:"is_pagebuilder_enabled,omitempty"`
}

type Fields

type Fields struct {
	Key   string
	Value string
}

type Filter

type Filter struct {
	FilterGroups int
	Filters      int
	FilterFor    string
}

type FilterFields

type FilterFields struct {
	Field         Filter
	Value         Filter
	ConditionType Filter
}

type FrontendLabels

type FrontendLabels struct {
	StoreID int    `json:"store_id"`
	Label   string `json:"label"`
}

type Group

type Group struct {
	AttributeGroupID    string `json:"attribute_group_id,omitempty"`
	AttributeGroupName  string `json:"attribute_group_name"`
	AttributeSetID      int    `json:"attribute_set_id"`
	ExtensionAttributes struct {
		AttributeGroupCode string `json:"attribute_group_code,omitempty"`
		SortOrder          string `json:"sort_order,omitempty"`
	} `json:"extension_attributes,omitempty"`
}

type Item

type Item struct {
	AdditionalData                      string  `json:"additional_data,omitempty"`
	AmountRefunded                      float64 `json:"amount_refunded,omitempty"`
	AppliedRuleIds                      string  `json:"applied_rule_ids,omitempty"`
	BaseAmountRefunded                  float64 `json:"base_amount_refunded,omitempty"`
	BaseCost                            float64 `json:"base_cost,omitempty"`
	BaseDiscountAmount                  float64 `json:"base_discount_amount,omitempty"`
	BaseDiscountInvoiced                float64 `json:"base_discount_invoiced,omitempty"`
	BaseDiscountRefunded                float64 `json:"base_discount_refunded,omitempty"`
	BaseDiscountTaxCompensationAmount   float64 `json:"base_discount_tax_compensation_amount,omitempty"`
	BaseDiscountTaxCompensationInvoiced float64 `json:"base_discount_tax_compensation_invoiced,omitempty"`
	BaseDiscountTaxCompensationRefunded float64 `json:"base_discount_tax_compensation_refunded,omitempty"`
	BaseOriginalPrice                   float64 `json:"base_original_price,omitempty"`
	BasePrice                           float64 `json:"base_price,omitempty"`
	BasePriceInclTax                    float64 `json:"base_price_incl_tax,omitempty"`
	BaseRowInvoiced                     float64 `json:"base_row_invoiced,omitempty"`
	BaseRowTotal                        float64 `json:"base_row_total,omitempty"`
	BaseRowTotalInclTax                 float64 `json:"base_row_total_incl_tax,omitempty"`
	BaseTaxAmount                       float64 `json:"base_tax_amount,omitempty"`
	BaseTaxBeforeDiscount               float64 `json:"base_tax_before_discount,omitempty"`
	BaseTaxInvoiced                     float64 `json:"base_tax_invoiced,omitempty"`
	BaseTaxRefunded                     float64 `json:"base_tax_refunded,omitempty"`
	BaseWeeeTaxAppliedAmount            float64 `json:"base_weee_tax_applied_amount,omitempty"`
	BaseWeeeTaxAppliedRowAmnt           float64 `json:"base_weee_tax_applied_row_amnt,omitempty"`
	BaseWeeeTaxDisposition              float64 `json:"base_weee_tax_disposition,omitempty"`
	BaseWeeeTaxRowDisposition           float64 `json:"base_weee_tax_row_disposition,omitempty"`
	CreatedAt                           string  `json:"created_at,omitempty"`
	Description                         string  `json:"description,omitempty"`
	DiscountAmount                      float64 `json:"discount_amount,omitempty"`
	DiscountInvoiced                    float64 `json:"discount_invoiced,omitempty"`
	DiscountPercent                     float64 `json:"discount_percent,omitempty"`
	DiscountRefunded                    float64 `json:"discount_refunded,omitempty"`
	EventID                             float64 `json:"event_id,omitempty"`
	ExtOrderItemID                      string  `json:"ext_order_item_id,omitempty"`
	FreeShipping                        float64 `json:"free_shipping,omitempty"`
	GwBasePrice                         float64 `json:"gw_base_price,omitempty"`
	GwBasePriceInvoiced                 float64 `json:"gw_base_price_invoiced,omitempty"`
	GwBasePriceRefunded                 float64 `json:"gw_base_price_refunded,omitempty"`
	GwBaseTaxAmount                     float64 `json:"gw_base_tax_amount,omitempty"`
	GwBaseTaxAmountInvoiced             float64 `json:"gw_base_tax_amount_invoiced,omitempty"`
	GwBaseTaxAmountRefunded             float64 `json:"gw_base_tax_amount_refunded,omitempty"`
	GwID                                float64 `json:"gw_id,omitempty"`
	GwPrice                             float64 `json:"gw_price,omitempty"`
	GwPriceInvoiced                     float64 `json:"gw_price_invoiced,omitempty"`
	GwPriceRefunded                     float64 `json:"gw_price_refunded,omitempty"`
	GwTaxAmount                         float64 `json:"gw_tax_amount,omitempty"`
	GwTaxAmountInvoiced                 float64 `json:"gw_tax_amount_invoiced,omitempty"`
	GwTaxAmountRefunded                 float64 `json:"gw_tax_amount_refunded,omitempty"`
	DiscountTaxCompensationAmount       float64 `json:"discount_tax_compensation_amount,omitempty"`
	DiscountTaxCompensationCanceled     float64 `json:"discount_tax_compensation_canceled,omitempty"`
	DiscountTaxCompensationInvoiced     float64 `json:"discount_tax_compensation_invoiced,omitempty"`
	DiscountTaxCompensationRefunded     float64 `json:"discount_tax_compensation_refunded,omitempty"`
	IsQtyDecimal                        float64 `json:"is_qty_decimal,omitempty"`
	IsVirtual                           float64 `json:"is_virtual,omitempty"`
	ItemID                              float64 `json:"item_id,omitempty"`
	LockedDoInvoice                     float64 `json:"locked_do_invoice,omitempty"`
	LockedDoShip                        float64 `json:"locked_do_ship,omitempty"`
	Name                                string  `json:"name,omitempty"`
	NoDiscount                          float64 `json:"no_discount,omitempty"`
	OrderID                             float64 `json:"order_id,omitempty"`
	OriginalPrice                       float64 `json:"original_price,omitempty"`
	ParentItemID                        float64 `json:"parent_item_id,omitempty"`
	Price                               float64 `json:"price,omitempty"`
	PriceInclTax                        float64 `json:"price_incl_tax,omitempty"`
	ProductID                           float64 `json:"product_id,omitempty"`
	ProductType                         string  `json:"product_type,omitempty"`
	QtyBackordered                      float64 `json:"qty_backordered,omitempty"`
	QtyCanceled                         float64 `json:"qty_canceled,omitempty"`
	QtyInvoiced                         float64 `json:"qty_invoiced,omitempty"`
	QtyOrdered                          float64 `json:"qty_ordered,omitempty"`
	QtyRefunded                         float64 `json:"qty_refunded,omitempty"`
	QtyReturned                         float64 `json:"qty_returned,omitempty"`
	QtyShipped                          float64 `json:"qty_shipped,omitempty"`
	QuoteItemID                         float64 `json:"quote_item_id,omitempty"`
	RowInvoiced                         float64 `json:"row_invoiced,omitempty"`
	RowTotal                            float64 `json:"row_total,omitempty"`
	RowTotalInclTax                     float64 `json:"row_total_incl_tax,omitempty"`
	RowWeight                           float64 `json:"row_weight,omitempty"`
	Sku                                 string  `json:"sku,omitempty"`
	StoreID                             float64 `json:"store_id,omitempty"`
	TaxAmount                           float64 `json:"tax_amount,omitempty"`
	TaxBeforeDiscount                   float64 `json:"tax_before_discount,omitempty"`
	TaxCanceled                         float64 `json:"tax_canceled,omitempty"`
	TaxInvoiced                         float64 `json:"tax_invoiced,omitempty"`
	TaxPercent                          float64 `json:"tax_percent,omitempty"`
	TaxRefunded                         float64 `json:"tax_refunded,omitempty"`
	UpdatedAt                           string  `json:"updated_at,omitempty"`
	WeeeTaxApplied                      string  `json:"weee_tax_applied,omitempty"`
	WeeeTaxAppliedAmount                float64 `json:"weee_tax_applied_amount,omitempty"`
	WeeeTaxAppliedRowAmount             float64 `json:"weee_tax_applied_row_amount,omitempty"`
	WeeeTaxDisposition                  float64 `json:"weee_tax_disposition,omitempty"`
	WeeeTaxRowDisposition               float64 `json:"weee_tax_row_disposition,omitempty"`
	Weight                              float64 `json:"weight,omitempty"`
	ParentItem                          *struct {
	} `json:"parent_item,omitempty"`
	ProductOption       OrdersProductOption `json:"product_option,omitempty"`
	ExtensionAttributes *struct {
		GiftMessage *struct {
			GiftMessageID       float64 `json:"gift_message_id,omitempty"`
			CustomerID          float64 `json:"customer_id,omitempty"`
			Sender              string  `json:"sender,omitempty"`
			Recipient           string  `json:"recipient,omitempty"`
			Message             string  `json:"message,omitempty"`
			ExtensionAttributes *struct {
				EntityID                   string  `json:"entity_id,omitempty"`
				EntityType                 string  `json:"entity_type,omitempty"`
				WrappingID                 float64 `json:"wrapping_id,omitempty"`
				WrappingAllowGiftReceipt   bool    `json:"wrapping_allow_gift_receipt,omitempty"`
				WrappingAddPrfloat64edCard bool    `json:"wrapping_add_prfloat64ed_card,omitempty"`
			} `json:"extension_attributes,omitempty"`
		} `json:"gift_message,omitempty"`
		GwID                    string   `json:"gw_id,omitempty"`
		GwBasePrice             string   `json:"gw_base_price,omitempty"`
		GwPrice                 string   `json:"gw_price,omitempty"`
		GwBaseTaxAmount         string   `json:"gw_base_tax_amount,omitempty"`
		GwTaxAmount             string   `json:"gw_tax_amount,omitempty"`
		GwBasePriceInvoiced     string   `json:"gw_base_price_invoiced,omitempty"`
		GwPriceInvoiced         string   `json:"gw_price_invoiced,omitempty"`
		GwBaseTaxAmountInvoiced string   `json:"gw_base_tax_amount_invoiced,omitempty"`
		GwTaxAmountInvoiced     string   `json:"gw_tax_amount_invoiced,omitempty"`
		GwBasePriceRefunded     string   `json:"gw_base_price_refunded,omitempty"`
		GwPriceRefunded         string   `json:"gw_price_refunded,omitempty"`
		GwBaseTaxAmountRefunded string   `json:"gw_base_tax_amount_refunded,omitempty"`
		GwTaxAmountRefunded     string   `json:"gw_tax_amount_refunded,omitempty"`
		VertexTaxCodes          []string `json:"vertex_tax_codes,omitempty"`
		InvoiceTextCodes        []string `json:"invoice_text_codes,omitempty"`
		TaxCodes                []string `json:"tax_codes,omitempty"`
	} `json:"extension_attributes,omitempty"`
}

type ItemNotFoundError

type ItemNotFoundError struct {
	ItemID int
}

func (*ItemNotFoundError) Error

func (a *ItemNotFoundError) Error() string

type MAttribute

type MAttribute struct {
	Route     string
	Attribute *Attribute
	APIClient *Client
}

func CreateAttribute

func CreateAttribute(a *Attribute, apiClient *Client) (*MAttribute, error)

func GetAttributeByAttributeCode

func GetAttributeByAttributeCode(attributeCode string, apiClient *Client) (*MAttribute, error)

func (*MAttribute) AddOption

func (mas *MAttribute) AddOption(option Option) (string, error)

func (*MAttribute) UpdateAttributeFromRemote

func (mas *MAttribute) UpdateAttributeFromRemote() error

func (*MAttribute) UpdateAttributeOnRemote

func (mas *MAttribute) UpdateAttributeOnRemote() error

type MAttributeSet

type MAttributeSet struct {
	Route                  string
	AttributeSet           *AttributeSet
	AttributeSetGroups     []Group
	AttributeSetAttributes *[]Attribute
	APIClient              *Client
}

func CreateAttributeSet

func CreateAttributeSet(a AttributeSet, skeletonID int, apiClient *Client) (*MAttributeSet, error)

func GetAttributeSetByName

func GetAttributeSetByName(name string, apiClient *Client) (*MAttributeSet, error)

func (*MAttributeSet) AssignAttribute

func (mas *MAttributeSet) AssignAttribute(attributeGroupID, sortOrder int, attributeCode string) error

func (*MAttributeSet) CreateGroup

func (mas *MAttributeSet) CreateGroup(groupName string) error

func (*MAttributeSet) UpdateAttributeSetFromRemote

func (mas *MAttributeSet) UpdateAttributeSetFromRemote() error

func (*MAttributeSet) UpdateAttributeSetOnRemote

func (mas *MAttributeSet) UpdateAttributeSetOnRemote() error

type MCart

type MCart struct {
	Route     string
	QuoteID   string
	Cart      *Cart
	APIClient *Client
}

func NewCustomerCartFromAPIClient

func NewCustomerCartFromAPIClient(apiClient *Client) (*MCart, error)

func NewGuestCartFromAPIClient

func NewGuestCartFromAPIClient(apiClient *Client) (*MCart, error)

func (*MCart) AddItems

func (cart *MCart) AddItems(items []CartItem) error

func (*MCart) AddShippingInformation

func (cart *MCart) AddShippingInformation(addrInfo *AddressInformation) error

func (*MCart) CreateOrder

func (cart *MCart) CreateOrder(paymentMethod PaymentMethod) (*MOrder, error)

func (*MCart) DeleteAllItems

func (cart *MCart) DeleteAllItems() error

func (*MCart) DeleteItem

func (cart *MCart) DeleteItem(itemID int) error

func (*MCart) EstimatePaymentMethods

func (cart *MCart) EstimatePaymentMethods() ([]PaymentMethod, error)

func (*MCart) EstimateShippingCarrier

func (cart *MCart) EstimateShippingCarrier(addr *ShippingAddress) ([]Carrier, error)

func (*MCart) UpdateFromRemote

func (cart *MCart) UpdateFromRemote() error

type MCategory

type MCategory struct {
	Route     string
	Category  *Category
	Products  *[]ProductLink
	APIClient *Client
}

func CreateCategory

func CreateCategory(c *Category, apiClient *Client) (*MCategory, error)

func GetCategoryByName

func GetCategoryByName(name string, apiClient *Client) (*MCategory, error)
func (mC *MCategory) AssignProductByProductLink(pl *ProductLink) error

func (*MCategory) UpdateCategoryFromRemote

func (mC *MCategory) UpdateCategoryFromRemote() error

func (*MCategory) UpdateCategoryProductsFromRemote

func (mC *MCategory) UpdateCategoryProductsFromRemote() error

type MConfigurableProduct

type MConfigurableProduct struct {
	Route     string
	Options   *[]Option
	APIClient *Client
}

func GetConfigurableProductBySKU

func GetConfigurableProductBySKU(sku string, apiClient *Client) (*MConfigurableProduct, error)

func SetOptionForExistingConfigurableProduct

func SetOptionForExistingConfigurableProduct(sku string, o *ConfigurableProductOption, apiClient *Client) (*MConfigurableProduct, error)

func (*MConfigurableProduct) AddChildBySKU

func (mConfigurableProduct *MConfigurableProduct) AddChildBySKU(sku string) error

func (*MConfigurableProduct) UpdateOptionByID

func (mConfigurableProduct *MConfigurableProduct) UpdateOptionByID(o *ConfigurableProductOption) error

func (*MConfigurableProduct) UpdateOptionsFromRemote

func (mConfigurableProduct *MConfigurableProduct) UpdateOptionsFromRemote() error

type MOrder

type MOrder struct {
	Route     string
	Order     *Order
	APIClient *Client
}

func GetOrderByIncrementID

func GetOrderByIncrementID(id string, apiClient *Client) (*MOrder, error)

func (*MOrder) AddComment

func (mo *MOrder) AddComment(comment *StatusHistory) (StatusHistory, error)

func (*MOrder) UpdateEntity

func (mo *MOrder) UpdateEntity(order *Order) error

func (*MOrder) UpdateFromRemote

func (mo *MOrder) UpdateFromRemote() error

type MProduct

type MProduct struct {
	Route     string
	Product   *Product
	APIClient *Client
}

func CreateOrReplaceProduct

func CreateOrReplaceProduct(product *Product, saveOptions bool, apiClient *Client) (*MProduct, error)

func GetProductBySKU

func GetProductBySKU(sku string, apiClient *Client) (*MProduct, error)

func (*MProduct) UpdateProductFromRemote

func (mProduct *MProduct) UpdateProductFromRemote() error

func (*MProduct) UpdateQuantityForStockItem

func (mProduct *MProduct) UpdateQuantityForStockItem(stockItem string, quantity int, isInStock bool) error

type MediaGalleryEntries

type MediaGalleryEntries struct {
	ID                  int                    `json:"id"`
	MediaType           string                 `json:"media_type"`
	Label               string                 `json:"label"`
	Position            int                    `json:"position"`
	Disabled            bool                   `json:"disabled"`
	Types               []string               `json:"types"`
	File                string                 `json:"file"`
	Content             Content                `json:"content"`
	ExtensionAttributes map[string]interface{} `json:"extension_attributes"`
}

type Option

type Option struct {
	Label       string        `json:"label"`
	Value       string        `json:"value"`
	SortOrder   int           `json:"sort_order,omitempty"`
	IsDefault   bool          `json:"is_default,omitempty"`
	StoreLabels []StoreLabels `json:"store_labels,omitempty"`
}

type Options

type Options struct {
	ProductSku          string                 `json:"product_sku,omitempty"`
	OptionID            int                    `json:"option_id,omitempty"`
	Title               string                 `json:"title,omitempty"`
	Type                string                 `json:"type,omitempty"`
	SortOrder           int                    `json:"sort_order,omitempty"`
	IsRequired          bool                   `json:"is_required,omitempty"`
	Price               float64                `json:"price,omitempty"`
	PriceType           string                 `json:"price_type,omitempty"`
	Sku                 string                 `json:"sku,omitempty"`
	FileExtension       string                 `json:"file_extension,omitempty"`
	MaxCharacters       int                    `json:"max_characters,omitempty"`
	ImageSizeX          int                    `json:"image_size_x,omitempty"`
	ImageSizeY          int                    `json:"image_size_y,omitempty"`
	Values              []Values               `json:"values,omitempty"`
	ExtensionAttributes map[string]interface{} `json:"extension_attributes,omitempty"`
}

type Order

type Order struct {
	AdjustmentNegative                      float64         `json:"adjustment_negative,omitempty"`
	AdjustmentPositive                      float64         `json:"adjustment_positive,omitempty"`
	AppliedRuleIds                          string          `json:"applied_rule_ids,omitempty"`
	BaseAdjustmentNegative                  float64         `json:"base_adjustment_negative,omitempty"`
	BaseAdjustmentPositive                  float64         `json:"base_adjustment_positive,omitempty"`
	BaseCurrencyCode                        string          `json:"base_currency_code,omitempty"`
	BaseDiscountAmount                      float64         `json:"base_discount_amount,omitempty"`
	BaseDiscountCanceled                    float64         `json:"base_discount_canceled,omitempty"`
	BaseDiscountInvoiced                    float64         `json:"base_discount_invoiced,omitempty"`
	BaseDiscountRefunded                    float64         `json:"base_discount_refunded,omitempty"`
	BaseGrandTotal                          float64         `json:"base_grand_total,omitempty"`
	BaseDiscountTaxCompensationAmount       float64         `json:"base_discount_tax_compensation_amount,omitempty"`
	BaseDiscountTaxCompensationInvoiced     float64         `json:"base_discount_tax_compensation_invoiced,omitempty"`
	BaseDiscountTaxCompensationRefunded     float64         `json:"base_discount_tax_compensation_refunded,omitempty"`
	BaseShippingAmount                      float64         `json:"base_shipping_amount,omitempty"`
	BaseShippingCanceled                    float64         `json:"base_shipping_canceled,omitempty"`
	BaseShippingDiscountAmount              float64         `json:"base_shipping_discount_amount,omitempty"`
	BaseShippingDiscountTaxCompensationAmnt float64         `json:"base_shipping_discount_tax_compensation_amnt,omitempty"`
	BaseShippingInclTax                     float64         `json:"base_shipping_incl_tax,omitempty"`
	BaseShippingInvoiced                    float64         `json:"base_shipping_invoiced,omitempty"`
	BaseShippingRefunded                    float64         `json:"base_shipping_refunded,omitempty"`
	BaseShippingTaxAmount                   float64         `json:"base_shipping_tax_amount,omitempty"`
	BaseShippingTaxRefunded                 float64         `json:"base_shipping_tax_refunded,omitempty"`
	BaseSubtotal                            float64         `json:"base_subtotal,omitempty"`
	BaseSubtotalCanceled                    float64         `json:"base_subtotal_canceled,omitempty"`
	BaseSubtotalInclTax                     float64         `json:"base_subtotal_incl_tax,omitempty"`
	BaseSubtotalInvoiced                    float64         `json:"base_subtotal_invoiced,omitempty"`
	BaseSubtotalRefunded                    float64         `json:"base_subtotal_refunded,omitempty"`
	BaseTaxAmount                           float64         `json:"base_tax_amount,omitempty"`
	BaseTaxCanceled                         float64         `json:"base_tax_canceled,omitempty"`
	BaseTaxInvoiced                         float64         `json:"base_tax_invoiced,omitempty"`
	BaseTaxRefunded                         float64         `json:"base_tax_refunded,omitempty"`
	BaseTotalCanceled                       float64         `json:"base_total_canceled,omitempty"`
	BaseTotalDue                            float64         `json:"base_total_due,omitempty"`
	BaseTotalInvoiced                       float64         `json:"base_total_invoiced,omitempty"`
	BaseTotalInvoicedCost                   float64         `json:"base_total_invoiced_cost,omitempty"`
	BaseTotalOfflineRefunded                float64         `json:"base_total_offline_refunded,omitempty"`
	BaseTotalOnlineRefunded                 float64         `json:"base_total_online_refunded,omitempty"`
	BaseTotalPaid                           float64         `json:"base_total_paid,omitempty"`
	BaseTotalQtyOrdered                     float64         `json:"base_total_qty_ordered,omitempty"`
	BaseTotalRefunded                       float64         `json:"base_total_refunded,omitempty"`
	BaseToGlobalRate                        float64         `json:"base_to_global_rate,omitempty"`
	BaseToOrderRate                         float64         `json:"base_to_order_rate,omitempty"`
	BillingAddressID                        float64         `json:"billing_address_id,omitempty"`
	CanShipPartially                        float64         `json:"can_ship_partially,omitempty"`
	CanShipPartiallyItem                    float64         `json:"can_ship_partially_item,omitempty"`
	CouponCode                              string          `json:"coupon_code,omitempty"`
	CreatedAt                               string          `json:"created_at,omitempty"`
	CustomerDob                             string          `json:"customer_dob,omitempty"`
	CustomerEmail                           string          `json:"customer_email,omitempty"`
	CustomerFirstname                       string          `json:"customer_firstname,omitempty"`
	CustomerGender                          float64         `json:"customer_gender,omitempty"`
	CustomerGroupID                         float64         `json:"customer_group_id,omitempty"`
	CustomerID                              float64         `json:"customer_id,omitempty"`
	CustomerIsGuest                         float64         `json:"customer_is_guest,omitempty"`
	CustomerLastname                        string          `json:"customer_lastname,omitempty"`
	CustomerMiddlename                      string          `json:"customer_middlename,omitempty"`
	CustomerNote                            string          `json:"customer_note,omitempty"`
	CustomerNoteNotify                      float64         `json:"customer_note_notify,omitempty"`
	CustomerPrefix                          string          `json:"customer_prefix,omitempty"`
	CustomerSuffix                          string          `json:"customer_suffix,omitempty"`
	CustomerTaxvat                          string          `json:"customer_taxvat,omitempty"`
	DiscountAmount                          float64         `json:"discount_amount,omitempty"`
	DiscountCanceled                        float64         `json:"discount_canceled,omitempty"`
	DiscountDescription                     string          `json:"discount_description,omitempty"`
	DiscountInvoiced                        float64         `json:"discount_invoiced,omitempty"`
	DiscountRefunded                        float64         `json:"discount_refunded,omitempty"`
	EditIncrement                           float64         `json:"edit_increment,omitempty"`
	EmailSent                               float64         `json:"email_sent,omitempty"`
	EntityID                                int             `json:"entity_id,omitempty"`
	ExtCustomerID                           string          `json:"ext_customer_id,omitempty"`
	ExtOrderID                              string          `json:"ext_order_id,omitempty"`
	ForcedShipmentWithInvoice               float64         `json:"forced_shipment_with_invoice,omitempty"`
	GlobalCurrencyCode                      string          `json:"global_currency_code,omitempty"`
	GrandTotal                              float64         `json:"grand_total,omitempty"`
	DiscountTaxCompensationAmount           float64         `json:"discount_tax_compensation_amount,omitempty"`
	DiscountTaxCompensationInvoiced         float64         `json:"discount_tax_compensation_invoiced,omitempty"`
	DiscountTaxCompensationRefunded         float64         `json:"discount_tax_compensation_refunded,omitempty"`
	HoldBeforeState                         string          `json:"hold_before_state,omitempty"`
	HoldBeforeStatus                        string          `json:"hold_before_status,omitempty"`
	IncrementID                             string          `json:"increment_id,omitempty"`
	IsVirtual                               float64         `json:"is_virtual,omitempty"`
	OrderCurrencyCode                       string          `json:"order_currency_code,omitempty"`
	OriginalIncrementID                     string          `json:"original_increment_id,omitempty"`
	PaymentAuthorizationAmount              float64         `json:"payment_authorization_amount,omitempty"`
	PaymentAuthExpiration                   float64         `json:"payment_auth_expiration,omitempty"`
	ProtectCode                             string          `json:"protect_code,omitempty"`
	QuoteAddressID                          float64         `json:"quote_address_id,omitempty"`
	QuoteID                                 float64         `json:"quote_id,omitempty"`
	RelationChildID                         string          `json:"relation_child_id,omitempty"`
	RelationChildRealID                     string          `json:"relation_child_real_id,omitempty"`
	RelationParentID                        string          `json:"relation_parent_id,omitempty"`
	RelationParentRealID                    string          `json:"relation_parent_real_id,omitempty"`
	RemoteIP                                string          `json:"remote_ip,omitempty"`
	ShippingAmount                          float64         `json:"shipping_amount,omitempty"`
	ShippingCanceled                        float64         `json:"shipping_canceled,omitempty"`
	ShippingDescription                     string          `json:"shipping_description,omitempty"`
	ShippingDiscountAmount                  float64         `json:"shipping_discount_amount,omitempty"`
	ShippingDiscountTaxCompensationAmount   float64         `json:"shipping_discount_tax_compensation_amount,omitempty"`
	ShippingInclTax                         float64         `json:"shipping_incl_tax,omitempty"`
	ShippingInvoiced                        float64         `json:"shipping_invoiced,omitempty"`
	ShippingRefunded                        float64         `json:"shipping_refunded,omitempty"`
	ShippingTaxAmount                       float64         `json:"shipping_tax_amount,omitempty"`
	ShippingTaxRefunded                     float64         `json:"shipping_tax_refunded,omitempty"`
	State                                   string          `json:"state,omitempty"`
	Status                                  string          `json:"status,omitempty"`
	StoreCurrencyCode                       string          `json:"store_currency_code,omitempty"`
	StoreID                                 float64         `json:"store_id,omitempty"`
	StoreName                               string          `json:"store_name,omitempty"`
	StoreToBaseRate                         float64         `json:"store_to_base_rate,omitempty"`
	StoreToOrderRate                        float64         `json:"store_to_order_rate,omitempty"`
	Subtotal                                float64         `json:"subtotal,omitempty"`
	SubtotalCanceled                        float64         `json:"subtotal_canceled,omitempty"`
	SubtotalInclTax                         float64         `json:"subtotal_incl_tax,omitempty"`
	SubtotalInvoiced                        float64         `json:"subtotal_invoiced,omitempty"`
	SubtotalRefunded                        float64         `json:"subtotal_refunded,omitempty"`
	TaxAmount                               float64         `json:"tax_amount,omitempty"`
	TaxCanceled                             float64         `json:"tax_canceled,omitempty"`
	TaxInvoiced                             float64         `json:"tax_invoiced,omitempty"`
	TaxRefunded                             float64         `json:"tax_refunded,omitempty"`
	TotalCanceled                           float64         `json:"total_canceled,omitempty"`
	TotalDue                                float64         `json:"total_due,omitempty"`
	TotalInvoiced                           float64         `json:"total_invoiced,omitempty"`
	TotalItemCount                          float64         `json:"total_item_count,omitempty"`
	TotalOfflineRefunded                    float64         `json:"total_offline_refunded,omitempty"`
	TotalOnlineRefunded                     float64         `json:"total_online_refunded,omitempty"`
	TotalPaid                               float64         `json:"total_paid,omitempty"`
	TotalQtyOrdered                         float64         `json:"total_qty_ordered,omitempty"`
	TotalRefunded                           float64         `json:"total_refunded,omitempty"`
	UpdatedAt                               string          `json:"updated_at,omitempty"`
	Weight                                  float64         `json:"weight,omitempty"`
	XForwardedFor                           string          `json:"x_forwarded_for,omitempty"`
	Items                                   []Item          `json:"items,omitempty"`
	BillingAddress                          *BillingAddress `json:"billing_address,omitempty"`
	Payment                                 *struct {
		AccountStatus             string   `json:"account_status,omitempty"`
		AdditionalData            string   `json:"additional_data,omitempty"`
		AdditionalInformation     []string `json:"additional_information,omitempty"`
		AddressStatus             string   `json:"address_status,omitempty"`
		AmountAuthorized          float64  `json:"amount_authorized,omitempty"`
		AmountCanceled            float64  `json:"amount_canceled,omitempty"`
		AmountOrdered             float64  `json:"amount_ordered,omitempty"`
		AmountPaid                float64  `json:"amount_paid,omitempty"`
		AmountRefunded            float64  `json:"amount_refunded,omitempty"`
		AnetTransMethod           string   `json:"anet_trans_method,omitempty"`
		BaseAmountAuthorized      float64  `json:"base_amount_authorized,omitempty"`
		BaseAmountCanceled        float64  `json:"base_amount_canceled,omitempty"`
		BaseAmountOrdered         float64  `json:"base_amount_ordered,omitempty"`
		BaseAmountPaid            float64  `json:"base_amount_paid,omitempty"`
		BaseAmountPaidOnline      float64  `json:"base_amount_paid_online,omitempty"`
		BaseAmountRefunded        float64  `json:"base_amount_refunded,omitempty"`
		BaseAmountRefundedOnline  float64  `json:"base_amount_refunded_online,omitempty"`
		BaseShippingAmount        float64  `json:"base_shipping_amount,omitempty"`
		BaseShippingCaptured      float64  `json:"base_shipping_captured,omitempty"`
		BaseShippingRefunded      float64  `json:"base_shipping_refunded,omitempty"`
		CcApproval                string   `json:"cc_approval,omitempty"`
		CcAvsStatus               string   `json:"cc_avs_status,omitempty"`
		CcCidStatus               string   `json:"cc_cid_status,omitempty"`
		CcDebugRequestBody        string   `json:"cc_debug_request_body,omitempty"`
		CcDebugResponseBody       string   `json:"cc_debug_response_body,omitempty"`
		CcDebugResponseSerialized string   `json:"cc_debug_response_serialized,omitempty"`
		CcExpMonth                string   `json:"cc_exp_month,omitempty"`
		CcExpYear                 string   `json:"cc_exp_year,omitempty"`
		CcLast4                   string   `json:"cc_last4,omitempty"`
		CcNumberEnc               string   `json:"cc_number_enc,omitempty"`
		CcOwner                   string   `json:"cc_owner,omitempty"`
		CcSecureVerify            string   `json:"cc_secure_verify,omitempty"`
		CcSsIssue                 string   `json:"cc_ss_issue,omitempty"`
		CcSsStartMonth            string   `json:"cc_ss_start_month,omitempty"`
		CcSsStartYear             string   `json:"cc_ss_start_year,omitempty"`
		CcStatus                  string   `json:"cc_status,omitempty"`
		CcStatusDescription       string   `json:"cc_status_description,omitempty"`
		CcTransID                 string   `json:"cc_trans_id,omitempty"`
		CcType                    string   `json:"cc_type,omitempty"`
		EcheckAccountName         string   `json:"echeck_account_name,omitempty"`
		EcheckAccountType         string   `json:"echeck_account_type,omitempty"`
		EcheckBankName            string   `json:"echeck_bank_name,omitempty"`
		EcheckRoutingNumber       string   `json:"echeck_routing_number,omitempty"`
		EcheckType                string   `json:"echeck_type,omitempty"`
		EntityID                  int      `json:"entity_id,omitempty"`
		LastTransID               string   `json:"last_trans_id,omitempty"`
		Method                    string   `json:"method,omitempty"`
		ParentID                  float64  `json:"parent_id,omitempty"`
		PoNumber                  string   `json:"po_number,omitempty"`
		ProtectionEligibility     string   `json:"protection_eligibility,omitempty"`
		QuotePaymentID            float64  `json:"quote_payment_id,omitempty"`
		ShippingAmount            float64  `json:"shipping_amount,omitempty"`
		ShippingCaptured          float64  `json:"shipping_captured,omitempty"`
		ShippingRefunded          float64  `json:"shipping_refunded,omitempty"`
		ExtensionAttributes       *struct {
			VaultPaymentToken *struct {
				EntityID          int     `json:"entity_id,omitempty"`
				CustomerID        float64 `json:"customer_id,omitempty"`
				PublicHash        string  `json:"public_hash,omitempty"`
				PaymentMethodCode string  `json:"payment_method_code,omitempty"`
				Type              string  `json:"type,omitempty"`
				CreatedAt         string  `json:"created_at,omitempty"`
				ExpiresAt         string  `json:"expires_at,omitempty"`
				GatewayToken      string  `json:"gateway_token,omitempty"`
				TokenDetails      string  `json:"token_details,omitempty"`
				IsActive          bool    `json:"is_active,omitempty"`
				IsVisible         bool    `json:"is_visible,omitempty"`
			} `json:"vault_payment_token,omitempty"`
		} `json:"extension_attributes,omitempty"`
	} `json:"payment,omitempty"`
	StatusHistories     []StatusHistory `json:"status_histories,omitempty"`
	ExtensionAttributes *struct {
		ShippingAssignments []struct {
			Shipping *struct {
				Address *ShippingAddress `json:"address,omitempty"`
				Method  string           `json:"method,omitempty"`
				Total   *struct {
					BaseShippingAmount                      float64 `json:"base_shipping_amount,omitempty"`
					BaseShippingCanceled                    float64 `json:"base_shipping_canceled,omitempty"`
					BaseShippingDiscountAmount              float64 `json:"base_shipping_discount_amount,omitempty"`
					BaseShippingDiscountTaxCompensationAmnt float64 `json:"base_shipping_discount_tax_compensation_amnt,omitempty"`
					BaseShippingInclTax                     float64 `json:"base_shipping_incl_tax,omitempty"`
					BaseShippingInvoiced                    float64 `json:"base_shipping_invoiced,omitempty"`
					BaseShippingRefunded                    float64 `json:"base_shipping_refunded,omitempty"`
					BaseShippingTaxAmount                   float64 `json:"base_shipping_tax_amount,omitempty"`
					BaseShippingTaxRefunded                 float64 `json:"base_shipping_tax_refunded,omitempty"`
					ShippingAmount                          float64 `json:"shipping_amount,omitempty"`
					ShippingCanceled                        float64 `json:"shipping_canceled,omitempty"`
					ShippingDiscountAmount                  float64 `json:"shipping_discount_amount,omitempty"`
					ShippingDiscountTaxCompensationAmount   float64 `json:"shipping_discount_tax_compensation_amount,omitempty"`
					ShippingInclTax                         float64 `json:"shipping_incl_tax,omitempty"`
					ShippingInvoiced                        float64 `json:"shipping_invoiced,omitempty"`
					ShippingRefunded                        float64 `json:"shipping_refunded,omitempty"`
					ShippingTaxAmount                       float64 `json:"shipping_tax_amount,omitempty"`
					ShippingTaxRefunded                     float64 `json:"shipping_tax_refunded,omitempty"`
					ExtensionAttributes                     struct {
					} `json:"extension_attributes,omitempty"`
				} `json:"total,omitempty"`
				ExtensionAttributes *struct {
					ExtOrderID         string `json:"ext_order_id,omitempty"`
					ShippingExperience *struct {
						Label string  `json:"label,omitempty"`
						Code  string  `json:"code,omitempty"`
						Cost  float64 `json:"cost,omitempty"`
					} `json:"shipping_experience,omitempty"`
					CollectionPofloat64 *struct {
						RecipientAddressID    float64  `json:"recipient_address_id,omitempty"`
						CollectionPofloat64ID string   `json:"collection_pofloat64_id,omitempty"`
						Name                  string   `json:"name,omitempty"`
						Country               string   `json:"country,omitempty"`
						Region                string   `json:"region,omitempty"`
						Postcode              string   `json:"postcode,omitempty"`
						City                  string   `json:"city,omitempty"`
						Street                []string `json:"street,omitempty"`
					} `json:"collection_pofloat64,omitempty"`
				} `json:"extension_attributes,omitempty"`
			} `json:"shipping,omitempty"`
			Items               []Item  `json:"items,omitempty"`
			StockID             float64 `json:"stock_id,omitempty"`
			ExtensionAttributes *struct {
			} `json:"extension_attributes,omitempty"`
		} `json:"shipping_assignments,omitempty"`
		PaymentAdditionalInfo []struct {
			Key   string `json:"key,omitempty"`
			Value string `json:"value,omitempty"`
		} `json:"payment_additional_info,omitempty"`
		CompanyOrderAttributes *struct {
			OrderID             float64 `json:"order_id,omitempty"`
			CompanyID           float64 `json:"company_id,omitempty"`
			CompanyName         string  `json:"company_name,omitempty"`
			ExtensionAttributes *struct {
			} `json:"extension_attributes,omitempty"`
		} `json:"company_order_attributes,omitempty"`
		AppliedTaxes []struct {
			Code                string  `json:"code,omitempty"`
			Title               string  `json:"title,omitempty"`
			Percent             float64 `json:"percent,omitempty"`
			Amount              float64 `json:"amount,omitempty"`
			BaseAmount          float64 `json:"base_amount,omitempty"`
			ExtensionAttributes *struct {
				Rates []struct {
					Code                string  `json:"code,omitempty"`
					Title               string  `json:"title,omitempty"`
					Percent             float64 `json:"percent,omitempty"`
					ExtensionAttributes *struct {
					} `json:"extension_attributes,omitempty"`
				} `json:"rates,omitempty"`
			} `json:"extension_attributes,omitempty"`
		} `json:"applied_taxes,omitempty"`
		ItemAppliedTaxes []struct {
			Type             string  `json:"type,omitempty"`
			ItemID           float64 `json:"item_id,omitempty"`
			AssociatedItemID float64 `json:"associated_item_id,omitempty"`
			AppliedTaxes     []struct {
				Code                string  `json:"code,omitempty"`
				Title               string  `json:"title,omitempty"`
				Percent             float64 `json:"percent,omitempty"`
				Amount              float64 `json:"amount,omitempty"`
				BaseAmount          float64 `json:"base_amount,omitempty"`
				ExtensionAttributes *struct {
					Rates []struct {
						Code                string  `json:"code,omitempty"`
						Title               string  `json:"title,omitempty"`
						Percent             float64 `json:"percent,omitempty"`
						ExtensionAttributes *struct {
						} `json:"extension_attributes,omitempty"`
					} `json:"rates,omitempty"`
				} `json:"extension_attributes,omitempty"`
			} `json:"applied_taxes,omitempty"`
			ExtensionAttributes *struct {
			} `json:"extension_attributes,omitempty"`
		} `json:"item_applied_taxes,omitempty"`
		ConvertingFromQuote              bool    `json:"converting_from_quote,omitempty"`
		BaseCustomerBalanceAmount        float64 `json:"base_customer_balance_amount,omitempty"`
		CustomerBalanceAmount            float64 `json:"customer_balance_amount,omitempty"`
		BaseCustomerBalanceInvoiced      float64 `json:"base_customer_balance_invoiced,omitempty"`
		CustomerBalanceInvoiced          float64 `json:"customer_balance_invoiced,omitempty"`
		BaseCustomerBalanceRefunded      float64 `json:"base_customer_balance_refunded,omitempty"`
		CustomerBalanceRefunded          float64 `json:"customer_balance_refunded,omitempty"`
		BaseCustomerBalanceTotalRefunded float64 `json:"base_customer_balance_total_refunded,omitempty"`
		CustomerBalanceTotalRefunded     float64 `json:"customer_balance_total_refunded,omitempty"`
		GiftCards                        []struct {
			ID         float64 `json:"id,omitempty"`
			Code       string  `json:"code,omitempty"`
			Amount     float64 `json:"amount,omitempty"`
			BaseAmount float64 `json:"base_amount,omitempty"`
		} `json:"gift_cards,omitempty"`
		BaseGiftCardsAmount   float64 `json:"base_gift_cards_amount,omitempty"`
		GiftCardsAmount       float64 `json:"gift_cards_amount,omitempty"`
		BaseGiftCardsInvoiced float64 `json:"base_gift_cards_invoiced,omitempty"`
		GiftCardsInvoiced     float64 `json:"gift_cards_invoiced,omitempty"`
		BaseGiftCardsRefunded float64 `json:"base_gift_cards_refunded,omitempty"`
		GiftCardsRefunded     float64 `json:"gift_cards_refunded,omitempty"`
		GiftMessage           *struct {
			GiftMessageID       float64 `json:"gift_message_id,omitempty"`
			CustomerID          float64 `json:"customer_id,omitempty"`
			Sender              string  `json:"sender,omitempty"`
			Recipient           string  `json:"recipient,omitempty"`
			Message             string  `json:"message,omitempty"`
			ExtensionAttributes *struct {
				EntityID                   string  `json:"entity_id,omitempty"`
				EntityType                 string  `json:"entity_type,omitempty"`
				WrappingID                 float64 `json:"wrapping_id,omitempty"`
				WrappingAllowGiftReceipt   bool    `json:"wrapping_allow_gift_receipt,omitempty"`
				WrappingAddPrfloat64edCard bool    `json:"wrapping_add_prfloat64ed_card,omitempty"`
			} `json:"extension_attributes,omitempty"`
		} `json:"gift_message,omitempty"`
		GwID                     string  `json:"gw_id,omitempty"`
		GwAllowGiftReceipt       string  `json:"gw_allow_gift_receipt,omitempty"`
		GwAddCard                string  `json:"gw_add_card,omitempty"`
		GwBasePrice              string  `json:"gw_base_price,omitempty"`
		GwPrice                  string  `json:"gw_price,omitempty"`
		GwItemsBasePrice         string  `json:"gw_items_base_price,omitempty"`
		GwItemsPrice             string  `json:"gw_items_price,omitempty"`
		GwCardBasePrice          string  `json:"gw_card_base_price,omitempty"`
		GwCardPrice              string  `json:"gw_card_price,omitempty"`
		GwBaseTaxAmount          string  `json:"gw_base_tax_amount,omitempty"`
		GwTaxAmount              string  `json:"gw_tax_amount,omitempty"`
		GwItemsBaseTaxAmount     string  `json:"gw_items_base_tax_amount,omitempty"`
		GwItemsTaxAmount         string  `json:"gw_items_tax_amount,omitempty"`
		GwCardBaseTaxAmount      string  `json:"gw_card_base_tax_amount,omitempty"`
		GwCardTaxAmount          string  `json:"gw_card_tax_amount,omitempty"`
		GwBasePriceInclTax       string  `json:"gw_base_price_incl_tax,omitempty"`
		GwPriceInclTax           string  `json:"gw_price_incl_tax,omitempty"`
		GwItemsBasePriceInclTax  string  `json:"gw_items_base_price_incl_tax,omitempty"`
		GwItemsPriceInclTax      string  `json:"gw_items_price_incl_tax,omitempty"`
		GwCardBasePriceInclTax   string  `json:"gw_card_base_price_incl_tax,omitempty"`
		GwCardPriceInclTax       string  `json:"gw_card_price_incl_tax,omitempty"`
		GwBasePriceInvoiced      string  `json:"gw_base_price_invoiced,omitempty"`
		GwPriceInvoiced          string  `json:"gw_price_invoiced,omitempty"`
		GwItemsBasePriceInvoiced string  `json:"gw_items_base_price_invoiced,omitempty"`
		GwItemsPriceInvoiced     string  `json:"gw_items_price_invoiced,omitempty"`
		GwCardBasePriceInvoiced  string  `json:"gw_card_base_price_invoiced,omitempty"`
		GwCardPriceInvoiced      string  `json:"gw_card_price_invoiced,omitempty"`
		GwBaseTaxAmountInvoiced  string  `json:"gw_base_tax_amount_invoiced,omitempty"`
		GwTaxAmountInvoiced      string  `json:"gw_tax_amount_invoiced,omitempty"`
		GwItemsBaseTaxInvoiced   string  `json:"gw_items_base_tax_invoiced,omitempty"`
		GwItemsTaxInvoiced       string  `json:"gw_items_tax_invoiced,omitempty"`
		GwCardBaseTaxInvoiced    string  `json:"gw_card_base_tax_invoiced,omitempty"`
		GwCardTaxInvoiced        string  `json:"gw_card_tax_invoiced,omitempty"`
		GwBasePriceRefunded      string  `json:"gw_base_price_refunded,omitempty"`
		GwPriceRefunded          string  `json:"gw_price_refunded,omitempty"`
		GwItemsBasePriceRefunded string  `json:"gw_items_base_price_refunded,omitempty"`
		GwItemsPriceRefunded     string  `json:"gw_items_price_refunded,omitempty"`
		GwCardBasePriceRefunded  string  `json:"gw_card_base_price_refunded,omitempty"`
		GwCardPriceRefunded      string  `json:"gw_card_price_refunded,omitempty"`
		GwBaseTaxAmountRefunded  string  `json:"gw_base_tax_amount_refunded,omitempty"`
		GwTaxAmountRefunded      string  `json:"gw_tax_amount_refunded,omitempty"`
		GwItemsBaseTaxRefunded   string  `json:"gw_items_base_tax_refunded,omitempty"`
		GwItemsTaxRefunded       string  `json:"gw_items_tax_refunded,omitempty"`
		GwCardBaseTaxRefunded    string  `json:"gw_card_base_tax_refunded,omitempty"`
		GwCardTaxRefunded        string  `json:"gw_card_tax_refunded,omitempty"`
		RewardPofloat64sBalance  float64 `json:"reward_pofloat64s_balance,omitempty"`
		RewardCurrencyAmount     float64 `json:"reward_currency_amount,omitempty"`
		BaseRewardCurrencyAmount float64 `json:"base_reward_currency_amount,omitempty"`
		AmazonOrderReferenceID   *struct {
			AmazonOrderReferenceID string  `json:"amazon_order_reference_id,omitempty"`
			OrderID                float64 `json:"order_id,omitempty"`
		} `json:"amazon_order_reference_id,omitempty"`
	} `json:"extension_attributes,omitempty"`
}

type OrdersProductOption

type OrdersProductOption struct {
	ExtensionAttributes *struct {
		CustomOptions []struct {
			OptionID            string `json:"option_id,omitempty"`
			OptionValue         string `json:"option_value,omitempty"`
			ExtensionAttributes *struct {
				FileInfo *struct {
					Base64EncodedData string `json:"base64_encoded_data,omitempty"`
					Type              string `json:"type,omitempty"`
					Name              string `json:"name,omitempty"`
				} `json:"file_info,omitempty"`
			} `json:"extension_attributes,omitempty"`
		} `json:"custom_options,omitempty"`
		BundleOptions []struct {
			OptionID            float64   `json:"option_id,omitempty"`
			OptionQty           float64   `json:"option_qty,omitempty"`
			OptionSelections    []float64 `json:"option_selections,omitempty"`
			ExtensionAttributes *struct {
			} `json:"extension_attributes,omitempty"`
		} `json:"bundle_options,omitempty"`
		ConfigurableItemOptions []struct {
			OptionID            string  `json:"option_id,omitempty"`
			OptionValue         float64 `json:"option_value,omitempty"`
			ExtensionAttributes *struct {
			} `json:"extension_attributes,omitempty"`
		} `json:"configurable_item_options,omitempty"`
		DownloadableOption *struct {
			DownloadableLinks []float64 `json:"downloadable_links,omitempty"`
		} `json:"downloadable_option,omitempty"`
		GiftcardItemOption *struct {
			GiftcardAmount         string  `json:"giftcard_amount,omitempty"`
			CustomGiftcardAmount   float64 `json:"custom_giftcard_amount,omitempty"`
			GiftcardSenderName     string  `json:"giftcard_sender_name,omitempty"`
			GiftcardRecipientName  string  `json:"giftcard_recipient_name,omitempty"`
			GiftcardSenderEmail    string  `json:"giftcard_sender_email,omitempty"`
			GiftcardRecipientEmail string  `json:"giftcard_recipient_email,omitempty"`
			GiftcardMessage        string  `json:"giftcard_message,omitempty"`
			ExtensionAttributes    *struct {
			} `json:"extension_attributes,omitempty"`
		} `json:"giftcard_item_option,omitempty"`
	} `json:"extension_attributes,omitempty"`
}

type PaymentMethod

type PaymentMethod struct {
	Code  string `json:"code"`
	Title string `json:"title"`
}

type PaymentMethodCode

type PaymentMethodCode struct {
	Method string `json:"method"`
}

type Product

type Product struct {
	ID                  int                      `json:"id,omitempty"`
	Sku                 string                   `json:"sku"`
	Name                string                   `json:"name"`
	AttributeSetID      int                      `json:"attribute_set_id"`
	Price               float64                  `json:"price"`
	Status              int                      `json:"status,omitempty"`
	Visibility          int                      `json:"visibility,omitempty"`
	TypeID              string                   `json:"type_id,omitempty"`
	CreatedAt           string                   `json:"created_at,omitempty"`
	UpdatedAt           string                   `json:"updated_at,omitempty"`
	Weight              float64                  `json:"weight,omitempty"`
	ExtensionAttributes map[string]interface{}   `json:"extension_attributes,omitempty"`
	ProductLinks        []ProductLinks           `json:"product_links,omitempty"`
	Options             []Options                `json:"options,omitempty"`
	MediaGalleryEntries []MediaGalleryEntries    `json:"media_gallery_entries,omitempty"`
	TierPrices          []TierPrices             `json:"tier_prices,omitempty"`
	CustomAttributes    []map[string]interface{} `json:"custom_attributes,omitempty"`
}
type ProductLink struct {
	Sku                 string                 `json:"sku"`
	Position            int                    `json:"position"`
	CategoryID          string                 `json:"category_id"`
	ExtensionAttributes map[string]interface{} `json:"extension_attributes,omitempty"`
}
type ProductLinks struct {
	Sku                 string                 `json:"sku"`
	LinkType            string                 `json:"link_type"`
	LinkedProductSku    string                 `json:"linked_product_sku"`
	LinkedProductType   string                 `json:"linked_product_type"`
	Position            int                    `json:"position"`
	ExtensionAttributes map[string]interface{} `json:"extension_attributes"`
}

type Region

type Region struct {
	RegionCode          string                 `json:"region_code,omitempty"`
	Region              string                 `json:"region,omitempty"`
	RegionID            int                    `json:"region_id,omitempty"`
	ExtensionAttributes map[string]interface{} `json:"extension_attributes,omitempty"`
}

type SearchQueryCriteria

type SearchQueryCriteria struct {
	Fields []FilterFields
}

type Shipping

type Shipping struct {
	Address             Address                `json:"address,omitempty"`
	Method              string                 `json:"method,omitempty"`
	ExtensionAttributes map[string]interface{} `json:"extension_attributes,omitempty"`
}

type ShippingAddress

type ShippingAddress struct {
	Address
	AddressType       string  `json:"address_type,omitempty"`
	EntityID          int     `json:"entity_id,omitempty"`
	ParentID          float64 `json:"parent_id,omitempty"`
	Region            string  `json:"region,omitempty"`
	VatIsValid        float64 `json:"vat_is_valid,omitempty"`
	VatRequestDate    string  `json:"vat_request_date,omitempty"`
	VatRequestID      string  `json:"vat_request_id,omitempty"`
	VatRequestSuccess float64 `json:"vat_request_success,omitempty"`
}

type ShippingAssignments

type ShippingAssignments struct {
	Shipping            Shipping               `json:"shipping,omitempty"`
	Items               []Item                 `json:"items,omitempty"`
	ExtensionAttributes map[string]interface{} `json:"extension_attributes,omitempty"`
}

type StatusHistory

type StatusHistory struct {
	Comment             string  `json:"comment,omitempty"`
	CreatedAt           string  `json:"created_at,omitempty"`
	EntityID            int     `json:"entity_id,omitempty"`
	EntityName          string  `json:"entity_name,omitempty"`
	IsCustomerNotified  float64 `json:"is_customer_notified,omitempty"`
	IsVisibleOnFront    float64 `json:"is_visible_on_front,omitempty"`
	ParentID            float64 `json:"parent_id,omitempty"`
	Status              string  `json:"status,omitempty"`
	ExtensionAttributes *struct {
	} `json:"extension_attributes,omitempty"`
}

type StockItem

type StockItem struct {
	ItemID                         int                    `json:"item_id,omitempty"`
	ProductID                      int                    `json:"product_id,omitempty"`
	StockID                        int                    `json:"stock_id,omitempty"`
	Qty                            int                    `json:"qty,omitempty"`
	IsInStock                      bool                   `json:"is_in_stock,omitempty"`
	IsQtyDecimal                   bool                   `json:"is_qty_decimal,omitempty"`
	ShowDefaultNotificationMessage bool                   `json:"show_default_notification_message,omitempty"`
	UseConfigMinQty                bool                   `json:"use_config_min_qty,omitempty"`
	MinQty                         int                    `json:"min_qty,omitempty"`
	UseConfigMinSaleQty            int                    `json:"use_config_min_sale_qty,omitempty"`
	MinSaleQty                     int                    `json:"min_sale_qty,omitempty"`
	UseConfigMaxSaleQty            bool                   `json:"use_config_max_sale_qty,omitempty"`
	MaxSaleQty                     int                    `json:"max_sale_qty,omitempty"`
	UseConfigBackorders            bool                   `json:"use_config_backorders,omitempty"`
	Backorders                     int                    `json:"backorders,omitempty"`
	UseConfigNotifyStockQty        bool                   `json:"use_config_notify_stock_qty,omitempty"`
	NotifyStockQty                 int                    `json:"notify_stock_qty,omitempty"`
	UseConfigQtyIncrements         bool                   `json:"use_config_qty_increments,omitempty"`
	QtyIncrements                  int                    `json:"qty_increments,omitempty"`
	UseConfigEnableQtyInc          bool                   `json:"use_config_enable_qty_inc,omitempty"`
	EnableQtyIncrements            bool                   `json:"enable_qty_increments,omitempty"`
	UseConfigManageStock           bool                   `json:"use_config_manage_stock,omitempty"`
	ManageStock                    bool                   `json:"manage_stock,omitempty"`
	LowStockDate                   string                 `json:"low_stock_date,omitempty"`
	IsDecimalDivided               bool                   `json:"is_decimal_divided,omitempty"`
	StockStatusChangedAuto         int                    `json:"stock_status_changed_auto,omitempty"`
	ExtensionAttributes            map[string]interface{} `json:"extension_attributes,omitempty"`
}

type StoreConfig

type StoreConfig struct {
	Scheme    string
	HostName  string
	StoreCode string
}

type StoreLabels

type StoreLabels struct {
	StoreID int    `json:"store_id"`
	Label   string `json:"label"`
}

type TierPrices

type TierPrices struct {
	CustomerGroupID     int                    `json:"customer_group_id"`
	Qty                 float64                `json:"qty"`
	Value               float64                `json:"value"`
	ExtensionAttributes map[string]interface{} `json:"extension_attributes"`
}

type ValidationRules

type ValidationRules struct {
	Key   string `json:"key"`
	Value string `json:"value"`
}

type Value

type Value struct {
	ValueIndex          int         `json:"value_index,omitempty"`
	ExtensionAttributes interface{} `json:"extension_attributes,omitempty"`
}

type Values

type Values struct {
	Title        string  `json:"title"`
	SortOrder    int     `json:"sort_order"`
	Price        float64 `json:"price"`
	PriceType    string  `json:"price_type"`
	Sku          string  `json:"sku"`
	OptionTypeID int     `json:"option_type_id"`
}

type VideoContent

type VideoContent struct {
	MediaType        string `json:"media_type"`
	VideoProvider    string `json:"video_provider"`
	VideoURL         string `json:"video_url"`
	VideoTitle       string `json:"video_title"`
	VideoDescription string `json:"video_description"`
	VideoMetadata    string `json:"video_metadata"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL