FROM CACHE - de_header

Shopify Plus B2B VAT-ID (Customers -> Companies -> "Tax ID") -> Billbee

Shopify Plus B2B VAT-ID (Customers -> Companies -> "Tax ID") -> Billbee

JJL_de
Tourist
8 0 4

Hallo,

 

wir legen für unseren (separaten, reinen) Shopify Plus B2B Shop B2B-Kunden manuell an und erfassen im Rahmen dessen auch die VAT ID (Customers -> Companies -> "Tax ID") . Die Rechnungserstellung läuft über Billlbee. Wie können wir die VAT-ID an Billbee übergeben?

 

Der Billbee Support hat uns folgende Information gegeben:

 

Shopify übergibt diese Info in der Standardvariante nicht an Billbee und ihr benötigt dafür du eine Erweiterung in Shopify. Dafür kannst du beispielsweise ein Shopify Plugin nutzen. Das Plugin "Exemptify" schreibt die VAT ID in das Notizfeld einer Bestellung und setzt den richtigen Status der Steuern. Das ist eine Erweiterung, von der bekannt ist, dass sie mit Billbee kompatibel ist.

Alternativ zu einem Plugin kannst du das auch selbst in Shopify einprogrammieren. Wenn die "note_attributes" Eigenschaft einer Notiz dann "vat-id" oder "vat_id" ist, wird die Notiz als VAT ID übernommen.

 

In welcher Art und Weise ist die Übergabe des Wertes aus Shopify Plus B2B Funktion Customers -> Companies -> "Tax ID" möglich?

Viele Grüße

3 ANTWORTEN 3

Gabe
Shopify Staff
18409 2888 4251

Hey @JJL_de 

 

Frage dazu: verwendet ihr den neuen B2B Kanal und wenn ja, wie findet ihr ihn?

 

Für die Übergabe der VAT-ID von Shopify Plus B2B an Billbee gibt es grundsätzlich zwei Optionen. Du kannst entweder eine Shopify-App wie Exemptify oder B2B Handsfree verwenden, die, soweit ich weiss, mit Billbee kompatibel sind, oder eine Custom Solution bauen, um diese Information selbst zu übermitteln.

 

Mit dem Exemptify- oder B2B Handsfree Plugin kannst du die VAT-ID ins Notizfeld einer Bestellung schreiben und den korrekten Steuerstatus festlegen. Billbee kann diese Informationen dann aus der an Billbee über dem API übermittelten Bestellung lesen und in der Datenbank speichern.

 

Alternativ, wenn du dich entscheidest, die Anpassung selbst vorzunehmen, müsstest du es so programmieren, dass es die VAT-ID im Notizfeld der Bestellung speichert. Hierfür könntest du die Shopify API verwenden, um ein Skript zu schreiben, das die VAT-ID aus dem Customers -> Companies -> "Tax ID" Feld liest und diese Information in das Notizfeld der Bestellung einfügt.

 

Hier ist ein einfaches Beispiel dafür, wie du das machen könntest:

  1. Erstelle einen neuen Shopify Webhook, der bei der Erstellung einer neuen Bestellung ausgelöst wird.
  2. In dem Webhook-Handler liest du die VAT-ID aus dem Kundenprofil ein (Customers -> Companies -> "Tax ID").
  3. Füge diese VAT-ID in das "note_attributes" Feld der Bestellung ein. Du musst sicherstellen, dass der Key der "note_attributes" entweder "vat-id" oder "vat_id" lautet, damit Billbee die VAT-ID korrekt erkennt.

Somit einen Webhook erstellen, der ausgelöst wird, sobald eine neue Bestellung erstellt wird. In der Webhook-Logik könntest du dann die VAT-ID aus den Kundendaten abrufen und sie als Attribut zur Bestellungsnotiz hinzufügen. Hier ist ein allgemeiner Ablauf, wie das im API aussehen könnte:

 

from flask import Flask, request, jsonify
import shopify
import requests

app = Flask(__name__)

# Initialisiere Shopify API
shopify.ShopifyResource.set_site("https://your-shop-name.myshopify.com/admin/api/2023-01")
session = shopify.Session("your-shop-name.myshopify.com", "your-api-version", "your-access-token")

@app.route('/webhook/order_created', methods=['POST'])
def handle_webhook():
    data = request.json
    order_id = data['id']
    customer_id = data['customer']['id']

    # Hole VAT-ID vom Kunden
    customer = shopify.Customer.find(customer_id)
    vat_id = customer.metafields['global']['vat_id'] # Bitte überprüfe den genauen Pfad zur VAT-ID

    # Füge VAT-ID als note_attribute zur Bestellung hinzu
    order = shopify.Order.find(order_id)
    order.note_attributes.append({"name": "vat_id", "value": vat_id})
    order.save()

    return jsonify(success=True)

 

In diesem Beispiel kann man Flask verwenden, um einen Webhook-Endpunkt bereitzustellen und die Shopify Python-Bibliothek, um mit der Shopify-API zu interagieren. Den Code auf einem Server ausführen, der von Shopify aus erreichbar ist, um Webhooks zu empfangen und den Webhook in Shopify einrichten, damit er auf die URL des Servers zeigt. und die von Shopify gesendete HMAC-Signatur überprüfen.

 

Es ist somit ratsam, einen API Entwickler zu beauftragen, um diese Anpassung für dich vorzunehmen. Gerne kann ich welche empfehlen.


Hast du weitere Fragen zum Shop? Gebe einfach ein Suchbegriff oben in der Suchleiste der Community Landingpage ein, denn das Thema haben wir sehr wahrscheinlich schon besprochen. Oder lass wissen, wenn du weitere Fragen dazu hast oder zum Shop und Business und gerne können wir das hier weiter besprechen! Halte bitte Ausschau in deiner E-Mail auf Notifications zu Antworten auf deine Fragen in der Community.

Gabe | Social Care @ Shopify
 - War meine Antwort hilfreich? Klicke Like um es mich wissen zu lassen! 
 - Wurde deine Frage beantwortet? Markiere es als Akzeptierte Lösung 
 - Um mehr zu erfahren, besuche das Shopify Help Center oder den Shopify Blog

JJL_de
Tourist
8 0 4

Hi @Gabe,

vielen Dank für den sehr hilfreichen und verständlichen Beitrag.

 

Ja, wir verwenden (in unserem noch nicht gelaunchten B2B Shop) euren neuen B2B Kanal. Da wir aktuell noch beim Setup sind, kann ich kein finales Feedback geben. Bisher ist aber alles sehr intuitiv und scheint für uns zu funktionieren. Ich komme auf deine Frage zurück!

Ich habe versucht die Lösung mit Exemptify umzusetzen. Wenn ich die VIES VAT-ID Validierung hinzufüge (im konkreten Fall im Cart) wird die VAT-ID sauber an Billbee übergeben. Die Tax ID aus Customers -> Companies -> "Tax ID" wird jedoch offenbar von Exemptify nicht ausgelesen: Deaktiviere ich die Validierung/ Erfassung der VAT-ID im Cart, übergibt Exemptify keine VAT-ID an Billbee.

Nach meinem Verständnis wäre es im Grunde an @Billbee die VAT-ID aus dem Feld "Tax-ID" (Customers -> Companies -> "Tax ID") im B2B Kanal auszulesen, soweit der Wert über die API abrufbar ist. Ist das bei Euch bereits auf der Roadmap, @Billbee?

Mein Ansatz ist jetzt (zumindest übergangsweise), die VAT-ID über die Exemptify VIES Validierung im Cart (zusätzlich) zu erfassen. Ich melde mich nochmals zurück, sobald die Lösung implementiert ist.

Frage dazu: verwendet ihr den neuen B2B Kanal und wenn ja, wie findet ihr ihn?

Gabe
Shopify Staff
18409 2888 4251

Hey @JJL_de 

 

Das freut mich alles zu hören! Du scheinst auch eine gute Kenntnis der Situation und mögliche Lösungsansätze zu haben. Euer derzeitiger Ansatz, die VAT-ID zusätzlich über die Exemptify VIES-Validierung im Warenkorb zu erfassen, ist in der Tat eine gute Übergangslösung, bis die Billbee Entwickler einen Weg finden den Wert aus dem Feld "Tax-ID" (Customers -> Companies -> "Tax ID") aus dem B2B-Kanal auslesen kann.

 

Alternativ könnte man auch einen Shopify Plus-Berater oder einen Shopify-Entwickler hinzuziehen, um eine benutzerdefinierte Lösung zu erstellen. Habt ihr das schon gemacht und seid ihr mit unserem Plus Team in Kontakt? Unser "White Glove" Support steht euch zu als Plus Kunde. 

 

Ein erfahrener Entwickler könnte beispielsweise eine benutzerdefinierte Anwendung oder ein benutzerdefiniertes Skript erstellen, um die VAT-ID aus dem Feld "Tax ID" zu erfassen und diese dann an Billbee zu übermitteln. Diese Lösung wäre wahrscheinlich komplizierter und könnte mehr Zeit in Anspruch nehmen, könnte aber letztendlich die beständigere Lösung sein.

 

Um diese Lösung umzusetzen, müsste man mit der Shopify API arbeiten und vertraut sein und sie nutzen, um auf die VAT-ID zuzugreifen und diese an Billbee zu übermitteln. Man baut hier eine benutzerdefinierte App die die Daten zwischen Shopify und Billbee übermittelt.

 

Für eine benutzerdefinierte App, die die VAT-ID aus dem Shopify B2B-Kanal an Billbee übermittelt müsste man mit dem Shopify Admin API arbeiten (https://shopify.dev/docs/admin-api) und eine GET-Anforderung an die Customer-API senden, um auf die Daten für einen bestimmten Kunden zuzugreifen, einschließlich der VAT-ID und das könnte in etwas wie folgt aussehen:

 

import requests

SHOPIFY_STORE_URL = 'https://<your-shop>.myshopify.com/admin/api/2023-04'
SHOPIFY_API_KEY = '<your-api-key>'
SHOPIFY_PASSWORD = '<your-password>'
SHOPIFY_CUSTOMER_ID = '<customer-id>'

response = requests.get(
    f'{SHOPIFY_STORE_URL}/customers/{SHOPIFY_CUSTOMER_ID}.json',
    auth=(SHOPIFY_API_KEY, SHOPIFY_PASSWORD)
)

customer_data = response.json()
vat_id = customer_data['customer']['tax_id']

 

Nachdem man die VAT-ID von Shopify erhalten hat, diese dann an Billbee übermitteln. Leider habe ich keinen direkten Zugang zu den genauen Details der Billbee API, und die Billbee Entwickler sind hier die besten Ansprechpartner. Möglicherweise gibt es eine spezifische API-Route, die man verwenden könnte, um die VAT-ID für einen Kunden zu aktualisieren.

 

Ein hypothetischer API-Aufruf könnte in etwa so aussehen:

 

BILLBEE_API_KEY = '<your-billbee-api-key>'
BILLBEE_CUSTOMER_ID = '<billbee-customer-id>'

response = requests.post(
    'https://api.billbee.io/v1/customers/update',
    headers={'X-Api-Key': BILLBEE_API_KEY},
    json={'id': BILLBEE_CUSTOMER_ID, 'vat_id': vat_id}
)

 

Hast du weitere Fragen zum Shop? Gebe einfach ein Suchbegriff oben in der Suchleiste der Community Landingpage ein, denn das Thema haben wir sehr wahrscheinlich schon besprochen. Oder lass wissen, wenn du weitere Fragen dazu hast oder zum Shop und Business und gerne können wir das hier weiter besprechen! Halte bitte Ausschau in deiner E-Mail auf Notifications zu Antworten auf deine Fragen in der Community.

Gabe | Social Care @ Shopify
 - War meine Antwort hilfreich? Klicke Like um es mich wissen zu lassen! 
 - Wurde deine Frage beantwortet? Markiere es als Akzeptierte Lösung 
 - Um mehr zu erfahren, besuche das Shopify Help Center oder den Shopify Blog