Вставьте товар с помощью ShopifyPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Вставьте товар с помощью Shopify

Сообщение Anonymous »

Я пытаюсь добавить продукт с помощью rest API в Shopify, используя узел JS с Graphql. Возникла проблема, связанная с частью описания продукта.
В этом формате я отправляю описание, оно также содержит элементы html.
Изображение
< /p>
Запрос Graphql
const { decode } = require('html-entities');
static create_simple_product(data){

Код: Выделить всё

  let decoded_desc = decode(data.body_html);

const prodQuery = `
mutation {
productCreate(
input: {
title: "${data.title}",
productType: "${data.product_type}",
vendor: "${data.vendor}",
status:${statusData},
bodyHtml: "${decoded_desc.replace(/"/g, '\\"')}",
tags:"${typeof data.tags !== 'object' ? "" :  data.tags}",
handle:"${data.handle}",
seo: {description: "${data.seo_description}", title: "${data.seo_title}"},
published:true
}
media: {originalSource: "${data.images[0]}", mediaContentType: IMAGE, alt: "${data.title}"}
) {
product {
id
title
bodyHtml
description
vendor
productType
createdAt
updatedAt
handle
status
totalInventory
totalVariants
tracksInventory
variants(first: 50) {
nodes {
id
inventoryItem {
id
}
title
price
compareAtPrice
createdAt
updatedAt
sku
barcode
weight
weightUnit
inventoryQuantity
inventoryManagement
position
image {
src
id
altText
}
}
}
options(first: 50) {
id
name
position
optionValues {
name
hasVariants
id
}
}
images(first: 100, sortKey: POSITION) {
edges {
node {
id
src
altText
height
width
}
}
}
media(first: 100) {
edges {
node {
id
...  on MediaImage {
id
image {
src
}
}
}
}
}
}
userErrors {
field
message
}
}
}
`;
return prodQuery;
}
Тело API, которое я отправляю из php.

Код: Выделить всё

 $output_desc_prod = preg_replace('/]+)(\sstyle=(?P["\'])(.*)\k)([^/iUs', '', $get_product_data->descriere_produs);

$product_description = htmlentities($output_desc_prod);

$data_sf_prod = array(
"api_key" => $site_data->api_key,
"server_key" =>  $site_data->server_key,
"title" =>  $get_product_data->nume_produs,
"body_html" => $product_description,
"vendor" => strtolower($site_data->den_site),
"status" => "draft",
"product_type" => "",
"tags" => "",
"images" => $array_images_final,
"seo_description" => $getMetaData->md,
"seo_title" => $getMetaData->mt,
"price" => $priceSelector,
"sku" => $get_product_data->cod_produs,
"handle"=> $get_product_data->slug_produs,
"barcode" =>  $get_product_data->ean === "" ? null : $get_product_data->ean,
"weight" => 1,
"weight_unit" => "",
"compare_at_price" => $priceCompareSelector
);
Я использую htmlentities, чтобы устранить любую проблему, в основном это работает, но есть некоторые продукты, которые после вставки не работают и отображают следующую ошибку. Create Simple ProductError: синтаксическая ошибка, неожиданный недопустимый токен ("") в [9, 25]

Подробнее здесь: https://stackoverflow.com/questions/792 ... ng-shopify
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»