Find sequence with single pickup and multiple dropoffs here-api. Next pickup must happen after existing delivery is completed - here-api

I got a scenario of completing 3 deliveries.
Delivery 1 - 1 Pickup (P1) and 3 Drop offs (D11,D12,D13).
Delivery 2 - 1 Pickup (P2) and 2 Drop offs (D21,D22).
Delivery 3 - 1 Pickup (P3) and 3 Drop offs (D31,D32,D33).
it should provide a route in a way that next pickup should happen after existing delivery is completed.
e.g. if we consider P2 as first point then P1 or P3 must come after D21 and D22. Here sequence of Drop offs can be anything.

The HERE Tour Planning API should be able to solve your problem. Here you can define your jobs with pickups and deliveries, and the API provides you an optimized tour.
You can also define properties of your fleet, to take into account.
https://developer.here.com/documentation/tour-planning/dev_guide/index.html
Example request:
{
"id": "7f3423c2-784a-4983-b472-e14107d5a54a",
"plan": {
"jobs": [
{
"id": "7f3423c2-784a-4983-b472-e14107d5a54a",
"places": {
"pickup": {
"times": [
[
"2019-07-04T08:00:00Z",
"2019-07-04T10:00:00Z"
],
[
"2019-07-04T16:00:00Z",
"2019-07-04T18:00:00Z"
]
],
"location": {
"lat": 52.53088,
"lng": 13.38471
},
"duration": 180,
"tag": {
"tag": "some tag"
}
},
"delivery": {
"times": [
[
"2019-07-04T08:00:00Z",
"2019-07-04T10:00:00Z"
],
[
"2019-07-04T16:00:00Z",
"2019-07-04T18:00:00Z"
]
],
"location": {
"lat": 52.53088,
"lng": 13.38471
},
"duration": 180,
"tag": {
"tag": "some tag"
}
}
},
"demand": [
10,
5
],
"skills": [
"fridge"
]
}
],
"relations": [
{
"type": "sequence",
"jobs": [
"departure",
"job1",
"break",
"job2"
],
"vehicleId": "7f3423c2-784a-4983-b472-e14107d5a54a"
}
]
},
"fleet": {
"types": [
{
"id": "7f3423c2-784a-4983-b472-e14107d5a54a",
"profile": {
"tag": "big truck"
},
"costs": {
"fixed": 22,
"distance": 0.0001,
"time": 0.0048
},
"shifts": [
{
"start": {
"time": "2019-07-04T00:00:00Z",
"location": {
"lat": 52.53088,
"lng": 13.38471
}
},
"end": {
"time": "2019-07-04T00:00:00Z",
"location": {
"lat": 52.53088,
"lng": 13.38471
}
},
"breaks": [
{
"times": [
[
"2019-07-04T08:00:00Z",
"2019-07-04T10:00:00Z"
],
[
"2019-07-04T16:00:00Z",
"2019-07-04T18:00:00Z"
]
],
"duration": 180,
"location": {
"lat": 52.53088,
"lng": 13.38471
}
}
]
}
],
"capacity": [
10,
5
],
"skills": [
"fridge"
],
"limits": {
"maxDistance": 20000,
"shiftTime": 21600
},
"amount": 1
}
],
"profiles": [
{
"name": {
"tag": "big truck"
},
"departureTime": "2019-07-04T00:00:00Z",
"avoidRoutes": {
"features": [
"tollRoad"
]
},
"type": "car"
}
]
},
"configuration": {
"optimizations": {
"traffic": "liveOrHistorical",
"waitingTime": {
"reduce": true,
"bufferTime": 15
}
}
}
}
Response:
{
"problemId": "7f3423c2-784a-4983-b472-e14107d5a54a",
"statistic": {
"cost": 1024,
"distance": 32000,
"duration": 180,
"times": {
"driving": 3600,
"serving": 600,
"waiting": 180,
"break": 1200
}
},
"tours": [
{
"vehicleId": "7f3423c2-784a-4983-b472-e14107d5a54a",
"typeId": "7f3423c2-784a-4983-b472-e14107d5a54a",
"stops": [
{
"location": {
"lat": 52.53088,
"lng": 13.38471
},
"time": {
"arrival": "2019-07-04T00:00:00Z",
"departure": "2019-07-04T00:00:00Z"
},
"load": [
10,
5
],
"activities": [
{
"jobId": "7f3423c2-784a-4983-b472-e14107d5a54a",
"jobTag": {
"tag": "some tag"
},
"type": "delivery",
"location": {
"lat": 52.53088,
"lng": 13.38471
},
"time": {
"start": "2019-07-04T00:00:00Z",
"end": "2019-07-04T00:00:00Z"
}
}
]
}
],
"statistic": {
"cost": 1024,
"distance": 32000,
"duration": 180,
"times": {
"driving": 3600,
"serving": 600,
"waiting": 180,
"break": 1200
}
}
}
],
"unassigned": [
{
"jobId": "7f3423c2-784a-4983-b472-e14107d5a54a",
"reasons": [
{
"code": 1,
"description": "cannot serve required skill"
}
]
}
]
}

Related

Returning a single element from an array with a join in azure Cosmos SQL DB

I have a query:
SELECT c.mainColour,t AS colour
FROM c
JOIN t IN c.creatorStyleMainColours
WHERE c.creatorDefaultStyleProfile = "test"
and it returns whole of the array inside the new colour object:
[
{
"colour": {
"mainColour": "black",
"colourPairings": [
"orange",
"silver",
"gold"
]
}
}
]
I need it to just return the main colour values
how do I just select the value of the "mainColour" so its a simple array like ["black","beige","white"] from the document below
I have tried:
SELECT VALUE c.mainColour,t AS colour
FROM c
JOIN t IN c.creatorStyleMainColours
WHERE c.creatorDefaultStyleProfile = "test"
but that returns a syntax error.
Here is the full document:
{
"accountId": "59951c4d-1f0b-483b-a020",
"creatorDefaultStyleProfile": "test",
"creatorDefaultStyleGender": "Female",
"creatorStyleAccountName": "",
"creatorStyleCategory": [
{
"categoryCode": "fashion",
"categoryName": "Fashion",
"categoryMetadata": {
"occasions": [
{
"occasionCode": "casual",
"occasionName": "Casual",
"occasionTypes": [
{
"occasionCode": "out",
"occasionName": "Everyday Wear"
}
]
}
],
"season": [
{
"seasonCode": "spring",
"seasonName": "Spring"
}
]
},
"id": "fashion"
}
],
"creatorStyleDescription": "",
"creatorStyleId": "Classic_Default",
"creatorStyleImages": [
{
"styleImageUrl": "https://4965fa50-6caf-11ed-8082e.png",
"styleImageCategory": "fullsize",
"styleImageResolution": {
"width": 269.25,
"height": 359
},
"styleImagePins": [
{
"itemId": "F243906F37487C78D7EB99880142B370",
"vector": {
"x": 198.125,
"y": 44.33332824707031
}
},
{
"itemId": "9B543E0DC1B05F6E9AFD0A88285AEEF9",
"vector": {
"x": 52.791656494140625,
"y": 46.33332824707031
}
},
{
"itemId": "3E6464FC1F12E3C6E435F751438F1468",
"vector": {
"x": 120.45832824707031,
"y": 320.3333282470703
}
},
{
"itemId": "1CD6065A4C7A0BD66E44DC8A62448534",
"vector": {
"x": 115.45832824707031,
"y": 192
}
}
]
}
],
"creatorStyleItems": [
{
"creatorStyleItemId": "9B543E0DC1B05F6E9AFD0A88285AEEF9",
"ItemType": "Chest",
"creatorStyleItemName": "t-shirt",
"creatorStyleItemImages": [
{
"imageUrl": "https://images/23660493-1-white?$XXL$",
"imageCategory": "thumbnail"
}
]
},
{
"creatorStyleItemId": "F243906F37487C78D7EB99880142B370",
"ItemType": "Chest",
"creatorStyleItemName": "chunky knit cardigan",
"creatorStyleItemImages": [
{
"imageUrl": "https://images/14399002-1-black?$XXL$",
"imageCategory": "thumbnail"
}
]
},
{
"creatorStyleItemId": "1CD6065A4C7A0BD66E44DC8A62448534",
"ItemType": "Leg",
"creatorStyleItemName": " mom jeans",
"creatorStyleItemImages": [
{
"imageUrl": "https://images-blue/202501450-1-denimblack?$XXL$",
"imageCategory": "thumbnail"
}
]
},
{
"creatorStyleItemId": "3E6464FC1F12E3C6E435F751438F1468",
"ItemType": "Feet",
"creatorStyleItemName": "trainers",
"creatorStyleItemImages": [
{
"imageUrl": "https://images./203112454-1-brown?$XXL$",
"imageCategory": "thumbnail"
}
]
}
],
"creatorStyleMainColours": [
{
"mainColour": "black",
"colourPairings": [
"beige",
"grey",
"white"
]
},
{
"mainColour": "beige",
"colourPairings": [
"black",
"grey",
"white"
]
},
{
"mainColour": "white",
"colourPairings": [
"beige",
"grey",
"black"
]
}
],
"creatorStyleMerchantGroup": "test1",
"creatorStyleName": "",
"creatorStyleProfiles": [
{
"id": "",
"profileAccountId": "test1",
"profileId": "test1",
"profileIsDefault": false,
"profileName": "classic",
"profileBiometric": {
"biometricName": "",
"biometricGender": "Female",
"biometricHeight": [
],
"biometricAgeRange": [
],
"biometricHairColour": [
],
"biometricSkinColour": [
],
"biometricBodyShape": [
],
"biometricMeasurement": {
}
},
"profilePersona": {
"personaName": "",
"personaDressSense": [
],
"personaInterests": [
],
"personaStyleIcons": [
],
"personaColours": [
]
}
}
],
"creatorStyleStatus": {
"styleStatusId": "nonpublished",
"styleStatusDescription": ""
},
"id": "classicStyle1",
"_rid": "IW43AJ08x+8BAAAAAAAAAA==",
"_self": "dbs/IW43AA==/colls/IW43AJ08x+8=/docs/IW43AJ08x+8BAAAAAAAAAA==/",
"_etag": "\"97005ae1-0000-1500-0000-638523be0000\"",
"_attachments": "attachments/",
"_ts": 1669669822
}

Change Text Link to Button

I am building a new site on the Empire Shopify theme and I am trying to change a text link into a button on the dynamic featured product section.
So changing this:
Featured product with text
Into this:
Call to action the button
Can anyone advise on the best way to do this please?
Here is the section code:
{% assign product = all_products[section.settings.product] %}
{% assign onboarding = false %}
{% if product.empty? %}
{% assign onboarding = true %}
{% endif %}
<script
type="application/json"
data-section-type="dynamic-featured-product"
data-section-id="{{ section.id }}"
data-section-data
>
{
"settings": {
"cart_redirection": {{ settings.enable_cart_redirection | json }},
"money_format": {{ shop.money_format | strip_html | json }},
"gallery_video_autoplay": {{ section.settings.gallery_video_autoplay | json }},
"gallery_video_looping": {{ section.settings.gallery_video_looping | json }},
"gallery_thumbnail_position": {{ section.settings.gallery_thumbnail_position | json }},
"gallery_hover_zoom": {{ section.settings.gallery_hover_zoom | json }},
"gallery_click_to_zoom": "disabled",
"swatches_enable": {{ settings.swatches_enable | json }},
"sold_out_options": {{ settings.sold_out_options | json }},
"select_first_available_variant": {{ settings.select_first_available_variant | json }}
},
"context": {
"select_variant": {{ 'product.general.select_variant' | t | json }},
"product_available": {{ 'product.buttons.add_to_cart' | t | json }},
"product_sold_out": {{ 'product.buttons.sold_out' | t | json }},
"product_unavailable": {{ 'product.buttons.unavailable' | t | json }},
"product_preorder": {{ 'product.buttons.pre_order' | t | json }}
},
"product": {% unless onboarding %}{{ product | json }}{% else %}false{% endunless} %}
}
</script>
<script type="application/pxs-animation-mapping+json">
{
"blocks": [".product-main"],
"elements": [
".product-details",
"[data-product-form-area]"
]
}
</script>
<section class="featured-product--container home-section--content" data-product-wrapper>
<div class="featured-product--inner">
{%
render 'product',
product: product,
is_product_modal: false,
is_featured_product: true,
onboarding: onboarding,
show_dynamic_checkout_button: settings.show_dynamic_checkout_button,
select_first_available_variant: settings.select_first_available_variant,
gallery_aspect_ratio: section.settings.gallery_aspect_ratio,
gallery_thumbnail_position: section.settings.gallery_thumbnail_position,
gallery_image_crop: section.settings.gallery_image_crop,
gallery_click_to_zoom: 'disabled',
gallery_hover_zoom: section.settings.gallery_hover_zoom
%}
</div>
</section>
{% schema %}
{
"name": "t:sections.featured_product.name",
"class": "featured-product--section",
"settings": [
{
"id": "product",
"type": "product",
"label": "t:sections.featured_product.product.label"
},
{
"type": "header",
"content": "t:sections.product.header_1.content"
},
{
"type": "paragraph",
"content": "t:sections.product.paragraph_1.content"
},
{
"type": "select",
"id": "gallery_aspect_ratio",
"label": "t:sections.product.gallery_aspect_ratio.label",
"options": [
{
"value": "natural",
"label": "t:sections.product.gallery_aspect_ratio.option_1"
},
{
"value": "short",
"label": "t:sections.product.gallery_aspect_ratio.option_2"
},
{
"value": "square",
"label": "t:sections.product.gallery_aspect_ratio.option_3"
},
{
"value": "tall",
"label": "t:sections.product.gallery_aspect_ratio.option_4"
}
],
"default": "natural"
},
{
"type": "checkbox",
"id": "gallery_image_crop",
"label": "t:sections.product.gallery_image_crop.label",
"info": "t:sections.product.gallery_image_crop.info",
"default": false
},
{
"id": "gallery_thumbnail_position",
"type": "select",
"label": "t:sections.product.gallery_thumbnail_position.label",
"info": "t:sections.product.gallery_thumbnail_position.info",
"options": [
{
"value": "below",
"label": "t:sections.product.gallery_thumbnail_position.option_1"
},
{
"value": "left",
"label": "t:sections.product.gallery_thumbnail_position.option_2"
}
],
"default": "below"
},
{
"type": "checkbox",
"id": "gallery_video_autoplay",
"label": "t:sections.product.gallery_video_autoplay.label",
"default": true
},
{
"type": "checkbox",
"id": "gallery_video_looping",
"label": "t:sections.product.gallery_video_looping.label",
"default": true
},
{
"id": "gallery_hover_zoom",
"type": "select",
"label": "t:sections.product.gallery_hover_zoom.label",
"options": [
{
"value": "disabled",
"label": "t:sections.product.gallery_hover_zoom.option_1"
},
{
"value": "replace",
"label": "t:sections.product.gallery_hover_zoom.option_2"
}
],
"info": "t:sections.product.gallery_hover_zoom.info",
"default": "disabled"
},
{
"type": "paragraph",
"content": "t:sections.product.paragraph_2.content"
}
],
"blocks": [
{
"type": "#app"
},
{
"type": "collapsible-tab",
"name": "t:sections.product.blocks.collapsible_tab.name",
"settings": [
{
"type": "text",
"id": "collapsible_tab_heading",
"label": "t:sections.product.blocks.collapsible_tab.collapsible_tab_heading.label",
"default": "Collapsible tab"
},
{
"type": "richtext",
"id": "collapsible_tab_text",
"label": "t:sections.product.blocks.collapsible_tab.collapsible_tab_text.label",
"default": "<p>Use this text to share information about your product.</p>"
}
]
},
{
"type": "custom-liquid",
"name": "t:sections.product.blocks.custom_liquid.name",
"limit": 1,
"settings": [
{
"type": "liquid",
"id": "custom_liquid",
"label": "t:sections.product.blocks.custom_liquid.custom_liquid.label",
"info": "t:sections.product.blocks.custom_liquid.custom_liquid.info"
}
]
},
{
"type": "description",
"name": "t:sections.product.blocks.description.name",
"limit": 1
},
{
"type": "form",
"name": "t:sections.product.blocks.form.name",
"limit": 1,
"settings": [
{
"type": "paragraph",
"content": "t:sections.product.blocks.form.paragraph_1.content"
},
{
"type": "header",
"content": "t:sections.product.blocks.form.header_1.content"
},
{
"type": "checkbox",
"id": "enable_local_pickup",
"label": "t:sections.product.blocks.form.enable_local_pickup.label",
"info": "t:sections.product.blocks.form.enable_local_pickup.info",
"default": true
}
]
},
{
"type": "key_details",
"name": "t:sections.product.blocks.key_details.name",
"settings": [
{
"type": "select",
"id": "icon",
"label": "t:sections.product.blocks.key_details.icon.label",
"options": [
{
"value": "none",
"label": "t:sections.product.blocks.key_details.icon.option_1"
},
{
"value": "icon-award-trophy",
"label": "t:sections.product.blocks.key_details.icon.option_2"
},
{
"value": "icon-car",
"label": "t:sections.product.blocks.key_details.icon.option_3"
},
{
"value": "icon-cell-phone",
"label": "t:sections.product.blocks.key_details.icon.option_4"
},
{
"value": "icon-chat",
"label": "t:sections.product.blocks.key_details.icon.option_5"
},
{
"value": "icon-chat-alternate",
"label": "t:sections.product.blocks.key_details.icon.option_6"
},
{
"value": "icon-credit-card",
"label": "t:sections.product.blocks.key_details.icon.option_7"
},
{
"value": "icon-delivery",
"label": "t:sections.product.blocks.key_details.icon.option_8"
},
{
"value": "icon-delivery-cart",
"label": "t:sections.product.blocks.key_details.icon.option_9"
},
{
"value": "icon-delivery-door",
"label": "t:sections.product.blocks.key_details.icon.option_10"
},
{
"value": "icon-delivery-package",
"label": "t:sections.product.blocks.key_details.icon.option_11"
},
{
"value": "icon-email",
"label": "t:sections.product.blocks.key_details.icon.option_12"
},
{
"value": "icon-envelope",
"label": "t:sections.product.blocks.key_details.icon.option_13"
},
{
"value": "icon-gift-card",
"label": "t:sections.product.blocks.key_details.icon.option_14"
},
{
"value": "icon-heart",
"label": "t:sections.product.blocks.key_details.icon.option_15"
},
{
"value": "icon-information",
"label": "t:sections.product.blocks.key_details.icon.option_16"
},
{
"value": "icon-label-tag",
"label": "t:sections.product.blocks.key_details.icon.option_17"
},
{
"value": "icon-lock",
"label": "t:sections.product.blocks.key_details.icon.option_18"
},
{
"value": "icon-number-14",
"label": "t:sections.product.blocks.key_details.icon.option_19"
},
{
"value": "icon-number-24",
"label": "t:sections.product.blocks.key_details.icon.option_20"
},
{
"value": "icon-number-30",
"label": "t:sections.product.blocks.key_details.icon.option_21"
},
{
"value": "icon-people",
"label": "t:sections.product.blocks.key_details.icon.option_22"
},
{
"value": "icon-pin",
"label": "t:sections.product.blocks.key_details.icon.option_23"
},
{
"value": "icon-question-mark",
"label": "t:sections.product.blocks.key_details.icon.option_24"
},
{
"value": "icon-rating-five-star",
"label": "t:sections.product.blocks.key_details.icon.option_25"
},
{
"value": "icon-rating-star",
"label": "t:sections.product.blocks.key_details.icon.option_26"
},
{
"value": "icon-smile",
"label": "t:sections.product.blocks.key_details.icon.option_27"
},
{
"value": "icon-store",
"label": "t:sections.product.blocks.key_details.icon.option_28"
},
{
"value": "icon-tape-measure",
"label": "t:sections.product.blocks.key_details.icon.option_29"
},
{
"value": "icon-thumbs-up",
"label": "t:sections.product.blocks.key_details.icon.option_30"
},
{
"value": "icon-transfer",
"label": "t:sections.product.blocks.key_details.icon.option_31"
}
],
"default": "icon-delivery-package"
},
{
"type": "image_picker",
"id": "image",
"label": "t:sections.product.blocks.key_details.image.label",
"info": "t:sections.product.blocks.key_details.image.info"
},
{
"type": "text",
"id": "title",
"label": "t:sections.product.blocks.key_details.title.label",
"default": "Delivery time"
},
{
"type": "richtext",
"id": "text",
"label": "t:sections.product.blocks.key_details.text.label",
"default": "<p>Use this text to share information about your product and policies with your customers.</p>"
},
{
"type": "color",
"id": "text_color",
"label": "t:sections.product.blocks.key_details.text_color.label",
"default": "#1D1D1D"
},
{
"type": "color",
"id": "icon_color",
"label": "t:sections.product.blocks.key_details.icon_color.label",
"default": "#1D1D1D"
},
{
"type": "color",
"id": "background_color",
"label": "t:sections.product.blocks.key_details.background_color.label",
"default": "#f5f3ed"
}
]
},
{
"type": "inventory_status",
"name": "t:sections.product.blocks.inventory_status.name",
"limit": 1,
"settings": [
{
"type": "radio",
"id": "inventory_display",
"label": "t:sections.product.blocks.inventory_status.inventory_display.label",
"info": "t:sections.product.blocks.inventory_status.inventory_display.info",
"options": [
{
"value": "all_products",
"label": "t:sections.product.blocks.inventory_status.inventory_display.option_1"
},
{
"value": "low_stock_threshold",
"label": "t:sections.product.blocks.inventory_status.inventory_display.option_2"
},
{
"value": "low_stock_only",
"label": "t:sections.product.blocks.inventory_status.inventory_display.option_3"
},
{
"value": "hidden",
"label": "t:sections.product.blocks.inventory_status.inventory_display.option_4"
}
],
"default": "hidden"
},
{
"type": "checkbox",
"id": "inventory_transfer_notice",
"label": "t:sections.product.blocks.inventory_status.inventory_transfer_notice.label",
"info": "t:sections.product.blocks.inventory_status.inventory_transfer_notice.info",
"default": true
}
]
},
{
"type": "price",
"name": "t:sections.product.blocks.price.name",
"limit": 1
},
{
"type": "rating",
"name": "t:sections.product.blocks.product_rating.name",
"limit": 1,
"settings": [
{
"type": "paragraph",
"content": "t:sections.product.blocks.product_rating.paragraph_1.content"
}
]
},
{
"type": "share",
"name": "t:sections.product.blocks.share.name",
"limit": 1
},
{
"type": "tabs",
"name": "t:sections.product.blocks.tabs.name",
"limit": 1,
"settings": [
{
"type": "checkbox",
"id": "show_product_description",
"label": "t:sections.product.blocks.tabs.show_product_description.label",
"default": false
},
{
"type": "checkbox",
"id": "show_tabs_below_product_gallery",
"label": "t:sections.product.blocks.tabs.show_tabs_below_product_gallery.label",
"info": "t:sections.product.blocks.tabs.show_tabs_below_product_gallery.info",
"default": false
},
{
"type": "header",
"content": "t:sections.product.blocks.tabs.header_1.content"
},
{
"type": "text",
"id": "tab_heading_1",
"label": "t:sections.product.blocks.tabs.tab_heading_1.label",
"default": "Tab 1"
},
{
"type": "richtext",
"id": "tab_text_1",
"label": "t:sections.product.blocks.tabs.tab_text_1.label",
"default": "<p>Use this text to share information about your product.</p>"
},
{
"type": "header",
"content": "t:sections.product.blocks.tabs.header_2.content"
},
{
"type": "text",
"id": "tab_heading_2",
"label": "t:sections.product.blocks.tabs.tab_heading_2.label",
"default": "Tab 2"
},
{
"type": "richtext",
"id": "tab_text_2",
"label": "t:sections.product.blocks.tabs.tab_text_2.label",
"default": "<p>Use this text to share information about your product.</p>"
},
{
"type": "header",
"content": "t:sections.product.blocks.tabs.header_3.content"
},
{
"type": "text",
"id": "tab_heading_3",
"label": "t:sections.product.blocks.tabs.tab_heading_3.label",
"default": "Tab 3"
},
{
"type": "richtext",
"id": "tab_text_3",
"label": "t:sections.product.blocks.tabs.tab_text_3.label",
"default": "<p>Use this text to share information about your product.</p>"
}
]
},
{
"type": "sku",
"name": "t:sections.product.blocks.sku.name",
"limit": 1
},
{
"type": "text",
"name": "t:sections.product.blocks.text.name",
"settings": [
{
"type": "richtext",
"id": "text",
"label": "t:sections.product.blocks.text.text.label",
"default": "<p>Text block</p>"
}
]
},
{
"type": "title",
"name": "t:sections.product.blocks.title.name",
"limit": 1
},
{
"type": "vendor",
"name": "t:sections.product.blocks.vendor.name",
"limit": 1
},
{
"type": "view-product-link",
"name": "t:sections.featured_product.blocks.view_product_link.name",
"limit": 1,
"settings": [
{
"type": "text",
"id": "text",
"label": "t:sections.featured_product.blocks.view_product_link.text.label",
"default": "View full details"
}
]
}
],
"presets": [
{
"name": "t:sections.featured_product.presets.featured_product.name",
"category": "t:sections.featured_product.presets.featured_product.category",
"blocks": [
{
"type": "title"
},
{
"type": "price"
},
{
"type": "view-product-link"
}
]
}
]
}
{% endschema %}
It is just styling issue. You can customize that text link to be like a button using some CSS codes in your original section template file.
just for an example;
.btn_viewWallGuide {
padding: 30px 70px;
background-color: #F04F37;
border-radius: 6px;
color: white;
font-weight: 700;
font-size: 28px;
font-family: system-ui;
text-decoration: none;
}
<a class="btn_viewWallGuide" href="{{ section.settings.your_schema_link_id }}">View Wall Guide</a>

ELASTICSEARCH - Aggregations not working on string field

Elastic search extraction query is returning expected results in hints section of output but aggregation on field returning empty response
output without aggregation
{
"_shards": {
"total": 45,
"failed": 0,
"successful": 45,
"skipped": 0
},
"hits": {
"hits": [
{
"_index": "logstash-wander-2022.08.17",
"_type": "fluentd",
"_source": {
"outboundResponseStatus": "SERVICE_UNAVAILABLE"
},
"_id": "Y2NlNjkzZmEtNjZlMi00NWY4LTllNWUtOWZmNWRhMjRkMzA3",
"sort": [
1660695790244
],
"_score": null
},
{
"_index": "logstash-wander-2022.08.17",
"_type": "fluentd",
"_source": {
"outboundResponseStatus": "CONFLICT"
},
"_id": "OWNmZTFiOWEtYWQ2Mi00OGViLWFmY2EtMGQ4ZDg1NzRiYWNk",
"sort": [
1660695781810
],
"_score": null
}
],
"total": 25,
"max_score": null
},
"took": 506,
"timed_out": false
}
But adding below aggregation along with query returning empty response
"aggregations": {
"outboundResponseStatus": {
"significant_terms": {
"field": "outboundResponseStatus",
"keyed": true
}
}
}
Below is the query
{
"size": 500,
"query": {
"bool": {
"must": [
{
"query_string": {
"query": "search string",
"default_field": "*",
"fields": [],
"type": "best_fields",
"default_operator": "or",
"max_determinized_states": 10000,
"enable_position_increments": true,
"fuzziness": "AUTO",
"fuzzy_prefix_length": 0,
"fuzzy_max_expansions": 50,
"phrase_slop": 0,
"analyze_wildcard": true,
"escape": false,
"auto_generate_synonyms_phrase_query": true,
"fuzzy_transpositions": true,
"boost": 1
}
},
{
"match_phrase": {
"message": {
"query": "search string",
"slop": 0,
"zero_terms_query": "NONE",
"boost": 1
}
}
},
{
"range": {
"#timestamp": {
"from": "now-10m",
"to": "now",
"include_lower": true,
"include_upper": true,
"format": "epoch_millis",
"boost": 1
}
}
}
],
"adjust_pure_negative": true,
"boost": 1
}
},
"version": true,
"_source": {
"includes": [
"outboundResponseStatus",
"outboundUri",
"message"
],
"excludes": []
},
"stored_fields": "*",
"script_fields": {},
"sort": [
{
"#timestamp": {
"order": "desc",
"unmapped_type": "boolean"
}
}
]
}
How to get aggregations based on field in hints results?

Nested JSON of Google API to table in R

Can you help me please, I am trying to convert the JSON that returns a google API to a tabular format (dataframe) to export to a CSV or other tabular type.
I have attached a screenshot of the expected result
I have seen several examples on the internet but do not use a nested JSON as the result of Google apis.
I greatly appreciate your help and time.
{
"html_attributions": [],
"results": [
{
"geometry": {
"location": {
"lat": 13.6945775,
"lng": -89.2110781
},
"viewport": {
"northeast": {
"lat": 13.6959703302915,
"lng": -89.2097351697085
},
"southwest": {
"lat": 13.6932723697085,
"lng": -89.2124331302915
}
}
},
"icon": "https://maps.gstatic.com/mapfiles/place_api/icons/shopping-71.png",
"id": "373c45e64407f28195415a8911015cc8020cea46",
"name": "Tienda Los Angeles",
"opening_hours": {
"open_now": true
},
"place_id": "ChIJVznGtFkwY48RSFWKZ3a5eBs",
"plus_code": {
"compound_code": "MQVQ+RH San Salvador, El Salvador",
"global_code": "765GMQVQ+RH"
},
"rating": 4,
"reference": "ChIJVznGtFkwY48RSFWKZ3a5eBs",
"scope": "GOOGLE",
"types": [
"convenience_store",
"food",
"store",
"point_of_interest",
"establishment"
],
"user_ratings_total": 3,
"vicinity": "Antigua Calle Ferrocarril 16, San Salvador"
},
{
"geometry": {
"location": {
"lat": 13.7007156,
"lng": -89.224008
},
"viewport": {
"northeast": {
"lat": 13.7021389802915,
"lng": -89.2226825697085
},
"southwest": {
"lat": 13.6994410197085,
"lng": -89.2253805302915
}
}
},
"icon": "https://maps.gstatic.com/mapfiles/place_api/icons/shopping-71.png",
"id": "e4ffa86f54d8f8c24b661cbe509bf625ac8a86be",
"name": "Ilusión de San Salvador",
"opening_hours": {
"open_now": true
},
"photos": [
{
"height": 250,
"html_attributions": [
"Ilusión de San Salvador"
],
"photo_reference": "CmRaAAAAXTRH8t7LE1rAUD7SOmPZ7Em-pCTUhID6hLUjlm4p6AE8FMdxUsrl8d8V3rtrrnmuAdBPs-Bvo4YAG3W5TMDmo5OjCzYKDIsO-3d0tkNKegT0VXjnwcjEUbHSAH7nA6k5EhDglO5d6tn1k4L0XP_xIDPkGhRhGdyA98DLRTpTj4x2B46V-5bsCw",
"width": 250
}
],
"place_id": "ChIJ5zsWbUEwY48Re_44N6JVEX0",
"plus_code": {
"compound_code": "PQ2G+79 San Salvador, El Salvador",
"global_code": "765GPQ2G+79"
},
"rating": 4.5,
"reference": "ChIJ5zsWbUEwY48Re_44N6JVEX0",
"scope": "GOOGLE",
"types": [
"convenience_store",
"clothing_store",
"food",
"store",
"point_of_interest",
"establishment"
],
"user_ratings_total": 13,
"vicinity": "Col Escalón, Alameda Franklin Delano Roosevelt No 3425"
}
],
"status": "OK"
}

How to I post this video?

I have tried to post this video to our word press site using the same approach via youtube approach and code. How do get this to work? Thanks.
{
"talk": {
"id": 1,
"name": "Al Gore: Averting the climate crisis",
"description": "With the same humor and humanity he exuded in <em>An Inconvenient Truth,<\/em> Al Gore spells out 15 ways that individuals can address climate change immediately, from buying a hybrid to inventing a new, hotter \"brand name\" for global warming.",
"slug": "al_gore_on_averting_climate_crisis",
"recorded_at": "2006-02-25 00:00:00",
"published_at": "2006-06-27 00:11:00",
"updated_at": "2014-07-03 20:42:24",
"viewed_count": 2459958,
"emailed_count": 720,
"commented_count": 239,
"event": {
"id": 3,
"name": "TED2006"
},
"images": [{
"image": {
"size": "113x85",
"url": "http:\/\/images.ted.com\/images\/ted\/205_113x85.jpg"
}
}, {
"image": {
"size": "240x180",
"url": "http:\/\/images.ted.com\/images\/ted\/205_240x180.jpg"
}
}, {
"image": {
"size": "480x360",
"url": "http:\/\/images.ted.com\/images\/ted\/205_480x360.jpg"
}
}],
"image_16x9": false,
"media": {
"internal": {
"64k": {
"uri": "http:\/\/download.ted.com\/talks\/AlGore_2006-64k.mp4?apikey=16c11a6054506983485e20e837125c1da6c5a46a"
},
"uri": "http:\/\/download.ted.com\/talks\/AlGore_2006-180k.mp4?apikey=16c11a6054506983485e20e837125c1da6c5a46a"
"180k": {
},
"320k": {
"uri": "http:\/\/download.ted.com\/talks\/AlGore_2006-320k.mp4?apikey=16c11a6054506983485e20e837125c1da6c5a46a"
},
"450k": {
"uri": "http:\/\/download.ted.com\/talks\/AlGore_2006-450k.mp4?apikey=16c11a6054506983485e20e837125c1da6c5a46a"
},
"600k": {
"uri": "http:\/\/download.ted.com\/talks\/AlGore_2006-600k.mp4?apikey=16c11a6054506983485e20e837125c1da6c5a46a"
},
"950k": {
"uri": "http:\/\/download.ted.com\/talks\/AlGore_2006-950k.mp4?apikey=16c11a6054506983485e20e837125c1da6c5a46a"
},
"podcast-light": {
"uri": "http:\/\/download.ted.com\/talks\/AlGore_2006-light.mp4?apikey=16c11a6054506983485e20e837125c1da6c5a46a"
},
"podcast-regular": {
"uri": "http:\/\/download.ted.com\/talks\/AlGore_2006.mp4?apikey=16c11a6054506983485e20e837125c1da6c5a46a"
},
"podcast-high": {
"uri": "http:\/\/download.ted.com\/talks\/AlGore_2006-480p.mp4?apikey=16c11a6054506983485e20e837125c1da6c5a46a"
},
"audio-podcast": {
"uri": "http:\/\/download.ted.com\/talks\/AlGore_2006.mp3?apikey=16c11a6054506983485e20e837125c1da6c5a46a"
},
"podcast-low-en": {
"uri": "http:\/\/download.ted.com\/talks\/AlGore_2006-low-en.mp4?apikey=16c11a6054506983485e20e837125c1da6c5a46a"
},
"podcast-high-en": {
"uri": "http:\/\/download.ted.com\/talks\/AlGore_2006-480p-en.mp4?apikey=16c11a6054506983485e20e837125c1da6c5a46a"
}
}
},
"languages": {
"sq": {
"name": "Albanian"
},
"ar": {
"name": "Arabic"
},
"bg": {
"name": "Bulgarian"
},
"zh-cn": {
"name": "Chinese, Simplified"
},
"zh-tw": {
"name": "Chinese, Traditional"
},
"hr": {
"name": "Croatian"
},
"nl": {
"name": "Dutch"
},
"en": {
"name": "English",
"native": true
},
"fr": {
"name": "French"
},
"fr-ca": {
"name": "French, Canadian"
},
"gl": {
"name": "Galician"
},
"de": {
"name": "German"
},
"el": {
"name": "Greek"
},
"gu": {
"name": "Gujarati"
},
"he": {
"name": "Hebrew"
},
"hi": {
"name": "Hindi"
},
"hu": {
"name": "Hungarian"
},
"id": {
"name": "Indonesian"
},
"it": {
"name": "Italian"
},
"ja": {
"name": "Japanese"
},
"ko": {
"name": "Korean"
},
"lv": {
"name": "Latvian"
},
"lt": {
"name": "Lithuanian"
},
"rup": {
"name": "Macedo"
},
"mk": {
"name": "Macedonian"
},
"fa": {
"name": "Persian"
},
"pl": {
"name": "Polish"
},
"pt": {
"name": "Portuguese"
},
"pt-br": {
"name": "Portuguese, Brazilian"
},
"ro": {
"name": "Romanian"
},
"ru": {
"name": "Russian"
},
"sr": {
"name": "Serbian"
},
"sk": {
"name": "Slovak"
},
"sl": {
"name": "Slovenian"
},
"es": {
"name": "Spanish"
},
"sw": {
"name": "Swahili"
},
"sv": {
"name": "Swedish"
},
"tl": {
"name": "Tagalog"
},
"th": {
"name": "Thai"
},
"tr": {
"name": "Turkish"
},
"uk": {
"name": "Ukrainian"
},
"ur": {
"name": "Urdu"
}
},
"tags": [{
"tag": "alternative energy"
}, {
"tag": "cars"
}, {
"tag": "climate change"
}, {
"tag": "culture"
}, {
"tag": "environment"
}, {
"tag": "global issues"
}, {
"tag": "politics"
}, {
"tag": "science"
}, {
"tag": "sustainability"
}, {
"tag": "technology"
}],
"themes": [{
"theme": {
"id": 7,
"name": "Presentation Innovation"
}
}, {
"theme": {
"id": 15,
"name": "A Greener Future?"
}
}, {
"theme": {
"id": 23,
"name": "Bold Predictions, Stern Warnings"
}
}, {
"theme": {
"id": 25,
"name": "Design That Matters"
}
}, {
"theme": {
"id": 28,
"name": "Not Business as Usual"
}
}, {
"theme": {
"id": 30,
"name": "Technology, History and Destiny"
}
}],
"speakers": [{
"speaker": {
"id": 2,
"name": "Al Gore"
}
}],
"ratings": [{
"rating": {
"id": 7,
"name": "Funny",
"count": 439
}
}, {
"rating": {
"id": 3,
"name": "Courageous",
"count": 122
}
}, {
"rating": {
"id": 2,
"name": "Confusing",
"count": 45
}
}, {
"rating": {
"id": 1,
"name": "Beautiful",
"count": 46
}
}, {
"rating": {
"id": 21,
"name": "Unconvincing",
"count": 209
}
}, {
"rating": {
"id": 11,
"name": "Longwinded",
"count": 90
}
}, {
"rating": {
"id": 8,
"name": "Informative",
"count": 361
}
}, {
"rating": {
"id": 10,
"name": "Inspiring",
"count": 337
}
}, {
"rating": {
"id": 22,
"name": "Fascinating",
"count": 91
}
}, {
"rating": {
"id": 9,
"name": "Ingenious",
"count": 49
}
}, {
"rating": {
"id": 24,
"name": "Persuasive",
"count": 227
}
}, {
"rating": {
"id": 23,
"name": "Jaw-dropping",
"count": 84
}
}, {
"rating": {
"id": 26,
"name": "Obnoxious",
"count": 96
}
}, {
"rating": {
"id": 25,
"name": "OK",
"count": 139
}
}]
}
}
What you've posted is in JSON format. For WordPress, your best bet is to either use an embed link in the HTML tab of the WYSIWYG -- or just use the built in media library tool for embedding any type of media. This explains it reasonably well enough. http://youtu.be/aejMIghQKYo?t=2m4s

Resources