order

package
v0.6.0 Latest Latest
Warning

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

Go to latest
Published: Apr 6, 2021 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Address

type Address struct {
	FirstName   string      `json:"first_name,omitempty"`
	LastName    string      `json:"last_name,omitempty"`
	Company     string      `json:"company,omitempty"`
	Street1     string      `json:"street_1,omitempty"`
	Street2     string      `json:"street_2,omitempty"`
	City        string      `json:"city,omitempty"`
	State       string      `json:"state,omitempty"`
	Zip         string      `json:"zip,omitempty"`
	Country     string      `json:"country,omitempty"`
	CountryIso2 string      `json:"country_iso2,omitempty"`
	Phone       string      `json:"phone,omitempty"`
	Email       string      `json:"email,omitempty"`
	FormFields  []FormField `json:"form_fields,omitempty"`
}

Address is a struct that represents a BigCommerce address resource

type AppliedDiscount

type AppliedDiscount struct {
	ID     string      `json:"id,omitempty"`
	Amount float64     `json:"amount,string,omitempty"`
	Name   string      `json:"name,omitempty"`
	Code   interface{} `json:"code"`
	Target string      `json:"target,omitempty"`
}

AppliedDiscount is a struct that represents the applied discounts included in the order product resource

type Client

type Client struct {
	connect.BCClient
}

Client is a wrapper struct that embeds the BCClient from the client package. It handles connection to the BigCommerce API

func NewClient

func NewClient(authToken, authClient, storeKey string) *Client

NewClient will create a new order client wrapper based on BC connection details

func (*Client) GetAvailableStatuses added in v0.4.0

func (s *Client) GetAvailableStatuses() (statuses Statuses, err error)

GetAvailableStatuses will return a sorted slice of order statuses from the BC API

func (*Client) GetCouponsForOrders added in v0.3.0

func (s *Client) GetCouponsForOrders(os []Order) (err error)

GetCouponsForOrders - Will attempt to concurrently fill the order slice elements with their respective coupon objects from the BC api

func (*Client) GetHydratedOrderByID added in v0.3.4

func (s *Client) GetHydratedOrderByID(orderID string) (order Order, err error)

GetHydratedOrderByID - return a single order with Products, Shipping Addresses, and Coupons Populated.

func (*Client) GetHydratedOrders added in v0.3.0

func (s *Client) GetHydratedOrders(oq Query) (*[]Order, error)

GetHydratedOrders Return a slice of Order structs based on passed in query object

func (*Client) GetOrderCount

func (s *Client) GetOrderCount() (*OrderCount, error)

GetOrderCount will return an OrderCount struct containing statuses and counts

func (*Client) GetOrderFromRawQuery added in v0.6.0

func (s *Client) GetOrderFromRawQuery(rawQuery string) (*[]Order, error)

GetOrderQuery will return an ordered by ID slice of Order structs based on passed in query object

func (*Client) GetOrderQuery

func (s *Client) GetOrderQuery(oq Query) (*[]Order, error)

GetOrderQuery will return an ordered by ID slice of Order structs based on passed in query object

func (*Client) GetOrders

func (s *Client) GetOrders(status int) (*[]Order, error)

GetOrders will return a slice of Order structs based on passed in status

func (*Client) GetOrdersAndProducts

func (s *Client) GetOrdersAndProducts(status int) (*[]Order, error)

GetOrdersAndProducts will return a slice of Order structs with their products based on passed in status

func (*Client) GetProductDetail

func (s *Client) GetProductDetail(os []Order) (err error)

GetProductDetail - Will attempt to concurrently fill the order slice elements with their respective products from the BC api

func (*Client) GetShipment added in v0.5.0

func (s *Client) GetShipment(orderID int) (*[]Shipment, error)

GetShipment will return a slice of Shipment structs containing the shipment information

func (*Client) GetShipments

func (s *Client) GetShipments(oq Query) ([]Shipment, error)

GetShipments will get shipments from the orders returned by the query

func (*Client) GetShipmentsForOrders added in v0.5.0

func (s *Client) GetShipmentsForOrders(os []Order) (err error)

GetShipmentsForOrders - Will attempt to concurrently fill the order slice elements with their respective shipment objects from the BC api

func (*Client) GetShippingAddressesForOrders added in v0.2.0

func (s *Client) GetShippingAddressesForOrders(os []Order) (err error)

GetShippingAddressesForOrders - Will attempt to concurrently fill the order slice elements with their respective shipping addresses from the BC api

type Coupon added in v0.3.0

type Coupon struct {
	Amount   string  `json:"amount,omitempty"`
	Code     string  `json:"code,omitempty"`
	CouponID int64   `json:"coupon_id,omitempty"`
	Discount float64 `json:"discount,string"`
	ID       int64   `json:"id,omitempty"`
	OrderID  int64   `json:"order_id,omitempty"`
	Type     int64   `json:"type,omitempty"`
}

Coupon is a struct that represents the coupon detail objects that are part of the order

func (*Coupon) CouponType added in v0.3.0

func (c *Coupon) CouponType() string

CouponType will get you the text representation of the coupon type

type FormField

type FormField struct {
	Name  string `json:"name,omitempty"`
	Value string `json:"value,omitempty"`
}

FormField struct that represents a BigCommerce address form name/value pair

type Order

type Order struct {
	ID                                      int64              `json:"id,omitempty"`
	CustomerID                              int64              `json:"customer_id,omitempty"`
	DateCreated                             primative.BCDate   `json:"date_created,omitempty"`
	DateModified                            primative.BCDate   `json:"date_modified,omitempty"`
	DateShipped                             primative.BCDate   `json:"date_shipped,omitempty"`
	StatusID                                int64              `json:"status_id,omitempty"`
	Status                                  string             `json:"status,omitempty"`
	SubtotalExTax                           float64            `json:"subtotal_ex_tax,string"`
	SubtotalIncTax                          float64            `json:"subtotal_inc_tax,string"`
	SubtotalTax                             float64            `json:"subtotal_tax,string"`
	BaseShippingCost                        float64            `json:"base_shipping_cost,string"`
	ShippingCostExTax                       float64            `json:"shipping_cost_ex_tax,string"`
	ShippingCostIncTax                      float64            `json:"shipping_cost_inc_tax,string"`
	ShippingCostTax                         float64            `json:"shipping_cost_tax,string"`
	ShippingCostTaxClassID                  int64              `json:"shipping_cost_tax_class_id,omitempty"`
	BaseHandlingCost                        float64            `json:"base_handling_cost,string"`
	HandlingCostExTax                       float64            `json:"handling_cost_ex_tax,string"`
	HandlingCostIncTax                      float64            `json:"handling_cost_inc_tax,string"`
	HandlingCostTax                         float64            `json:"handling_cost_tax,string"`
	HandlingCostTaxClassID                  int64              `json:"handling_cost_tax_class_id,omitempty"`
	BaseWrappingCost                        float64            `json:"base_wrapping_cost,string"`
	WrappingCostExTax                       float64            `json:"wrapping_cost_ex_tax,string"`
	WrappingCostIncTax                      float64            `json:"wrapping_cost_inc_tax,string"`
	WrappingCostTax                         float64            `json:"wrapping_cost_tax,string"`
	WrappingCostTaxClassID                  int64              `json:"wrapping_cost_tax_class_id,omitempty"`
	TotalExTax                              float64            `json:"total_ex_tax,string"`
	TotalIncTax                             float64            `json:"total_inc_tax,string"`
	TotalTax                                float64            `json:"total_tax,string"`
	ItemsTotal                              int64              `json:"items_total,omitempty"`
	ItemsShipped                            int64              `json:"items_shipped,omitempty"`
	PaymentMethod                           string             `json:"payment_method,omitempty"`
	PaymentProviderID                       string             `json:"payment_provider_id,omitempty"`
	PaymentStatus                           string             `json:"payment_status,omitempty"`
	RefundedAmount                          float64            `json:"refunded_amount,string"`
	OrderIsDigital                          bool               `json:"order_is_digital,omitempty"`
	StoreCreditAmount                       float64            `json:"store_credit_amount,string"`
	GiftCertificateAmount                   float64            `json:"gift_certificate_amount,string"`
	IPAddress                               string             `json:"ip_address,omitempty"`
	GeoipCountry                            string             `json:"geoip_country,omitempty"`
	GeoipCountryIso2                        string             `json:"geoip_country_iso2,omitempty"`
	CurrencyID                              int64              `json:"currency_id,omitempty"`
	CurrencyCode                            string             `json:"currency_code,omitempty"`
	CurrencyExchangeRate                    string             `json:"currency_exchange_rate,omitempty"`
	DefaultCurrencyID                       int64              `json:"default_currency_id,omitempty"`
	DefaultCurrencyCode                     string             `json:"default_currency_code,omitempty"`
	StaffNotes                              string             `json:"staff_notes,omitempty"`
	CustomerMessage                         string             `json:"customer_message,omitempty"`
	DiscountAmount                          float64            `json:"discount_amount,string"`
	CouponDiscount                          float64            `json:"coupon_discount,string"`
	ShippingAddressCount                    int64              `json:"shipping_address_count,omitempty"`
	IsDeleted                               bool               `json:"is_deleted,omitempty"`
	EbayOrderID                             string             `json:"ebay_order_id,omitempty"`
	CartID                                  string             `json:"cart_id,omitempty"`
	BillingAddress                          Address            `json:"billing_address,omitempty"`
	IsEmailOptIn                            bool               `json:"is_email_opt_in,omitempty"`
	CreditCardType                          interface{}        `json:"credit_card_type"`
	OrderSource                             string             `json:"order_source,omitempty"`
	ChannelID                               int64              `json:"channel_id,omitempty"`
	ExternalSource                          interface{}        `json:"external_source"`
	ProductResource                         primative.Resource `json:"products,omitempty"`
	Products                                []OrderProduct
	ShippingResource                        primative.Resource `json:"shipping_addresses,omitempty"`
	ShippingAddresses                       []ShippingAddress
	CouponResource                          primative.Resource `json:"coupons,omitempty"`
	Coupons                                 []Coupon
	Shipments                               []Shipment
	ExternalID                              interface{} `json:"external_id"`
	ExternalMerchantID                      interface{} `json:"external_merchant_id"`
	TaxProviderID                           string      `json:"tax_provider_id,omitempty"`
	StoreDefaultCurrencyCode                string      `json:"store_default_currency_code,omitempty"`
	StoreDefaultToTransactionalExchangeRate string      `json:"store_default_to_transactional_exchange_rate,omitempty"`
	CustomStatus                            string      `json:"custom_status,omitempty"`
}

Order is a struct that represents the return body of BigCommerce GET /orders

type OrderCount

type OrderCount struct {
	StatusCounts []StatusCount `json:"statuses"`
	Count        int           `json:"count"`
}

OrderCount is a struct that represents the return body of BigCommerce GET /orders/count

StatusCounts should be sorted based on the sort order in bigcommerce status

type OrderProduct

type OrderProduct struct {
	ID                   int64             `json:"id,omitempty"`
	OrderID              int64             `json:"order_id,omitempty"`
	ProductID            int64             `json:"product_id,omitempty"`
	OrderAddressID       int64             `json:"order_address_id,omitempty"`
	Name                 string            `json:"name,omitempty"`
	Sku                  string            `json:"sku,omitempty"`
	Upc                  string            `json:"upc,omitempty"`
	Type                 string            `json:"type,omitempty"`
	BasePrice            float64           `json:"base_price,string"`
	PriceExTax           float64           `json:"price_ex_tax,string"`
	PriceIncTax          float64           `json:"price_inc_tax,string"`
	PriceTax             float64           `json:"price_tax,string"`
	BaseTotal            float64           `json:"base_total,string"`
	TotalExTax           float64           `json:"total_ex_tax,string"`
	TotalIncTax          float64           `json:"total_inc_tax,string"`
	TotalTax             float64           `json:"total_tax,string"`
	Weight               float64           `json:"weight,string"`
	Quantity             int64             `json:"quantity,omitempty"`
	BaseCostPrice        float64           `json:"base_cost_price,string"`
	CostPriceIncTax      float64           `json:"cost_price_inc_tax,string"`
	CostPriceExTax       float64           `json:"cost_price_ex_tax,string"`
	CostPriceTax         float64           `json:"cost_price_tax,string"`
	IsRefunded           bool              `json:"is_refunded,omitempty"`
	QuantityRefunded     int64             `json:"quantity_refunded,omitempty"`
	RefundAmount         float64           `json:"refund_amount,string"`
	ReturnID             int64             `json:"return_id,omitempty"`
	WrappingName         string            `json:"wrapping_name,omitempty"`
	BaseWrappingCost     float64           `json:"base_wrapping_cost,string"`
	WrappingCostExTax    float64           `json:"wrapping_cost_ex_tax,string"`
	WrappingCostIncTax   float64           `json:"wrapping_cost_inc_tax,string"`
	WrappingCostTax      float64           `json:"wrapping_cost_tax,string"`
	WrappingMessage      string            `json:"wrapping_message,omitempty"`
	QuantityShipped      int64             `json:"quantity_shipped,omitempty"`
	FixedShippingCost    float64           `json:"fixed_shipping_cost,string"`
	EbayItemID           string            `json:"ebay_item_id,omitempty"`
	EbayTransactionID    string            `json:"ebay_transaction_id,omitempty"`
	OptionSetID          int64             `json:"option_set_id,omitempty"`
	ParentOrderProductID interface{}       `json:"parent_order_product_id,omitempty"`
	IsBundledProduct     bool              `json:"is_bundled_product,omitempty"`
	BinPickingNumber     string            `json:"bin_picking_number,omitempty"`
	ExternalID           interface{}       `json:"external_id,omitempty"`
	FulfillmentSource    string            `json:"fulfillment_source,omitempty"`
	AppliedDiscounts     []AppliedDiscount `json:"applied_discounts,omitempty"`
	ProductOptions       []ProductOption   `json:"product_options,omitempty"`
	ConfigurableFields   []interface{}     `json:"configurable_fields,omitempty"`
}

OrderProduct is a struct that represents the product sub object that is part of the Order

type ProductOption

type ProductOption struct {
	ID              int64  `json:"id,omitempty"`
	OptionID        int64  `json:"option_id,omitempty"`
	OrderProductID  int64  `json:"order_product_id,omitempty"`
	ProductOptionID int64  `json:"product_option_id,omitempty"`
	DisplayName     string `json:"display_name,omitempty"`
	DisplayValue    string `json:"display_value,omitempty"`
	Value           string `json:"value,omitempty"`
	Type            string `json:"type,omitempty"`
	Name            string `json:"name,omitempty"`
	DisplayStyle    string `json:"display_style,omitempty"`
}

ProductOption is a struct that represents the product option detail objects that are part of the order product

type Query added in v0.3.0

type Query struct {
	MinID              int       `url:"min_id,omitempty"`
	MaxID              int       `url:"max_id,omitempty"`
	MinTotal           float64   `url:"min_total,omitempty"`
	MaxTotal           float64   `url:"max_total,omitempty"`
	CustomerID         int       `url:"customer_id,omitempty"`
	Email              string    `url:"email,omitempty"`
	StatusID           int       `url:"status_id,omitempty"`
	StatusIDIsZero     bool      `url:"-"`
	CartID             string    `url:"cart_id,omitempty"`
	PaymentMethod      string    `url:"payment_method,omitempty"`
	MinDateCreated     time.Time `url:"-"`
	MaxDateCreated     time.Time `url:"-"`
	MinDateModified    time.Time `url:"-"`
	MaxDateModified    time.Time `url:"-"`
	Page               int       `url:"page,omitempty"`
	Limit              int       `url:"limit,omitempty"`
	Sort               string    `url:"sort,omitempty"`
	IsDeleted          bool      `url:"is_deleted,omitempty"`
	MinDateCreatedRaw  string    `url:"min_date_created,omitempty"`
	MaxDateCreatedRaw  string    `url:"max_date_created,omitempty"`
	MinDateModifiedRaw string    `url:"min_date_modified,omitempty"`
	MaxDateModifiedRaw string    `url:"max_date_modified,omitempty"`
}

Query struct to handle orders endpoint search query params, if you want orders with a status of 0 ("incomplete" in BC) you should set StatusIDIsZero to true, otherwise it will be ignored as a zero value when building the REST query

func (Query) GetRawQuery added in v0.3.0

func (q Query) GetRawQuery() (raw string, err error)

GetRawQuery gets the struct in query string form

type Shipment

type Shipment struct {
	ID                   int64               `json:"id"`
	OrderID              int64               `json:"order_id"`
	CustomerID           int64               `json:"customer_id"`
	OrderAddressID       int64               `json:"order_address_id"`
	DateCreated          primative.BCDate    `json:"date_created"`
	TrackingNumber       string              `json:"tracking_number"`
	MerchantShippingCost float64             `json:"merchant_shipping_cost,string"`
	ShippingMethod       string              `json:"shipping_method"`
	Comments             string              `json:"comments"`
	ShippingProvider     string              `json:"shipping_provider"`
	TrackingCarrier      string              `json:"tracking_carrier"`
	TrackingLink         string              `json:"tracking_link"`
	BillingAddress       Address             `json:"billing_address"`
	ShippingAddress      Address             `json:"shipping_address"`
	Items                []ShipmentOrderItem `json:"items"`
}

Shipment is a struct that represents BC shipment

type ShipmentOrderItem added in v0.3.0

type ShipmentOrderItem struct {
	OrderProductID int64 `json:"order_product_id"`
	ProductID      int64 `json:"product_id"`
	Quantity       int64 `json:"quantity"`
}

ShipmentOrderItem is a struct that represents BC orderitem

type ShippingAddress

type ShippingAddress struct {
	Address
	ShippingMethod string `json:"shipping_method"`
}

ShippingAddress is a struct that represents a BigCommerce shipping address resource

type StatusCount

type StatusCount struct {
	StatusElement
	SortOrder int `json:"sort_order"`
	Count     int `json:"count"`
}

StatusCount is a struct that represents the individual statuses and count returned by BigCommerce GET /orders/count

type StatusElement added in v0.3.4

type StatusElement struct {
	CustomLabel       string `json:"custom_label,omitempty"`
	ID                int64  `json:"id,omitempty"`
	Name              string `json:"name,omitempty"`
	Order             int64  `json:"order,omitempty"`
	SystemDescription string `json:"system_description,omitempty"`
	SystemLabel       string `json:"system_label,omitempty"`
}

StatusElement is a struct that represents the individual order status from BigCommerce

type Statuses added in v0.4.0

type Statuses []StatusElement

Statuses is a slice of structs that represent the individual order statuses from BigCommerce

Jump to

Keyboard shortcuts

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