dropshop / src /adapters /source2_adapter.py
github-actions[bot]
Automated deployment from GitHub Actions: a9d5a91de63ad7224bafe6039fb2b7479388fbf4
0a8c81b
Raw History Blame Contribute Delete
1.46 kB
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
}