package billbee import ( "github.com/m3tam3re/billbee/api/orders" "github.com/m3tam3re/ordercollect/internal/models" "github.com/m3tam3re/ordercollect/internal/shopify" "time" ) func Wk24ToBillbee(order models.Wk24order) error { now := time.Now() switch order.Country { case "Österreich": order.Country = "AT" case "Austria": order.Country = "AT" default: order.Country = "DE" } bOrder := orders.Order{ OrderNumber: order.Orderid, CreatedAt: now.String()[:10], State: 3, VatMode: 0, InvoiceAddress: &orders.InvoiceAddress{ Company: "Weltkarten24.Com", Street: "Münchener Str.", HouseNumber: "18", City: "Germering", Zip: "82110", Country: "DE", CountryISO2: "DE", FirstName: "Peter-Holger", LastName: "Grützner", Phone: "", Email: "orders@weltkarten24.com", }, ShippingAddress: &orders.ShippingAddress{ Company: order.Name, Street: order.Street, City: order.City, Zip: order.Zip, Country: order.Country, CountryISO2: order.Country, Phone: "", }, ShippingCost: 0, PaymentMethod: 3, OrderItems: nil, Customer: &orders.Customer{ Id: 73771747, Number: 602, Type: 0, Name: "Weltkarten24.com", Email: "orders@weltkarten24.com", Tel1: "", }, } tempOrderItems := []*orders.OrderItem{} for _, item := range order.Items { price, err := shopify.GetItemPrice(item.Sku) if err != nil { //TODO handle error return err } tempOrderItems = append(tempOrderItems, &orders.OrderItem{ Discount: 20, Product: &orders.Product{ Title: item.Sku, }, Quantity: float32(item.Quantity), TotalPrice: price * float32(item.Quantity), }) if order.Country != "DE" { var total float32 for _, item := range bOrder.OrderItems { total = total + item.TotalPrice } switch { case total < 25.01: bOrder.ShippingCost = 6.90 case total > 25.00 && total < 150.00: bOrder.ShippingCost = 13.90 case total > 150.00: bOrder.ShippingCost = 79.90 default: bOrder.ShippingCost = 0.00 } } } bOrder.OrderItems = tempOrderItems //TODO groroutine err := bOrder.Create("69659") if err != nil { return err } return nil }