[Beta]{class="badge informative"}
Erstellen Sie eine Streaming-Quellverbindung und einen Datenfluss für Shopify Daten mithilfe der Flow Service-API
Das folgende Tutorial enthält Schritte zum Erstellen einer Streaming-Quellverbindung und eines Datenflusses zum Streamen von Daten aus Shopify zu Adobe Experience Platform mithilfe der Flow Service API.
Erste Schritte getting-started
Dieses Handbuch setzt ein Verständnis der folgenden Komponenten von Experience Platform voraus:
- Quellen Platform: Experience ermöglicht die Aufnahme von Daten aus verschiedenen Quellen und bietet Ihnen die Möglichkeit, die eingehenden Daten mithilfe von Platform-Services zu strukturieren, zu kennzeichnen und anzureichern.
- Sandboxes: Experience Platform bietet virtuelle Sandboxes, die eine einzelne Platform-Instanz in separate virtuelle Umgebungen unterteilen, damit Sie Programme für digitale Erlebnisse entwickeln und weiterentwickeln können.
Verwenden von Platform-APIs
Informationen darüber, wie Sie Platform-APIs erfolgreich aufrufen können, finden Sie im Handbuch unter Erste Schritte mit Platform-APIs.
Stream Shopify Daten an Platform mithilfe der Flow Service-API
Im Folgenden werden die Schritte beschrieben, die Sie zum Erstellen einer Quellverbindung und eines Datenflusses zum Streamen Ihrer Shopify Daten an Platform.
Erstellen einer Quellverbindung source-connection
Erstellen Sie eine Quellverbindung, indem Sie eine POST-Anfrage an die Flow Service API, während Sie die Verbindungsspezifikations-ID Ihrer Quelle, Details wie Name und Beschreibung und das Format Ihrer Daten angeben.
API-Format
POST /sourceConnections
Anfrage
Die folgende Anfrage erstellt eine Quellverbindung für YOURSOURCE:
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/sourceConnections' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Shopify Streaming Source Connection",
"providerId": "521eee4d-8cbe-4906-bb48-fb6bd4450033",
"description": "Shopify Streaming Source Connection",
"connectionSpec": {
"id": "e77fd9d2-22a8-11ed-861d-0242ac120002",
"version": "1.0"
},
"data": {
"format": "json"
}
}'
name
description
connectionSpec.id
data.format
json
unterstützt.Antwort
Eine erfolgreiche Antwort gibt die eindeutige Kennung (id
) der neu erstellten Quellverbindung zurück. Diese ID ist in einem späteren Schritt erforderlich, um einen Datenfluss zu erstellen.
{
"id": "246d052c-da4a-494a-937f-a0d17b1c6cf5",
"etag": "\"712a8c08-fda7-41c2-984b-187f823293d8\""
}
Erstellen eines XDM-Zielschemas target-schema
Damit die Quelldaten in Platform verwendet werden können, muss ein Zielschema erstellt werden, das die Quelldaten entsprechend Ihren Anforderungen strukturiert. Das Zielschema wird dann verwendet, um einen Platform-Datensatz zu erstellen, in dem die Quelldaten enthalten sind.
Ein Ziel-XDM-Schema kann erstellt werden, indem eine POST-Anfrage an die Schema-Registrierungs-API durchgeführt wird.
Ausführliche Schritte zum Erstellen eines XDM-Zielschemas finden Sie im Tutorial zum Erstellen eines Schemas mithilfe der API.
Erstellen eines Zieldatensatzes target-dataset
Ein Zieldatensatz kann erstellt werden, indem eine POST-Anfrage an die Catalog Service API durchgeführt wird, wodurch die ID des Zielschemas in der Payload angegeben wird.
Ausführliche Anweisungen zum Erstellen eines Zieldatensatzes finden Sie im Tutorial zu Erstellen eines Datensatzes mithilfe der API.
Erstellen einer Zielverbindung target-connection
Eine Zielverbindung stellt die Verbindung zum Ziel dar, an dem die aufgenommenen Daten gespeichert werden sollen. Um eine Zielverbindung zu erstellen, müssen Sie die ID der Festnetzverbindungsspezifikation angeben, die dem Data Lake entspricht. Diese ID lautet: c604ff05-7f1a-43c0-8e18-33bf874cb11c
.
Sie verfügen jetzt über die eindeutigen Kennungen, ein Zielschema, einen Zieldatensatz und die Verbindungsspezifikations-ID zum Data Lake. Anhand dieser Kennungen können Sie mit der Flow Service-API eine Zielverbindung erstellen, um den Datensatz anzugeben, der die eingehenden Quelldaten enthalten wird.
API-Format
POST /targetConnections
Anfrage
Die folgende Anfrage erstellt eine Zielverbindung für Shopify:
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/targetConnections' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Shopify Streaming Target Connection",
"description": "Shopify Streaming Target Connection",
"connectionSpec": {
"id": "c604ff05-7f1a-43c0-8e18-33bf874cb11c",
"version": "1.0"
},
"data": {
"format": "json",
"schema": {
"id": "{TARGET_XDM_SCHEMA}",
"version": "application/vnd.adobe.xed-full+json;version=1"
}
},
"params": {
"dataSetId": "{TARGET_DATASET}"
}
}'
name
description
connectionSpec.id
c604ff05-7f1a-43c0-8e18-33bf874cb11c
.data.format
params.dataSetId
Antwort
Eine erfolgreiche Antwort gibt die eindeutige Kennung der neuen Zielverbindung an (id
). Diese ID ist in späteren Schritten erforderlich.
{
"id": "7c96c827-3ffd-460c-a573-e9558f72f263",
"etag": "\"a196f685-f5e8-4c4c-bfbd-136141bb0c6d\""
}
Erstellen einer Zuordnung mapping
Damit die Quelldaten in einen Zieldatensatz aufgenommen werden können, müssen sie zunächst dem Zielschema zugeordnet werden, zu dem der Zieldatensatz gehört. Dies wird erreicht, indem eine POST-Anfrage an Data Prep API mit Datenzuordnungen, die in der Anfrage-Payload definiert sind.
API-Format
POST /conversion/mappingSets
Anfrage
curl -X POST \
'https://platform.adobe.io/data/foundation/mappingSets' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"version": 0,
"xdmSchema": "{TARGET_XDM_SCHEMA}",
"xdmVersion": "1.0",
"mappings": [
{
"destinationXdmPath": "person.name.firstName",
"sourceAttribute": "firstName",
"identity": false,
"version": 0
},
{
"destinationXdmPath": "person.name.lastName",
"sourceAttribute": "lastName",
"identity": false,
"version": 0
}
]
}'
xdmSchema
mappings.destinationXdmPath
mappings.sourceAttribute
mappings.identity
Antwort
Eine erfolgreiche Antwort gibt Details zur neu erstellten Zuordnung an, einschließlich der eindeutigen Kennung (id
). Dieser Wert ist in einem späteren Schritt zum Erstellen eines Datenflusses erforderlich.
{
"id": "bf5286a9c1ad4266baca76ba3adc9366",
"version": 0,
"createdDate": 1597784069368,
"modifiedDate": 1597784069368,
"createdBy": "{CREATED_BY}",
"modifiedBy": "{MODIFIED_BY}"
}
Erstellen eines Flusses flow
Der letzte Schritt zur Datenübermittlung von Shopify in Platform einen Datenfluss erstellen. Bislang haben Sie die folgenden erforderlichen Werte vorbereitet:
Ein Datenfluss ist für die Planung und Erfassung von Daten aus einer Quelle verantwortlich. Sie können einen Datenfluss erstellen, indem Sie eine POST-Anfrage ausführen und dabei die oben genannten Werte in der Payload angeben.
API-Format
POST /flows
Anfrage
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/flows' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Shopify Streaming Dataflow",
"description": "Shopify Streaming Dataflow",
"flowSpec": {
"id": "e77fde5a-22a8-11ed-861d-0242ac120002",
"version": "1.0"
},
"sourceConnectionIds": [
"246d052c-da4a-494a-937f-a0d17b1c6cf5"
],
"targetConnectionIds": [
"7c96c827-3ffd-460c-a573-e9558f72f263"
],
"transformations": [
{
"name": "Mapping",
"params": {
"mappingId": "bf5286a9c1ad4266baca76ba3adc9366",
"mappingVersion": 0
}
}
]
}'
name
description
flowSpec.id
e77fde5a-22a8-11ed-861d-0242ac120002
.flowSpec.version
1.0
festgelegt.sourceConnectionIds
targetConnectionIds
transformations
transformations.name
transformations.params.mappingId
transformations.params.mappingVersion
0
festgelegt.Antwort
Bei einer erfolgreichen Antwort wird die ID (id
) des neu erstellten Datenflusses angegeben. Mit dieser ID können Sie Ihren Datenfluss überwachen, aktualisieren oder löschen.
{
"id": "993f908f-3342-4d9c-9f3c-5aa9a189ca1a",
"etag": "\"510bb1d4-8453-4034-b991-ab942e11dd8a\""
}
Abrufen der Streaming-Endpunkt-URL
Mit dem erstellten Datenfluss können Sie jetzt Ihre Streaming-Endpunkt-URL abrufen. Sie werden diese Endpunkt-URL verwenden, um Ihre Quelle für einen Webhook zu abonnieren, sodass Ihre Quelle mit Experience Platform kommunizieren kann.
Um Ihre Streaming-Endpunkt-URL abzurufen, stellen Sie eine GET-Anfrage an die /flows
-Endpunkt und geben Sie die Kennung Ihres Datenflusses an.
API-Format
GET /flows/{FLOW_ID}
Anfrage
curl -X GET \
'https://platform.adobe.io/data/foundation/flowservice/flows/993f908f-3342-4d9c-9f3c-5aa9a189ca1a' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
Antwort
Eine erfolgreiche Antwort gibt Informationen zu Ihrem Datenfluss zurück, einschließlich Ihrer Endpunkt-URL, die als inletUrl
.
{
"header":{
"xactionId":"1658464615769:0062:161",
"source":{
"name":"shopify"
},
"sandboxId":"d537df80-c5d7-11e9-aafb-87c71c35cac8",
"sandboxName":"prod",
"originalTimestamp":1658464615770,
"msgId":"1658464615769:0062:161",
"msgVersion":"1.0",
"traceContext":{
"traceId":"ff3e7544618471eee6b934a4c5929d4e",
"spanId":"74a759c5cc5f5a06",
"isSampled":1.0
},
"_dcsMeta":{
"inletId":"9d411a24aa3c0a3eded92bac6c64d0da986ee7a8212f87168c5fb42d9ddc3227",
"authenticatedRequest":false,
"debug":true
}
},
"body":{
"id":4135234371722,
"admin_graphql_api_id":"gid://shopify/Order/4135234371722",
"app_id":1354745,
"browser_ip":null,
"buyer_accepts_marketing":false,
"cancel_reason":null,
"cancelled_at":null,
"cart_token":null,
"checkout_id":21706716217482,
"checkout_token":"b143503216124d50141fe0832fa3f4b0",
"client_details":{
"accept_language":null,
"browser_height":null,
"browser_ip":null,
"browser_width":null,
"session_hash":null,
"user_agent":null
},
"closed_at":null,
"confirmed":true,
"contact_email":null,
"created_at":"2022-07-22T00:36:48-04:00",
"currency":"INR",
"current_subtotal_price":"40000.00",
"current_subtotal_price_set":{
"shop_money":{
"amount":"40000.00",
"currency_code":"INR"
},
"presentment_money":{
"amount":"40000.00",
"currency_code":"INR"
}
},
"current_total_discounts":"0.00",
"current_total_discounts_set":{
"shop_money":{
"amount":"0.00",
"currency_code":"INR"
},
"presentment_money":{
"amount":"0.00",
"currency_code":"INR"
}
},
"current_total_duties_set":null,
"current_total_price":"47200.00",
"current_total_price_set":{
"shop_money":{
"amount":"47200.00",
"currency_code":"INR"
},
"presentment_money":{
"amount":"47200.00",
"currency_code":"INR"
}
},
"current_total_tax":"7200.00",
"current_total_tax_set":{
"shop_money":{
"amount":"7200.00",
"currency_code":"INR"
},
"presentment_money":{
"amount":"7200.00",
"currency_code":"INR"
}
},
"customer_locale":null,
"device_id":null,
"discount_codes":[
],
"email":"",
"estimated_taxes":false,
"financial_status":"paid",
"fulfillment_status":null,
"gateway":"manual",
"landing_site":null,
"landing_site_ref":null,
"location_id":39129743498,
"name":"#1005",
"note":null,
"note_attributes":[
],
"number":5,
"order_number":1005,
"order_status_url":"https://connnectors-test.myshopify.com/31913214090/orders/ffd48198c78ef460177e44e22b19e6ab/authenticate?key=79a40d7da4b23d6a0beb2ba774f6ac83",
"original_total_duties_set":null,
"payment_gateway_names":[
"manual"
],
"phone":null,
"presentment_currency":"INR",
"processed_at":"2022-07-22T00:36:48-04:00",
"processing_method":"manual",
"reference":null,
"referring_site":null,
"source_identifier":null,
"source_name":"shopify_draft_order",
"source_url":null,
"subtotal_price":"40000.00",
"subtotal_price_set":{
"shop_money":{
"amount":"40000.00",
"currency_code":"INR"
},
"presentment_money":{
"amount":"40000.00",
"currency_code":"INR"
}
},
"tags":"",
"tax_lines":[
{
"price":"7200.00",
"rate":0.18,
"title":"IGST",
"price_set":{
"shop_money":{
"amount":"7200.00",
"currency_code":"INR"
},
"presentment_money":{
"amount":"7200.00",
"currency_code":"INR"
}
},
"channel_liable":false
}
],
"taxes_included":false,
"test":false,
"token":"ffd48198c78ef460177e44e22b19e6ab",
"total_discounts":"0.00",
"total_discounts_set":{
"shop_money":{
"amount":"0.00",
"currency_code":"INR"
},
"presentment_money":{
"amount":"0.00",
"currency_code":"INR"
}
},
"total_line_items_price":"40000.00",
"total_line_items_price_set":{
"shop_money":{
"amount":"40000.00",
"currency_code":"INR"
},
"presentment_money":{
"amount":"40000.00",
"currency_code":"INR"
}
},
"total_outstanding":"0.00",
"total_price":"47200.00",
"total_price_set":{
"shop_money":{
"amount":"47200.00",
"currency_code":"INR"
},
"presentment_money":{
"amount":"47200.00",
"currency_code":"INR"
}
},
"total_price_usd":"589.95",
"total_shipping_price_set":{
"shop_money":{
"amount":"0.00",
"currency_code":"INR"
},
"presentment_money":{
"amount":"0.00",
"currency_code":"INR"
}
},
"total_tax":"7200.00",
"total_tax_set":{
"shop_money":{
"amount":"7200.00",
"currency_code":"INR"
},
"presentment_money":{
"amount":"7200.00",
"currency_code":"INR"
}
},
"total_tip_received":"0.00",
"total_weight":800,
"updated_at":"2022-07-22T00:36:49-04:00",
"user_id":44968935562,
"discount_applications":[
],
"fulfillments":[
],
"line_items":[
{
"id":10630730743946,
"admin_graphql_api_id":"gid://shopify/LineItem/10630730743946",
"fulfillable_quantity":1,
"fulfillment_service":"manual",
"fulfillment_status":null,
"gift_card":false,
"grams":800,
"name":"Mobile Phones",
"origin_location":{
"id":3141069111434,
"country_code":"IN",
"province_code":"UP",
"name":"Noida",
"address1":"Noida",
"address2":"",
"city":"Noida",
"zip":"201301"
},
"price":"40000.00",
"price_set":{
"shop_money":{
"amount":"40000.00",
"currency_code":"INR"
},
"presentment_money":{
"amount":"40000.00",
"currency_code":"INR"
}
},
"product_exists":true,
"product_id":4525859963018,
"properties":[
],
"quantity":1,
"requires_shipping":true,
"sku":"",
"taxable":true,
"title":"Mobile Phones",
"total_discount":"0.00",
"total_discount_set":{
"shop_money":{
"amount":"0.00",
"currency_code":"INR"
},
"presentment_money":{
"amount":"0.00",
"currency_code":"INR"
}
},
"variant_id":32045196640394,
"variant_inventory_management":"shopify",
"variant_title":"",
"vendor":"Connnectors Test",
"tax_lines":[
{
"channel_liable":false,
"price":"7200.00",
"price_set":{
"shop_money":{
"amount":"7200.00",
"currency_code":"INR"
},
"presentment_money":{
"amount":"7200.00",
"currency_code":"INR"
}
},
"rate":0.18,
"title":"IGST"
}
],
"duties":[
],
"discount_allocations":[
]
}
],
"payment_terms":null,
"refunds":[
],
"shipping_lines":[
]
}
}
Anhang
Im folgenden Abschnitt finden Sie Informationen zu den Schritten, die Sie zum Überwachen, Aktualisieren und Löschen Ihres Datenflusses unternehmen können.
Überwachen Ihres Datenflusses
Nachdem Ihr Datenfluss erstellt wurde, können Sie die Datenaufnahme überwachen, um Informationen über die Datenflussausführungen, den Abschlussstatus und Fehler anzuzeigen. Die vollständigen API-Beispiele finden Sie im Handbuch unter Überwachen der Datenflüsse Ihrer Quellen mithilfe der API.
Aktualisieren des Datenflusses
Aktualisieren Sie die Details Ihres Datenflusses, z. B. seinen Namen und seine Beschreibung, sowie den Ausführungszeitplan und die zugehörigen Zuordnungssätze, indem Sie eine PATCH-Anfrage an die /flows
Endpunkt der Flow Service API verwenden, während Sie die Kennung Ihres Datenflusses angeben. Bei einer PATCH-Anfrage müssen Sie die eindeutige etag
im If-Match
-Kopfzeile. Die vollständigen API-Beispiele finden Sie im Handbuch unter Aktualisieren von Datenflüssen für Quellen mithilfe der API
Konto aktualisieren
Aktualisieren Sie den Namen, die Beschreibung und die Anmeldeinformationen Ihres Quellkontos, indem Sie eine PATCH-Anfrage an die Flow Service API bei der Bereitstellung Ihrer Basis-Verbindungs-ID als Abfrageparameter. Bei einer PATCH-Anfrage müssen Sie die eindeutige etag
im If-Match
-Kopfzeile. Die vollständigen API-Beispiele finden Sie im Handbuch unter Aktualisieren Ihres Quellkontos mithilfe der API.
Löschen des Datenflusses
Löschen Sie Ihren Datenfluss, indem Sie eine DELETE-Anfrage an die Flow Service API bei Angabe der Kennung des Datenflusses, den Sie als Teil des Abfrageparameters löschen möchten. Die vollständigen API-Beispiele finden Sie im Handbuch unter Löschen Ihrer Datenflüsse mithilfe der API.
Konto löschen
Löschen Sie Ihr Konto, indem Sie eine DELETE-Anfrage an die Flow Service API bei Angabe der grundlegenden Verbindungs-ID des Kontos, das Sie löschen möchten. Die vollständigen API-Beispiele finden Sie im Handbuch unter Löschen Ihres Quellkontos mithilfe der API.