How to specify product IDs in Google Search "application/ld+json" script without getting "Missing product ID (optional)" - seo

How can I reduce warning of "Missing product ID (optional)" on "application/ld+json" script in google search console?
Below My sample JSON-LD code
<script type="application/ld+json">
{
"#context": "http://schema.org/",
"#type": "Product",
"name": "done product Name here",
"url": "done product url here",
"image": [
"done image url here"
],
"description": "done description here",
"sku": "H100000001",
"productID" : "9876543210", // Added like this type behaviour
"brand": {
"#type": "Thing",
"name": "cosmetics"
},
"offers": [{
"#type" : "Offer",
"sku": "H100000002",
"availability" : "http://schema.org/InStock",
"price" : "26.0",
"priceCurrency" : "USD",
"url" : "product url"
},
{
"#type" : "Offer",
"sku": "H100000003",
"availability" : "http://schema.org/InStock",
"price" : "26.0",
"priceCurrency" : "USD",
"url" : "product url"
},
{
"#type" : "Offer",
"sku": "H099020004",
"availability" : "http://schema.org/InStock",
"price" : "26.0",
"priceCurrency" : "USD",
"url" : "product url"
}]
}
</script>
I have tried different variables of product id below
1. "productID" : "9876543210",
2. "productID" : "isbn:9876543210",
3. "product-id" : "isbn:9876543210",
4. "product-id" : "9876543210",
but error still getting.
Can anyone help how can I solve the issue of Missing product ID (optional)" on Google Search Console?
Which behavior is correct for set product id in ld+json?

The message from Google is not very clear... what it's looking for is one of product IDs from https://schema.org/Product (gtin13, etc.). I was getting the same error after adding ProductID, but once I replaced ProductID with the gtinxxx values, the warning went away.

Related

DocuSign API explorer - does not recognize tabs for Signature

I'm using the DocuSign API explorer to test the use of tabs for signature. I've created a Word document with a placeholder called /InternSignatureAnchor/ enter image description here
And the JSON request payload looks like this:
{
"documents": [
{
"documentBase64": "<Base64BytesHere>",
"documentId": "123456",
"fileExtension": "DOCX",
"name": "Freelance Contract"
}
],
"emailSubject": "Please Sign Contracts 3",
"recipients": {
"signers": [
{
"email": "dummy_email123#mmmm.mmm",
"name": "Dummy Recipient 1",
"recipientId": "1",
"roleName": "Internal Signatory",
"routingOrder": "1",
"tabs": {
"signHereTabs": [
{
"documentId": "123456",
"pageNumber": "1",
"tabLabel": "/InternSignatureAnchor/",
"xPosition": "0",
"yPosition": "36"
}
]
}
},
{
"email": "dummy_email321#mmmmm.mmm",
"name": "Dummy recipient 2",
"recipientId": "2",
"roleName": "External Signatory",
"routingOrder": "2"
}
]
},
"status": "sent"
}
When the signatory opens the document to sign, the "Sign" enter image description here
is not placed at the placeholder /InternSignatureAnchor/. When I use the Autoplace feature in DocuSign itself, it does work.
Anyone an idea?
Thanks in advance.
The "tagLabel" will just add a label to a tag. To use AutoTagging you'd need to use a json like below:
"tabs": {
"signHereTabs": [{
"anchorString": "Please Sign Here",
"anchorXOffset": "1",
"anchorYOffset": "0",
"anchorIgnoreIfNotPresent": "false",
"anchorUnits": "inches"
}]
}
I believe API explorer does not show the fields for auto tagging currently - so you'd need to perhaps use Postman to play around with this feature.

how to create and pass more or less json payload in karate at runtime

Sometimes I have to pass following payload
{
"code": "hhhh",
"name": "NDS coupon Testing",
"description": "NDS couopn testing via postman",
"status": "ACTIVE",
"comments": null,
"rules": {
"AND":[{
"rule":{
"operator" : "EQ",
"status" : "ACTIVE",
"attribute_name" : "HOTEL_ID",
"attribute_value" : "12744",
"attribute_value_type" : "INTEGER"
}
}]
}
}
And sometimes following payload
{
"code": "hhhh",
"name": "NDS coupon Testing",
"description": "NDS couopn testing via postman",
"status": "ACTIVE",
"comments": null,
"rules": {
"AND":[{
"rule":{
"operator" : "EQ",
"status" : "ACTIVE",
"attribute_name" : "HOTEL_ID",
"attribute_value" : "12744",
"attribute_value_type" : "INTEGER"
}
}
{
"AND" : [{"rule" : {
"status" : "ACTIVE",
"operator" : "EQUALS_LT"
"attribute_name" : "checkout",
"attribute_value" : "2018-12-31T00:00:00-05:30",
"attribute_value_type" : "DATE_TIME"
}
},]
}
}
and my framework structure is
payload.json which has default payload. Now in my feature file I load payload.json set values which I want to update , but how to add / remove some part of json at runtime ?
There are multiple ways to do this. For further reading I suggest the following sections:
Embedded Expressions
Remove if Null
Conditional Logic
Set and Remove
And it would have been really nice if you had taken the time to ensure your JSON is well-formed. Anyway.
* def json =
"""
{
"code": "hhhh",
"name": "NDS coupon Testing",
"description": "NDS couopn testing via postman",
"status": "ACTIVE",
"comments": null,
"rules": {
"AND": [
{
"rule": {
"operator": "EQ",
"status": "ACTIVE",
"attribute_name": "HOTEL_ID",
"attribute_value": "12744",
"attribute_value_type": "INTEGER"
}
},
{
"rule": {
"status": "ACTIVE",
"operator": "EQUALS_LT",
"attribute_name": "checkout",
"attribute_value": "2018-12-31T00:00:00-05:30",
"attribute_value_type": "DATE_TIME"
}
}
]
}
}
"""
* eval if (true) karate.remove('json', '$.rules.AND[1]')
* print json

Dynamic object key to display *ngFor in Nativescript with Angular

I have the dataset which has derived from the group by product name as below. I need to iterate the array of object and display the product name with all the size of the product.
Sample dataset
[ {
"TEST 1": [
{
"content_id": "88282",
"product_name": "TEST 1",
"price": "36.00",
"size" : "XL"
},
{
"content_id": "88283",
"product_name": "TEST 1",
"price": "37.00",
"size" : "XXL"
}
}],
{
"TEST 2": [
{
"content_id": "882821",
"product_name": "TEST 2",
"price": "36.00",
"size" : "XL"
},
{
"content_id": "882832",
"product_name": "TEST 2",
"price": "37.00",
"size" : "XXL"
}]
]
I need to iterate the above result and need to display as Product name with all sizes such as "TEST 1 (XL XXL ) and TEST 2 (XL XXL)
What I am trying is
<----- need to display here --------->
You can use Object.keys() to get keys or use foreach() to iterate json.
E.g.
const object1 = {"data":
[ { "TEST 1": [ {
"content_id": "88282",
"product_name": "TEST 1",
"price": "36.00",
"size" : "XL"
}, {
"content_id": "88283",
"product_name": "TEST 1",
"price": "37.00",
"size" : "XXL"
}
]
}
]
};
object1[Object.keys(object1)[0]].forEach(function(element) {
console.log(element);
});

How to create a bug using zoho API via postman?

I am working on Zoho API. Using postman I want to create/issue a bug in the system. For this, I am looking into Zoho Bug API. For creating a bug below are the request parameters list in the link.
Create a Bug
POST /portal/[PORTALID]/projects/[PROJECTID]/bugs/
Creates a bug.
Request Parameters
title* String Name of the bug.
description String Description of the bug.
assignee Long Assignee for the bug.
flag String Bug flag must be Internal or External.
classification_id Long Classification ID of the project.
milestone_id Long Milestone ID of the project.
due_date String [MM-DD-YYYY] Due date of the bug.
module_id Long Module ID of the project.
severity_id Long Severity ID of the project.
reproducible_id Long Reproducible ID of the project.
affectedmile_id Long Milestone ID of the project.
bug_followers Long Follower ID of the user.
uploaddoc File The maximum size to upload a file is 128 MB.
Custom Fields
CHAR1 - CHAR12 String Any text type of custom fields with string or picklist values.
LONG1 - LONG4 Long Numeric type of custom field.
DATE1 - DATE4 String [MM -DD-YYYY] Bug custom field in date format.
Sample Response
Status: 201 Created
Content Type: application/json;charset=utf-8
{
"bugs": [{
"id": 170876000001851001,
"key": "543",
"project": {
"id": 170876000000147021
},
"flag": "Internal",
"title": "UI issue in Status text box",
"reporter_id": "2060758",
"reported_person": "Patricia Boyle",
"created_time": "05-27-2014 08:38 AM",
"created_time_long": 1401188920000,
"assignee_name": "Not Assigned",
"classification": {
"id": 170876000000133041,
"type": "Feature(New)"
},
"severity": {
"id": 170876000000065005,
"type": "Major"
},
"status": {
"id": 170876000001077429,
"type": "known limitation"
},
"closed": false,
"reproducible": {
"id": 170876000000133005,
"type": "Always"
},
"module": {
"id": 170876000000494013,
"name": "ERP Phase I"
},
"link": {
"self": {
"url": "https://projectsapi.zoho.com/restapi/portal/2063927/projects/
170876000000147021/bugs/170876000001851001/"
},
"timesheet": {
"url": "https://projectsapi.zoho.com/restapi/portal/2063927/projects/
170876000000147021/bugs/170876000001851001/logs/"
}
}
}]
}
What I am doing
My request param
https://projectsapi.zoho.com/restapi/portal/[PORTALID]/projects/[PROJECTID]/bugs/
Key
`Authorization: myKey`
`Content Type: application/json`
In body
[{
"title": "My First Bug",
"description" :"This is my first bug",
"assignee" : "engr.usman" ,
"flag": "internal",
"classification_id": "1139168000000297069",
"milestone_id": "",
"due_date": "02-15-2018",
"module_id" : "1139168000000019372",
"severity_id" : "1139168000000007003",
"reproducible_id" : "1139168000000017069",
"status_id" :"1139168000000007045",
"resolution": "",
"affectedmile_id" : "",
"customfields": [
{
"column_name": "LONG1",
"label_name": "MSN#",
"value": "2999000190"
},
{
"column_name": "CHAR1",
"label_name": "Circle-Division-SubDivision",
"value": "Hyderabad - Latifabad - Tando Jam"
},
{
"column_name": "CHAR3",
"label_name": "LCD Indication",
"value": "S7"
},
{
"column_name": "CHAR2",
"label_name": "Reference #",
"value": "28371430034961U"
}
],
"uploaddoc" : [""]
}]
Response
{
"error": {
"code": 6831,
"message": "Input Parameter Missing"
}
}
Update 1
So just for testing it again. I have tried to send only mandatory and by default fields.
[{
"title": "My First Bug",
"flag": "internal",
"classification_id": "1139168000000297069",
"module_id" : "1139168000000019372",
"severity_id" : "1139168000000007003",
"customfields": [
{
"column_name": "CHAR2",
"label_name": "Reference #",
"value": "28371430034961U"
}
]
}]
But again I am getting same error Input Parameter Missing
I don't know why this error is generating. As there is no method of sending a request in the link.
Any help would be highly appreciated.

How to place an order using Magento2 API?

I am looking for the complete "happy path" to place an order using Magento2's REST API. So far these are all the steps I have followed. What else am I missing?
Create a user: [POST] /rest/V1/customers
Log In (create a token): [POST] /rest/V1/integration/customer/token
Get Product Categories for navigation: [GET] /rest/V1/categories
Get Products:
4.1 Get Category Products: [GET] /rest/V1/categories/{category_id}/products
4.2 Or search for a product: [GET] /rest/V1/products
Create a cart: [POST] /rest/V1/carts/mine
Add items to cart: [POST] /rest/V1/carts/mine/items
Get cart payment information [GET] /rest/V1/carts/mine/payment-information
...
What other things do I have to do to place the order?
create empty cart
url : http://www.xxxxxx.com/rest/V1/carts/mine
call: post
response: cartID eg: 4290
Add item to the cart
url : http://www.xxxxxx.com/rest/V1/carts/mine/items
body:
{"cartItem":{
"sku":"JFCO00017","qty":1,"name":"Devil May Cry III 3 Dante Cosplay Costume","price":81.55,"product_type":"simple","quote_id":"4290","product_option":{"extension_attributes":{"custom_options":[{"option_id":"thumbnail","option_value":"\/d\/e\/devilmaycryiii3dantecosplay_1_.jpg"},{"option_id":"color_2","option_value":"Red"},{"option_id":"google_size","option_value":"xxs"}]}}}
}
Add billling info
url : http://www.xxxxxx.com/rest/V1/carts/mine/billing-address
body:
{
"address": {
"city": "noida",
"company": "iprag",
"countryId": "IN",
"email": "manish+2#gmail.com",
"firstname": "Manish",
"lastname": "Kumar",
"postcode": "201301",
"region": "UP",
"saveInAddressBook": 1,
"street": ["D-84"],
"telephone": "8802xxxx90"
},
"useForShipping": true
}
get shipping-methods
url : http://www.xxxxxx.com/rest/V1/carts/mine/shipping-methods
{
"carrier_code": "flatrate",
"method_code": "flatrate",
"carrier_title": "Flat Rate",
"method_title": "Fixed",
"amount": 10,
"base_amount": 10,
"available": true,
"error_message": "",
"price_excl_tax": 10,
"price_incl_tax": 10
}
add shipping info
url : http://www.xxxxxx.com/rest/V1/carts/mine/shipping-information
body:
{
"addressInformation": {
"billingAddress": {
"city": "noida",
"company": "iprag",
"email": "nkn#gmail.com",
"firstname": "Manish",
"lastname": "Kumar",
"postcode": "335001",
"region": "UP",
"street": ["D-84"],
"telephone": "9413433217"
},
"shippingAddress": {
"city": "noida",
"company": "iprag",
"email": "nkn#gmail.com",
"firstname": "Manish",
"lastname": "Kumar",
"postcode": "335001",
"region": "UP",
"street": ["D-84"],
"telephone": "9413433217"
},
"shippingCarrierCode": "flatrate",
"shippingMethodCode": "flatrate"
}
}
response: payment method and cart detail
Order place
URL : http://www.xxxxxx.com/rest/V1/carts/mine/order
body :
{
"paymentMethod":{"method":"checkmo"},
"shippingMethod":
{
"method_code":"flatrate",
"carrier_code":"flatrate",
"additionalProperties":{}
}
}
response: orderid
Ok, I finally got it right.
Save payment information and create order [POST] /rest/V1/carts/mine/payment-information