Скрипты для обработки прайсов в Прайсматрикс

Общая информация

При загрузке прайсов у наших пользователей часто есть потребность изменения этих данных.

Например:

  • габариты товара поставщик предоставляет в прайс листе одной строкой вида 433/66/38 , это ширина/высота/длина. И нужно это разделить на три параметра соответственно
  • сформировать строку вида артикул+бренд для построения связей по этой строке
  • отредактировать имя товара вида: Брюки сварщика Brodeks FS38-01, т.синий/черный (46), убрав текст с скобках у всех товаров
  • и много других частных случаев, которые актуальны для конкретного поставщика или продавца.

Подстроить стандартный функционал под множество таких случаи невозможно, поэтому мы сделали возможность создавать скрипты, где можно с данным сделать любые операции самостоятельно.

Писать скрипт можете Вы самостоятельно, если владеете базовыми навыками программирования, либо может писать ваш или любой другой программист.

Язык программирования скриптов - JavaScript.

Скрипт запускается после загрузки данных от поставщика (не важно каким способом) перед сохранением продукта в Прайсматрикс.

Где писать скрипт?

Скрипт хранится для каждого прайса и находится в "Свойства" (кнопка в любом прайсе) --> "JavaScript Скрипт перед сохранением продукта".

Чтобы создать скрипт, нужно нажать "открыть в редакторе..."

В редакторе есть область для написания кода, пример входных данных данных, кнопка тестировать, выходные данные и лог.

После создания и отладки скрипта нажимаете кнопку Сохранить и закрываете окно.

Популярные названия параметров товара, которые понадобятся при создании скриптов: 

name - название товара
sku - артикул
skuparent - родительский артикул
mpn - артикул производителя
price - цена
priceold - старая цена
rrp - ррц
qty - количество
manufacturer - производитель
description - описание
shortdescription - короткое описание
wholesaleprice - закупочная цена
barcode - штрих-код
height - высота
width - ширина
depth - глубина
weight - вес

Если у Вас появились вопросы - пишите нам, мы поможем.

Примеры скриптов

Добавить к имени товара некий текст:

console.log("старое имя товара: " + product.Name);
product.Name = product.Name + " некийТЕКСТ";
console.log("новое имя товара: " + product.Name);

Добавить к имени товара через пробел Производителя:

console.log("старое имя товара: " + product.Name);
product.Name = product.Name + " " + product.Manufacturer;
console.log("новое имя товара: " + product.Name);

Удалить из имени товара текст в круглых скобках:

console.log("имя до обработки: " + product.name);
product.name = product.name.replace(/\([^)]+\)/g, '');
console.log("имя после обработки: " + product.name);

Если количество от поставщика 10, сделать у меня =1:

console.log("product.Qty ДО : " + product.Qty);
if (product.Qty === 10) {
product.Qty = 1;
}
console.log("Результат product.Qty: " + product.Qty);

Рассчитать Объемный вес:

product.WeightVolume = product.Height*product.Width*product.Depth/1000000;
console.log("Объемный вес = " + product.WeightVolume);

Сделать строку определенной длины:

Например, сделать имя равное 100 символов.
// Исходная строка
var productName = product.Name;
// Урезаем строку до 100 символов. Если нужно не 100, то замените в следующей строке 100 на другое число
var truncatedProductName = truncateString(productName, 100);
// Выводим результат
console.log(truncatedProductName);
// Функция для урезания строки
function truncateString(input, maxLength) {
if (input.length <= maxLength) {
return input;
} else {
return input.substring(0, maxLength);
}}

Скрипты с помощью ChatGPT

Так же со скриптами вполне может помочь ChatGPT, если сформулировать задачу подробно + сделать минимальные правки предложенного результаты. Мы пробовали и у нас получилось.

Пример запроса для ChatGPT: напишите код на JavaScript. Задача: есть имя товара (product.Name) и бренд (product.Manufacturer). Нужно сформировать новое имя товара, добавив к нему бренд.

Ответ ChatGPT:

Предложенный код:

function addBrandToProductName(product) {
if (product.Name && product.Manufacturer) {
return product.Name + ' - ' + product.Manufacturer;
} else {
return "Невозможно сформировать новое имя товара: отсутствует имя товара или бренд.";
}
}
const newName = addBrandToProductName(product);
console.log(newName); // Выведет "Ноутбук - Apple"

Пример функции (он не выделен на картинке выше красной рамкой) нам не нужен, его удаляем.

Код работает и результат выглядит так:

Если нужно помощь или есть вопросы - пишите нам.