ordercollect/internal/billbee/orders.go

105 lines
2.2 KiB
Go
Raw Permalink Normal View History

2023-07-08 03:56:44 +00:00
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
}