diff --git a/snowplow_analytics_sdk/json_shredder.py b/snowplow_analytics_sdk/json_shredder.py index 7f60754..16b204a 100644 --- a/snowplow_analytics_sdk/json_shredder.py +++ b/snowplow_analytics_sdk/json_shredder.py @@ -61,8 +61,8 @@ def fix_schema(prefix, schema): Create an Elasticsearch field name from a schema string """ schema_dict = extract_schema(schema) - snake_case_organization = schema_dict['vendor'].replace('.', '_').lower() - snake_case_name = re.sub('([^A-Z_])([A-Z])', '\g<1>_\g<2>', schema_dict['name']).lower() + snake_case_organization = re.sub('[\.\-]', '_', schema_dict['vendor']).lower() + snake_case_name = re.sub('([^A-Z_])([A-Z])', '\g<1>_\g<2>', re.sub('[\.\-]', '_', schema_dict['name'])).lower() model = schema_dict['version'].split('-')[0] return "{}_{}_{}_{}".format(prefix, snake_case_organization, snake_case_name, model) diff --git a/tests/test_event_transformer.py b/tests/test_event_transformer.py index 861621e..8a8fd00 100644 --- a/tests/test_event_transformer.py +++ b/tests/test_event_transformer.py @@ -76,6 +76,16 @@ "loadEventStart": 0, "loadEventEnd": 0 } + }, + { + "schema": "iglu:com.google.analytics.enhanced-ecommerce/productFieldObject/jsonschema/1-0-0", + "data": { + "price":100, + "name":"product-x", + "currency":"EUR", + "id":"123456", + "quantity":1 + } } ] }""" @@ -278,6 +288,13 @@ "page_urlpath" : "/product/index.html", "page_urlquery" : "id=GTM-DLRG", "page_urlfragment" : "4-conclusion", + "contexts_com_google_analytics_enhanced_ecommerce_product_field_object_1" : [ { + "price":100, + "name":"product-x", + "currency":"EUR", + "id":"123456", + "quantity":1 + } ], "contexts_org_schema_web_page_1" : [ { "genre" : "blog", "inLanguage" : "en-US",