feat(so-sync): final round-trip tools and infrastructure fixes
This commit is contained in:
56
so_force_write.py
Normal file
56
so_force_write.py
Normal file
@@ -0,0 +1,56 @@
|
||||
import os
|
||||
import json
|
||||
import sys
|
||||
import requests
|
||||
from dotenv import load_dotenv
|
||||
|
||||
# Path gymnastics
|
||||
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
|
||||
sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)), "connector-superoffice"))
|
||||
|
||||
from superoffice_client import SuperOfficeClient
|
||||
|
||||
# Load ENV
|
||||
load_dotenv(dotenv_path="/home/node/clawd/.env", override=True)
|
||||
|
||||
def force_write(so_id):
|
||||
client = SuperOfficeClient()
|
||||
print(f"--- Force Write-Back: Contact {so_id} ---")
|
||||
|
||||
# Using the mandatory fields you identified and the structured address
|
||||
payload = {
|
||||
"contactId": int(so_id),
|
||||
"Name": "RoboPlanet GmbH-SOD",
|
||||
"Number2": "123", # Mandatory field fix
|
||||
"OrgNr": "DE348572190",
|
||||
"Department": "Force Write 13:35",
|
||||
"Address": {
|
||||
"Postal": {
|
||||
"Address1": "Humboldtstr. 1",
|
||||
"City": "Dornstadt",
|
||||
"Zipcode": "89160"
|
||||
},
|
||||
"Street": {
|
||||
"Address1": "Humboldtstr. 1",
|
||||
"City": "Dornstadt",
|
||||
"Zipcode": "89160"
|
||||
}
|
||||
},
|
||||
"UserDefinedFields": {
|
||||
"SuperOffice:5": "[I:23]" # Vertical: Logistics
|
||||
}
|
||||
}
|
||||
|
||||
url = f"{client.base_url}/Contact/{so_id}"
|
||||
print(f"Sending Force Payload to {url}...")
|
||||
|
||||
resp = requests.put(url, headers=client.headers, json=payload)
|
||||
|
||||
print(f"Status Code: {resp.status_code}")
|
||||
if resp.status_code == 200:
|
||||
print("🚀 SUCCESS! Check Address, VAT and Vertical now.")
|
||||
else:
|
||||
print(f"❌ Error: {resp.text}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
force_write(2)
|
||||
Reference in New Issue
Block a user