File size: 1,459 Bytes
0a8c81b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import logging
logger = logging.getLogger(__name__)

import time
import random

class Source2Adapter:
    """
    Adapter for interacting with Backup Source 2 (e.g. Pinduoduo/1688 Alternate).
    """
    def __init__(self):
        self.is_mock = True
        
    def map_shopify_sku(self, shopify_sku: str, shopify_title: str = "") -> dict:
        if self.is_mock:
            logger.info(f"🔄 [SOURCE 2] (MOCK) Semantically mapping '{shopify_sku}'...")
            time.sleep(1.0)
            return {
                "supplier_id": f"sup_s2_{random.randint(1000, 9999)}",
                "variant_id": f"var_s2_{random.randint(10000, 99999)}",
                "confidence": random.uniform(85.0, 95.0),
                "mapped_attributes": ["通用版", "标准款"]
            }

    def create_draft_order(self, variant_id: str, quantity: int, address: dict) -> dict:
        if self.is_mock:
            logger.info(f"🛒 [SOURCE 2] (MOCK) Preparing draft order for Variant {variant_id}")
            time.sleep(1.5)
            mock_order_id = f"S2-{random.randint(100000, 999999)}"
            logger.info(f"✅ [SOURCE 2] Successfully drafted Order #{mock_order_id}. Status: AWAITING_PAYMENT")
            return {
                "status": "AWAITING_PAYMENT",
                "order_id": mock_order_id,
                "variant_id": variant_id,
                "quantity": quantity,
                "estimated_shipping_cny": 0.00
            }