import requests import os from models import EpicenterOrder, EpicenterOrderProduct from dotenv import load_dotenv load_dotenv() BASE_URL = "https://openapi.keycrm.app/v1/" CRM_API_KEY = os.getenv("CRM_API_KEY") PAYMENT_METHOD_ID = os.getenv("PAYMENT_METHOD_ID") def create_order( order_number: str, order_creation_date: str, full_name: str, email: str, phone_number: str, city: str, delivery_address: str, delivery_post_number: str, delivery_ref: str, products: list, amount: float, ): create_order_url = BASE_URL + "order/" headers = { "accept": "application/json", "Authorization": f"Bearer {CRM_API_KEY}", } json_data = { "source_id": 1, "source_uuid": order_number, "ordered_at": order_creation_date, "buyer": { "full_name": full_name, "email": email, "phone": phone_number, }, "shipping": { "delivery_service_id": 1, "shipping_service": "Нова Пошта", "shipping_address_city": city, "shipping_address_country": "Ukraine", "shipping_secondary_line": delivery_address, "shipping_receive_point": delivery_post_number, "recipient_full_name": full_name, "recipient_phone": phone_number, "warehouse_ref": delivery_ref, }, "products": products, "payments": [ { "status": "not_paid", "payment_method_id": PAYMENT_METHOD_ID, "amount": amount, }, ], } response = requests.post(create_order_url, headers=headers, json=json_data) print(response.text) def create_from_db(order_number: int): orders_query = EpicenterOrder.select().where( EpicenterOrder.order_number == order_number ) # print(orders_query) for order_info in orders_query: # extract order information order_number = order_info.order_number order_creation_date = order_info.order_creation_date.strftime( "%Y-%m-%d %H:%M:%S" ) full_name = order_info.full_name email = order_info.email phone_number = order_info.phone_number delivery_address = order_info.delivery_address delivery_post_number = order_info.delivery_post_number delivery_ref = order_info.delivery_ref settlement = order_info.settlement amount = float(order_info.amount) # print(amount) # extract products associated with the order products = [] for order_product in EpicenterOrderProduct.select().where( EpicenterOrderProduct.epicenter_order == order_info ): product_info = { "name": order_product.product.name, "sku": order_product.product.sku, "price": float(order_product.product.price), "quantity": order_product.quantity, } products.append(product_info) print(product_info) create_order( order_number=order_number, order_creation_date=order_creation_date, full_name=full_name, email=email, phone_number=phone_number, delivery_post_number=delivery_post_number, delivery_ref=delivery_ref, delivery_address=delivery_address, city=settlement, products=products, amount=amount, ) # create_from_db(32078457)