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
}
|