> For the complete documentation index, see [llms.txt](https://docs.bfn-it.de/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bfn-it.de/documentation/bcshopwareconnector/shopware-connector/entwickler-dokumentation.md).

# Entwickler-Dokumentation

## Erweiterungspunkte

### API, HTTP und Logging

{% code title="codeunit BFN Api Download" %}

```al
OnAfterJObjectCustomFieldsBFNSWOrder(JObjectCustomFields: JsonObject; var BFNSWOrder: Record "BFN SW Order"; Changed: Boolean)
OnAfterProcessBFNSWCustomerAddress(var BFNSWCustomerAddress: Record "BFN SW Customer Address"; var Changed: Boolean; var JObject: JsonObject)
```

{% endcode %}

{% code title="codeunit BFN Api Upload" %}

```al
OnAddTokenToItemJson(Item: Record Item; var JObject: JsonObject)
OnAfterCreateItemAttributeValueTranslation(Item: Record Item; ItemAttributeValue: Record "Item Attribute Value"; var TranslationArray: JsonArray; var LanguagesFound: Boolean)
OnBeforeCreateProductTextUploadCustomer(var JObject: JsonObject; BFNSWCustomer: Record "BFN SW Customer"; BFNSWLead: Record "BFN SW Lead")
OnBeforeCreateProductTextUploadCustomerAddress(var JObject: JsonObject; BFNSWCustomerAddress: Record "BFN SW Customer Address"; BFNSWLead: Record "BFN SW Lead")
OnBeforeGetItemStock(ItemNo: Code[20]; var VariantCode: Code[20]; var IsHandled: Boolean; var ItemStock: Decimal)
OnBeforeOrderDelivery3JObjectWrite(JObject: JsonObject; BFNSWOrderDelivery: Record "BFN SW Order Delivery3")
OnBeforeWriteItemVariantToProductText(ItemVariant: Record "Item Variant"; var JObject: JsonObject)
OnBeforeWriteItemToProductText(Item: Record Item; var JObject: JsonObject)
OnBeforeWriteItemToProductbfnTicketingProduct(var Item: Record Item; JObject2: JsonObject)
```

{% endcode %}

{% code title="codeunit BFN Api Upload" %}

```al
OnBeforeInsertOrModifySWRecordRef(RecordRef: RecordRef; JObject: JsonObject)
OnAfterInsertOrModifySWRecordRef(RecordRef: RecordRef; JObject: JsonObject)
```

{% endcode %}

{% code title="codeunit BFN SW Services" %}

```al
OnInsertSalesLine(var SalesLine: Record "Sales Line")
OnCreatePriceDifference(var SalesLine: Record "Sales Line"; var SalesLinePrice: Record "Sales Line"; vAmount: Decimal; PromotionCode: Code[50])
OnAfterCreateOrderLine(var BFNOrderLine: Record "BFN SW Order Line"; var BFNSWOrderLineItem: Record "BFN SW Order Line Item")
OnBeforeFillBFNOrderLineSWNo(BFNSWProduct: Record "BFN SW Product"; BFNSWOrderLine: Record "BFN SW Order Line"; IsHandeld: Boolean)
OnBeforeSendInStreamToSWInvoice(InStream: InStream; PreviewMode: Boolean; var SalesInvoiceHeader: Record "Sales Invoice Header"; var IsHandled: Boolean)
OnBeforeSendInStreamToSWCrMemo(InStream: InStream; PreviewMode: Boolean; var SalesCrMemoHeader: Record "Sales Cr.Memo Header"; var IsHandled: Boolean)
OnAfterCreateBlobFile(ReportSelectionUsage: Enum "Report Selection Usage"; var TempBlob: Codeunit "Temp Blob"; DocNo: Code[20])
OnAfterCreateOrderLinePayLoad(var BFNSWOrderLine: Record "BFN SW Order Line"; var BFNSWOrderLineItem: Record "BFN SW Order Line Item"; TempText: Text)
OnAfterCreateSWOrderLineJObjectPayLoad(var BFNSWOrderLine: Record "BFN SW Order Line"; var BFNSWOrderLineItem: Record "BFN SW Order Line Item"; var JObject: JsonObject)
OnAfterCreateOrderFromSWOrderVar(var BFNSWOrderHeader: Record "BFN SW Order Header"; var BFNSWOrder: Record "BFN SW Order")
OnCreateSalesLineForPaymentSurcharge(var BFNSWOrderLineItem: Record "BFN SW Order Line Item"; var BFNSWOrderLine: Record "BFN SW Order Line"; var BFNSWOrderHeader: Record "BFN SW Order Header"; var IsHandeld: Boolean)
OnAfterCreateCustomFields(var BFNSWOrder: Record "BFN SW Order"; var BFNSWOrderHeader: Record "BFN SW Order Header"; JObject: JsonObject)
OnAfterCreateOrderTransactionCustomFields(var BFNSWOrder: Record "BFN SW Order"; var BFNSWOrderHeader: Record "BFN SW Order Header"; JObject: JsonObject)
OnAfterCreateOrderDeliveryCustomFields(var BFNSWOrder: Record "BFN SW Order"; var BFNSWOrderHeader: Record "BFN SW Order Header"; JObject: JsonObject)
OnAfterCreateOrderAddressBillCustomFields(var BFNSWOrder: Record "BFN SW Order"; var BFNSWOrderHeader: Record "BFN SW Order Header"; JObject: JsonObject)
OnAfterCreateOrderAddressShipCustomFields(var BFNSWOrder: Record "BFN SW Order"; var BFNSWOrderHeader: Record "BFN SW Order Header"; JObject: JsonObject)
OnAfterCreateOrderCustomerCustomFields(var BFNSWOrder: Record "BFN SW Order"; var BFNSWOrderHeader: Record "BFN SW Order Header"; JObject: JsonObject)
OnAfterCreateExtensions(var BFNSWOrder: Record "BFN SW Order"; var BFNSWOrderHeader: Record "BFN SW Order Header"; JObject: JsonObject)
OnAfterCreateCustomerComment(var BFNSWOrder: Record "BFN SW Order"; var BFNSWOrderHeader: Record "BFN SW Order Header"; JObject: JsonObject)
OnAfterCreateInternalComment(var BFNSWOrder: Record "BFN SW Order"; var BFNSWOrderHeader: Record "BFN SW Order Header"; JObject: JsonObject)
CreateSWOrderHeaderFromAnotherApplication(var BFNSWOrder: Record "BFN SW Order"; var IsProcessed: Boolean)
CreateSWOrderLineFromAnotherApplication(var BFNSWOrderLineItem: Record "BFN SW Order Line Item"; var BFNSWOrderLine: Record "BFN SW Order Line"; var BFNSWOrderHeader: Record "BFN SW Order Header"; ProductNumber: Text; var IsHandled: Boolean)
OnAfterItemNoFoundFillSWOrderline(var BFNSWOrderLine: Record "BFN SW Order Line"; var BFNSWOrderLineItem: Record "BFN SW Order Line Item"; var IsHandled: Boolean; var ItemFound: Boolean)
OnTransferCustomFieldsToOrderLine(var BFNSWOrderLine: Record "BFN SW Order Line"; var BFNSWOrderLineItem: Record "BFN SW Order Line Item"; TempText: Text)
OnAfterCreateSWOrderLineJObjectCustomFields(var BFNSWOrderLine: Record "BFN SW Order Line"; var BFNSWOrderLineItem: Record "BFN SW Order Line Item"; JObjectCustomFields: JsonObject)
OnBeforeInssertBFNCoreEMailSendSendEMailOrderPosted(var BFNCoreEMailSend: Record "BFN Core E-Mail Send"; SalesInvoiceHeader: Record "Sales Invoice Header")
```

{% endcode %}

### Stammdaten und Belege

{% code title="page BFN Additinal Picture2" %}

```al
OnAfterTakeNewPicture(var BFNSWAdditionalPicture: Record "BFN SW Additional Picture2"; IsPictureAdded: Boolean)
OnImportFromDeviceOnAfterModify(var BFNSWAdditionalPicture: Record "BFN SW Additional Picture2")
```

{% endcode %}

{% code title="page BFN Lead Search2" %}

```al
OnBeforeBFNSetContactOnAction(var BFNSWLeadContacts2: Record "BFN SW Lead Contacts2"; BFNSWLead: Record "BFN SW Lead"; var IsHandled: Boolean)
OnAfterBFNSetContactOnAction(var BFNSWLeadContacts2: Record "BFN SW Lead Contacts2"; BFNSWLead: Record "BFN SW Lead")
OnBeforeBFNNewPersonforCompanyOnAction(Rec: Record "BFN SW Lead Contacts2"; BFNLead: Record "BFN SW Lead"; var IsHandled: Boolean)
OnAfterBFNNewPersonforCompanyOnAction(var BFNSWLeadContacts2: Record "BFN SW Lead Contacts2"; BFNSWLead: Record "BFN SW Lead")
```

{% endcode %}

{% code title="table BFN SW Customer" %}

```al
OnBeforeTransferToLead(var BFNSWCustomer: Record "BFN SW Customer"; var IsHandled: Boolean)
OnAfterTransferToSWLead(var BFNSWLead: Record "BFN SW Lead"; var BFNSWCustomer: Record "BFN SW Customer")
OnTransferCustomFieldsToLeadVar(var BFNSWLead: Record "BFN SW Lead"; var BFNSWCustomer: Record "BFN SW Customer"; var Changed: Boolean)
OnTransferCustomFieldsToLeadAddressVar(var BFNSWLead: Record "BFN SW Lead"; var BFNSWCustomerAddress: Record "BFN SW Customer Address"; var Changed: Boolean)
```

{% endcode %}

{% code title="table BFN SW Customer Address" %}

```al
OnTransferCustomFieldsToLeadVar(var BFNSWLead: Record "BFN SW Lead"; var BFNSWCustomerAddress: Record "BFN SW Customer Address"; Changed: Boolean)
OnAfterTransferToLead(var BFNSWCustomerAddress: Record "BFN SW Customer Address"; var BFNSWLead: Record "BFN SW Lead"; var Changed: Boolean)
```

{% endcode %}

{% code title="table BFN SW Lead" %}

```al
OnBeforeUploadToCS(var BFNSWLead: Record "BFN SW Lead"; var xBFNSWLead: Record "BFN SW Lead"; var IsHandled: Boolean)
OnAfterUploadToCS(var BFNSWLead: Record "BFN SW Lead"; var xBFNSWLead: Record "BFN SW Lead")
OnBeforeUpdateFromContact(var BFNSWLead: Record "BFN SW Lead"; var xBFNSWLead: Record "BFN SW Lead"; Contact: Record Contact; var IsHandled: Boolean)
OnAfterUpdateFromContact(var BFNSWLead: Record "BFN SW Lead"; var xBFNSWLead: Record "BFN SW Lead"; Contact: Record Contact; Lead: Record "BFN SW Lead")
OnBeforeUpdateDataRecToContact(var BFNSWLead: Record "BFN SW Lead"; Changed: Boolean; var Contact: Record Contact; var IsHandled: Boolean)
OnAfterUpdateDataRecToContact(var BFNSWLead: Record "BFN SW Lead"; var Contact: Record Contact)
OnAfterCreateCustomer(var BFNSWLead: Record "BFN SW Lead"; Contact: Record Contact; CustomerNo: Code[20])
OnBeforeCreateCustomer(var BFNSWLead: Record "BFN SW Lead"; var IsHandled: Boolean)
OnBeforeCreateContact(var BFNSWLead: Record "BFN SW Lead"; var IsHandled: Boolean)
OnAfterCreateContactVar(var BFNSWLead: Record "BFN SW Lead"; Contact: Record Contact; var IsHandled: Boolean)
OnAfterCreateShiptoAddressVar(var BFNSWLead: Record "BFN SW Lead"; ShiptoAddress: Record "Ship-to Address"; var IsHandled: Boolean)
OnAfterOnInsert(var BFNSWLead: Record "BFN SW Lead")
OnAfterOnDelete(var BFNSWLead: Record "BFN SW Lead")
OnBeforeOnDelete(var BFNSWLead: Record "BFN SW Lead"; var IsHandled: Boolean)
OnBeforeOnInsert(var BFNSWLead: Record "BFN SW Lead"; var IsHandled: Boolean)
OnAfterOnModify(var BFNSWLead: Record "BFN SW Lead")
OnAfterDeleteAll(var BFNSWLead: Record "BFN SW Lead"; var Successfull: Boolean)
OnSetUseContPersonforCompany(BFNSWLead: Record "BFN SW Lead"; var UseContPersonforCompany: Boolean)
```

{% endcode %}

{% code title="table BFN SW Order Header" %}

```al
OnAfterCreateSalesHeaderFromOrderHeader(var BFNOrderHeader: Record "BFN SW Order Header"; var SalesHeader: Record "Sales Header")
OnBeforeReleaseSalesHeader(var ReleaseOrder: Boolean; var SalesHeader: Record "Sales Header")
OnBeforeCreateShopSales(var BFNSWOrderHeader: Record "BFN SW Order Header"; ShowDialog: Boolean; PostSalesOrder: Boolean; var IsHandled: Boolean)
OnAfterCreateShopSales(var BFNSWOrderHeader: Record "BFN SW Order Header"; SalesHeader: Record "Sales Header"; ShowDialog: Boolean; PostSalesOrder: Boolean)
OnBeforInsertSalesHeader(var SalesHeader: Record "Sales Header"; BFNSWOrderHeader: Record "BFN SW Order Header")
OnAfterCreateAllLines(var BFNSWOrderHeader: Record "BFN SW Order Header"; SalesHeader: Record "Sales Header")
OnBeforeSetSalesHeaderNoVar(var SalesHeader: Record "Sales Header"; var BFNSWOrderHeader: Record "BFN SW Order Header"; var IsHandled: Boolean)
BFNOnBeforeSetErrorMissingCustomerVar(var BFNSWOrderHeader: Record "BFN SW Order Header"; BFNSWLead: Record "BFN SW Lead"; var IsHandled: Boolean)
OnBeforeValidateSalesHeaderSellTo(var BFNSWOrderHeader: Record "BFN SW Order Header"; var SalesHeader: Record "Sales Header"; var IsHandled: Boolean)
OnBeforeValidateSalesHeaderBillTo(var BFNSWOrderHeader: Record "BFN SW Order Header"; var SalesHeader: Record "Sales Header"; var IsHandled: Boolean)
OnBeforeValidateSalesHeaderShipTo(var BFNSWOrderHeader: Record "BFN SW Order Header"; var SalesHeader: Record "Sales Header"; var IsHandled: Boolean)
```

{% endcode %}

{% code title="table BFN SW Product" %}

```al
OnBeforeCreateBaseItem(var BFNSWProduct: Record "BFN SW Product"; Item: Record Item; var IsHandled: Boolean)
OnAfterCreateBaseItem(var BFNSWProduct: Record "BFN SW Product"; Item: Record Item)
OnBeforeBFNSWCreateItem(var BFNSWProduct: Record "BFN SW Product"; var IsHandled: Boolean)
```

{% endcode %}

{% code title="table Item" %}

```al
BFNSWOnBeforeUpdateItemVariantByFieldNo(var Item: Record Item; ChangedFieldNo: Integer; AskQuestion: Boolean; var IsHandled: Boolean; xItem: Record Item)
BFNOnAfterSyncMediaToSW(var Item: Record Item)
BFNOnBeforeSyncMediaToSW(var Item: Record Item; var IsHandled: Boolean)
BFNSWOnBeforeItemVariantByChangedFieldNo(var Item: Record Item; ItemVariant: Record "Item Variant"; ChangedFieldNo: Integer; var IsHandled: Boolean; xRec: Record Item)
BFNSWOnUpdateItemVariantByChangedFieldName(var Item: Record Item; ItemVariant: Record "Item Variant"; FieldName: Text[30]; ChangedFieldNo: Integer)
BFNSWOnUpdateItemVariantsByFieldNoOnBeforeItemVariantModify(ItemVariant: Record "Item Variant"; ChangedFieldNo: Integer; CurrFieldNo: Integer)
BFNOnAfterSyncToSW(var Item: Record Item)
BFNOnBeforeSyncToSW(var Item: Record Item; var IsHandled: Boolean)
BFNSWOnBeforeBFNItemVariantsExist(var Item: Record Item; var returnVar: Boolean; var IsHandled: Boolean)
BFNSWOnAfterUpdateItemVariantsByFieldNo(Item: Record Item; xItem: Record Item; ChangedFieldNo: Integer)
BFNSWOnBeforeBFNGetProductId(var TempProductId: Guid; var IsHandled: Boolean)
```

{% endcode %}

{% code title="table Item Variant" %}

```al
BFNSWOnBeforeBFNGetProductId(var TempProductId: Guid; var IsHandled: Boolean)
```

{% endcode %}

{% code title="table Sales Header" %}

```al
BFNOnCapturePayment(var SalesHeader: Record "Sales Header")
```

{% endcode %}

{% code title="table Sales Line" %}

```al
BFNOnBeforeBFNFillFromOrderLine(var SalesLine: Record "Sales Line"; var BFNSWOrderLine: Record "BFN SW Order Line"; var ParSalesHeader: Record "Sales Header"; var LineNo: Integer; var IsHandled: Boolean)
BFNOnAfterBFNFillFromOrderLine(var SalesLine: Record "Sales Line"; var BFNSWOrderLine: Record "BFN SW Order Line"; var ParSalesHeader: Record "Sales Header"; var LineNo: Integer)
BFNOnBeforeBFNModifyFromOrderLine(var SalesLine: Record "Sales Line"; var BFNSWOrderLine: Record "BFN SW Order Line"; var ParSalesHeader: Record "Sales Header"; var LineNo: Integer; var IsHandled: Boolean)
BFNOnAfterBFNModifyFromOrderLine(var SalesLine: Record "Sales Line"; var BFNSWOrderLine: Record "BFN SW Order Line"; var ParSalesHeader: Record "Sales Header"; var LineNo: Integer)
BFNOnAfterBFNFillFromOrderLinePayload(var SalesLine: Record "Sales Line"; var BFNSWOrderLine: Record "BFN SW Order Line"; var ParSalesHeader: Record "Sales Header"; var LineNo: Integer)
```

{% endcode %}

### Veraltet

{% hint style="warning" %}
Dieses Event ist veraltet. Es sollte nur noch für Bestandslösungen genutzt werden.
{% endhint %}

{% code title="codeunit BFN Api Upload" %}

```al
OnBeforeRefundPaymentSalesHeader(PaymentMethod: Record "Payment Method"; var SalesHeader: Record "Sales Header"; var IsHandled: Boolean)
OnBeforeCapturePaymentSalesHeader(PaymentMethod: Record "Payment Method"; var SalesHeader: Record "Sales Header"; var IsHandled: Boolean)
OnBeforeOrderDeliveryJObjectWrite(JObject: JsonObject; BFNSWOrderDelivery: Record "BFN SW Order Delivery")
OnBeforeOrderDelivery2JObjectWrite(JObject: JsonObject; BFNSWOrderDelivery: Record "BFN SW Order Delivery2")
```

{% endcode %}

{% code title="codeunit BFN SW Http Services" %}

```al
OnAfterSetCreateApiLog(BFNServiceType: Enum "BFN SW Service Type"; var CreateApiLog: Boolean)
```

{% endcode %}

{% code title="codeunit BFN SW Json Services" %}

```al
OnBeforeInsertOrModifySWRecordRef(RecordRef: RecordRef; JObject: JsonObject)
OnAfterInsertOrModifySWRecordRef(RecordRef: RecordRef; JObject: JsonObject)
```

{% endcode %}

{% code title="codeunit BFN SW Services" %}

```al
OnAfterCreateOrderFromSWOrder(BFNSWOrderHeader: Record "BFN SW Order Header"; var BFNSWOrder: Record "BFN SW Order")
```

{% endcode %}

{% code title="table BFN SW Api Log" %}

```al
OnBeforeTryAgain(var BFNApiLog: Record "BFN SW API Log"; var IsHandeld: Boolean; var Response: Text)
OnAfterTryAgain(var BFNApiLog: Record "BFN SW API Log"; var Response: Text)
```

{% endcode %}

{% code title="table BFN SW Customer" %}

```al
OnAfterTransferToLead(var BFNSWCustomer: Record "BFN SW Customer")
OnTransferCustomFieldsToLead(BFNSWLead: Record "BFN SW Lead"; BFNSWCustomer: Record "BFN SW Customer"; Changed: Boolean)
OnTransferCustomFieldsToLeadAddress(BFNSWLead: Record "BFN SW Lead"; BFNSWCustomerAddress: Record "BFN SW Customer Address"; Changed: Boolean)
```

{% endcode %}

{% code title="table BFN SW Customer Address" %}

```al
OnTransferCustomFieldsToLead(BFNSWLead: Record "BFN SW Lead"; BFNSWCustomerAddress: Record "BFN SW Customer Address"; Changed: Boolean)
OnTransferCustomFieldsToLead(BFNSWLead: Record "BFN SW Lead"; BFNSWCustomerAddress: Record "BFN SW Customer Address"; Changed: Boolean)
```

{% endcode %}

{% code title="table BFN SW Lead" %}

```al
OnBeforeUpdateFromShipToAdr(var BFNSWLead: Record "BFN SW Lead"; var xBFNSWLead: Record "BFN SW Lead"; ShiptoAddress: Record "Ship-to Address"; var IsHandled: Boolean)
OnAfterUpdateFromShipToAdr(var BFNSWLead: Record "BFN SW Lead"; var xBFNSWLead: Record "BFN SW Lead"; ShiptoAddress: Record "Ship-to Address")
OnAfterCreateContact(var BFNSWLead: Record "BFN SW Lead"; Contact: Record Contact; IsHandled: Boolean)
OnAfterCreateShiptoAddress(var BFNSWLead: Record "BFN SW Lead"; ShiptoAddress: Record "Ship-to Address"; IsHandled: Boolean)
```

{% endcode %}

{% code title="table BFN SW Order Header" %}

```al
OnBeforeSetSalesHeaderNo(var SalesHeader: Record "Sales Header"; BFNSWOrderHeader: Record "BFN SW Order Header"; var IsHandled: Boolean)
BFNOnBeforeSetErrorMissingCustomer(BFNSWOrderHeader: Record "BFN SW Order Header"; BFNSWLead: Record "BFN SW Lead"; var IsHandled: Boolean)
```

{% endcode %}

{% code title="table BFN SW Voucher2" %}

```al
OnBeforeFillBFNCode(var BFNSWVoucher2: Record "BFN SW Voucher2"; var IsHandled: Boolean)
```

{% endcode %}

{% code title="table Item" %}

```al
BFNSWOnBeforeSyncToSW(var Item: Record Item; var IsHandled: Boolean)
BFNSWOnBeforeUpdateItemVariant(var Item: Record Item; ChangedFieldName: Text[100]; AskQuestion: Boolean)
BFNSWOnAfterUpdateItemVariant(var Item: Record Item)
```

{% endcode %}

{% code title="table Sales Line" %}

```al
BFNOnAfterModifyFromOrderLine(var Rec: Record "Sales Line"; var BFNOrderLine: Record "BFN SW Order Line")
```

{% endcode %}
