СВОЙСТВА

=======================================================================


На данный момент в API внешней компоненты доступны следующие ствойства:


1. WaitTimeout / ВремяОжидания  - доступно для чтения и изменения.


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

Если указанное свойство было установлено до подключения к БД, то при подключении его значение сразу будет использовано для задания переменной wait_timeout в контексте текущей MySQL сессии.

Если до подключения к БД свойство не было установлено, то при подключении значение свойства будет инициализировано из переменной wait_timeout контекста текущей MySQL сессии.

Если свойство модифицируется после подключения к БД, то новое значение устанавливается также и для переменной wait_timeout в контексте текущей MySQL сессии.

Пример использования:

    oc1c = СоздатьОбъект("AddIn.oc1c");
    Сообщить(oc1c.ВремяОжидания);
    oc1c.ПодключитьсяКБД(Хост, Юзер, Пвд, ДБ, Префикс);
    Сообщить(oc1c.ВремяОжидания);
    oc1c.ВремяОжидания = 3600;
    Сообщить(oc1c.ВремяОжидания);


В данном примере первая команда Сообщить(oc1c.ВремяОжидания) сразу после создания объекта ВК выдаст 0, т.к. никакого значения свойству ещё присвоено не было.

После выполнения подключения к БД команда Сообщить(oc1c.ВремяОжидания) выдаст некоторое значение, отличное от 0 (например, 28800 при стандартных настройках сервера MySQL), т.к. свойство было проинициализировано текущим значением переменной wait_timeout контекста активной MySQL сессии.

Далее с помощью стандартного оператора присваивания oc1c.ВремяОжидания = 3600 переменной wait_timeout в контексте текущей MySQL сессии будет назначено новое значение 3600.

Последняя команда Сообщить(oc1c.ВремяОжидания) ожидаемо выдаст значение 3600.


2. SecureAuthorization / БезопаснаяАвторизация - доступно только для изменения.


Может принимать значения 0 или 1:

  • 0 - отключает режим безопасной авторизации при подключении к БД магазина;
  • 1 - включает режим безопасной авторизации при подключении к БД магазина.

По умолчанию этот режим включен.

Если сервер не поддерживает хеширование паролей, используемое в MySQL 4.1.1 и более поздних версиях, то при попытке подключения к БД в режиме безопасной авторизации будет получена ошибка:

Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled).


В этом случае режим безопасной авторизации нужно выключить:

    oc1c.БезопаснаяАвторизация = 0;


ВАЖНО!

Чтобы достичь ожидаемого эффекта, значение этому свойству необходимо задать ДО вызова метода DBLogin / ПодключитьсяКБД, например, непосредственно после создания объекта внешней компоненты:

    oc1c = СоздатьОбъект("AddIn.oc1c");
    oc1c.БезопаснаяАвторизация = 0;
    oc1c.ПодключитьсяКБД(Хост, Юзер, Пвд, ДБ, Префикс);


МЕТОДЫ

=======================================================================


Во всех методах порядок перечисления параметров имеет значение, при этом ни один из параметров не может быть опущен.


На данный момент в API внешней компоненты доступны следующие методы:


1. SetPrice / УстановитьЦену (КодТовара, Цена)

Назначает товару <КодТовара> цену <Цена>.


2. ClearShop / ОчиститьМагазин ()

Выполняет полную очистку товарного содержимого магазина.


3. UploadProduct / ВыгрузитьТовар (

    КодТовара, Наименование, Артикул, Описание, БазоваяЕдиница, ПутьКФото, Цена, ДатаВремя,

    ИмяРодителя, ИмяПраРодителя, Количество, ОптЦена, Вес, КодПроизводителя,

    ean, jan, isbn, mpn, location, МетаЗаголовок, МетаОписание, ИмяПроизводителя, SEO-title, SEO-h1,

    ФорматДатыВремени, Модель, КодГруппыПокупателя, ФлагПерезаписи

   )

Заносит в БД магазина переданную информацию по товару с идентификатором <КодТовара>.

Если <ФлагПерезаписи> сброшен, то информация по уже существующему товару не перезаписывается.

Параметр <ФорматДатыВремени> принимает синтаксис поля `format` функции DATE_FORMAT() MySQL и позволяет указать, как следует интерпретировать строку, переданную в параметре <ДатаВремя>.

Например, для УТ 10.3 обычно используется значение "%d.%m.%Y %H:%i:%s", что означет:

  • %d - 2-значное число месяца 00..31 (с лидирующим 0 для значений меньше 10);
  • %m - 2-значный номер месяца 00..12 (с лидирующим 0 для значений меньше 10);
  • %Y - 4-значный год;
  • %H - 2-значный час 00..23 (с лидирующим 0 для значений меньше 10);
  • %i - 2-значная минута 00..59 (с лидирующим 0 для значений меньше 10);
  • %s - 2-значная секунда 00..59 (с лидирующим 0 для значений меньше 10).

Параметр <ПутьКФото> указывает путь к директории с картинками товаров, заданный относительно директории image сайта.


4. SetPubProduct / ПубликацияТовара (КодТовара, Статус)

Включает / выключает публикацию товара <КодТовара> в зависимости от значения флага <Статус> (0 / 1).

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


5. Special / Акция (КодТовара, СпецЦена, ДатаНач, ДатаКон, КодГруппыПокупателя)

Устанавливает специальную цену <СпецЦена> на товар <КодТовара> для группы <КодГруппыПокупателя> со сроком действия от <ДатаНач> по <ДатаКон>.


6. ClearSpecial / СнятьАкцию (КодТовара)

Отменяет действие всех акций на товар <КодТовара>.


7. Left / Остатки (КодТовара, Количество)

Обновляет остатки в значение <Количество> по товару <КодТовара>.


8. DBLogin / ПодключитьсяКБД (УзелБД, ПользовательБД, ПарольБД, ИмяБД, Префикс[, Порт])

Осуществляет подключение к БД магазина с заданными параметрами.

Параметр <Порт> не является обязательным и может отсутствовать. В этом случае принимает значение по умолчанию - 3306.


9. DBLogout / ОтключитьсяОтБД ()

Закрывает ранее открытое подключение к БД магазина.


10. SelectProd / ПолучитьТовары ()

Делает выборку всех имеющихся в магазине товаров и помещает результат в локальный буфер для дальнейшего использования в методе FetchNextProd / ИзвлечьСледТовар.


11. FetchNextProd / ИзвлечьСледТовар (КодТовара, Наименование)

Извлекает информацию по очередному товару из локального буфера, ранее сформированного методом SelectProd / ПолучитьТовары, и передаёт её в 1С с помощью возвращаемых параметров.

Непосредственно метод возвращает логическое значение: True / Истина - если очередная порция данных успешно извлечена; False / Ложь - если данные не удалось извлечь, т.к. достигнут конец буфера.

ВАЖНО!

После вызова метода SelectProd / ПолучитьТовары нельзя вызывать никакие другие методы ВК, кроме FetchNextProd / ИзвлечьСледТовар вплоть до получения значения False / Ложь.


12. CategoryPath / ПутьКатегории (КодКатегории, КодТочкиПути, Уровень)

Формирует путь ("хлебные крошки") для товара / категории.


13. Category / Категория (

     КодКатегории, КодРодителя, Наименование, ИмяЧПУ,

     Описание, Верхняя, ДатаВремя, ФорматДатыВремени, ЧислоСтолбцов,

     МетаЗаголовок, МетаОписание, МетаКлючСлова, SEO-title, SEO-h1, ФлагПерезаписи

    )

Выгружает из 1С в магазин информацию по одной категории.

Флаг <Верхняя> указывает, должна ли категория отображаться в верхнем меню.

Параметр <ЧислоСтолбцов> имеет смысл только для категорий верхнего меню и задаёт как будет отображаться список их подкатегорий.

Если <ФлагПерезаписи> сброшен, то информация по уже существующей категории не перезаписывается.

Параметр <ФорматДатыВремени> принимает синтаксис поля `format` функции DATE_FORMAT() MySQL и позволяет указать, как следует интерпретировать строку, переданную в параметре <ДатаВремя>.

Например, для УТ 10.3 обычно используется значение "%d.%m.%Y %H:%i:%s", что означет:

  • %d - 2-значное число месяца 00..31 (с лидирующим 0 для значений меньше 10);
  • %m - 2-значный номер месяца 00..12 (с лидирующим 0 для значений меньше 10);
  • %Y - 4-значный год;
  • %H - 2-значный час 00..23 (с лидирующим 0 для значений меньше 10);
  • %i - 2-значная минута 00..59 (с лидирующим 0 для значений меньше 10);
  • %s - 2-значная секунда 00..59 (с лидирующим 0 для значений меньше 10).

Параметр <ПутьКФото> указывает путь к директории с картинками товаров, заданный относительно директории сайта.


14. Product2Category / ТоварВКатегорию (КодТовара, КодКатегории, Основная)

Привязывает товар <КодТовара> к категории <КодКатегории> с возможностью указания признака <Основная> (0 / 1).


15. CheckProd / ПроверитьТовар (КодТовара)

Проверяет наличие в магазине товара <КодТовара>.

Возвращает логическое значение: True / Истина - если товар существует; False / Ложь - если такого товара нет в магазине.


16. CheckMan / ПроверитьПроизв (ИмяПроизводителя, SEO-URL)

Проверяет, существует ли в БД магазина производитель с именем <ИмяПроизводителя>.

Если да, то возвращается его <Код>.

Если нет, то создаётся новый производитель с именем <ИмяПроизводителя>, прописывается для него <SEO-URL> и возвращается вновь созданный <Код>.


17. GetPtoC (КодТовара)

Осуществляет выборку всех категорий, к которым приписан товар <КодТовара>.

Результат сохраняется в локальном буфере для последующего использования методом FNPtoC.


18. FNPtoC (КодКатегории, Основная)

Извлекает из локального буфера, ранее сформированного методом GetPtoC, информацию об очередной категории и передаёт её в 1С с помощью возвращаемых параметров.

Непосредственно метод возвращает логическое значение: True / Истина - если очередная порция данных успешно извлечена; False / Ложь - если данные не удалось извлечь, т.к. достигнут конец буфера.

ВАЖНО!

После вызова метода GetPtoC нельзя вызывать никакие другие методы ВК, кроме FNPtoC вплоть до получения значения False / Ложь.


19. SelectCat / ПолучитьКатегории ()

Осуществляет выборку всех категорий присутствующих в магазине.

Результат сохраняется в локальном буфере для последующего использования методом FetchNextCat / ИзвлечьСледКатегорию.


20. FetchNextCat / ИзвлечьСледКатегорию (

     КодКатегории, ПутьКартинки, КодРодителя, Верхняя,

     ЧислоСтолбцов, Порядок, Статус, Наименование, Описание,

     МетаОписание, МетаКлючСлова, SEO-title, SEO-h1, ИмяЧПУ

    )

Извлекает из локального буфера, ранее сформированного методом SelectCat / ПолучитьКатегории, информацию об очередной категории и передаёт её в 1С с помощью возвращаемых параметров.

Непосредственно метод возвращает логическое значение: True / Истина - если очередная порция данных успешно извлечена; False / Ложь - если данные не удалось извлечь, т.к. достигнут конец буфера.

ВАЖНО!

После вызова метода SelectCat / ПолучитьКатегории нельзя вызывать никакие другие методы ВК, кроме FetchNextCat / ИзвлечьСледКатегорию вплоть до получения значения False / Ложь.


21. GetImages / ПолучитьКартинки (КодТовара)

Осуществляет выборку путей всех картинок, привязанных к товару <ProductID>.

Результат сохраняется в локальном буфере для последующего использования методом FetchNextImage / ИзвлечьСледКартинку.


22. FetchNextImage / ИзвлечьСледКартинку (ПутьКартинки)

Извлекает из локального буфера, ранее сформированного методом GetImages / ПолучитьКартинки, путь очередной картинки и передаёт её в 1С с помощью возвращаемого параметра <ПутьКартинки>.

Непосредственно метод возвращает логическое значение: True / Истина - если очередная порция данных успешно извлечена; False / Ложь - если данные не удалось извлечь, т.к. достигнут конец буфера.

ВАЖНО!

После вызова метода GetImages / ПолучитьКартинки нельзя вызывать никакие другие методы ВК, кроме FetchNextImage / ИзвлечьСледКартинку вплоть до получения значения False / Ложь.


23. GetOrders / ПолучитьЗаказы (СписокСтатусов[, ФлагКроме])

Осуществляет выборку из БД магазина заказов с фильтрацией по статусам.

Если <ФлагКроме> = 0, то выбираются заказы, статусы которых перечислены через ',' в параметре <СписокСтатусов>.

Если <ФлагКроме> = 1, то выбираются заказы, статусы которых отличаются от перечисленных в параметре <СписокСтатусов>.

Параметр <ФлагКроме> не является обязательным и может отсутствовать. В этом случае принимает значение по умолчанию - 1.

Например:

    oc1c.ПолучитьЗаказы("1,2,7", 0); // выберет все заказы со статусами 1, 2 или 7.

    oc1c.ПолучитьЗаказы("1,2,7", 1); // выберет все заказы, статусы которых отличаются от 1, 2 или 7.

    oc1c.ПолучитьЗаказы("1,2,7");    // выберет все заказы, статусы которых отличаются от 1, 2 или 7.

Результат сохраняется в локальном буфере для последующего использования методом FetchNextOrder / ИзвлечьСледЗаказ.


24. FetchNextOrder / ИзвлечьСледЗаказ (

     КодЗаказа, КодПокупателя, Имя, Фамилия, E-mail,

     Телефон, Компания, ИНН, СпособОплаты,

     АдресДоставки, Город, Индекс, Страна, Регион,

     Комментарий, ПолнаяСтоимость, СтатусЗаказа, ДатаЗаказа, СтоимостьДоставки

    )

Извлекает из локального буфера, ранее сформированного методом GetOrders / ПолучитьЗаказы, информацию по очередному заказу и передаёт её в 1С с помощью возвращаемых параметров.

Непосредственно метод возвращает логическое значение: True / Истина - если очередная порция данных успешно извлечена; False / Ложь - если данные не удалось извлечь, т.к. достигнут конец буфера.

ВАЖНО!

После вызова метода GetOrders / ПолучитьЗаказы нельзя вызывать никакие другие методы ВК, кроме FetchNextOrder / ИзвлечьСледЗаказ вплоть до получения значения False / Ложь.


25. GetTabOrders / ПолучитьТоварыЗаказа (КодЗаказа)

Делает выборку по всем позициям, включённым в заказ <КодЗаказа>.

Результат сохраняется в локальном буфере для последующего использования методом FetchNextTabOrder / ИзвлечьСледТоварЗаказа.


26. FetchNextTabOrder / ИзвлечьСледТоварЗаказа (КодТовара, Количество, Цена, Стоимость)

Извлекает из локального буфера, ранее сформированного методом GetTabOrders / ПолучитьТоварыЗаказа, информацию по очередному товару, включённому в заказ, и передаёт её в 1С с помощью возвращаемых параметров.

Непосредственно метод возвращает логическое значение: True / Истина - если очередная порция данных успешно извлечена; False / Ложь - если данные не удалось извлечь, т.к. достигнут конец буфера.

ВАЖНО!

После вызова метода GetTabOrders / ПолучитьТоварыЗаказа нельзя вызывать никакие другие методы ВК, кроме FetchNextTabOrder / ИзвлечьСледТоварЗаказа вплоть до получения значения False / Ложь.


27. AdditionalImages / ДопКартинки (КодТовара, Количество, ПутьКартинок, БазовоеИмя)

Создаёт в БД магазина записи по имеющимся дополнительным картинкам товара <КодТовара>.

Сами картинки должны быть предварительно выгружены на сайт по FTP.

При этом имена для дополнительных картинок формируются по шаблону

    <ПутьКартинок>/<БазовоеИмя>_<Номер>.jpg

<ПутьКартинок> указывает путь к директории с дополнительными картинками, заданный относительно директории сайта.

<БазовоеИмя> обычно совпадает со значением <КодТовара>, но может принимать, например, значение Артикула, в зависимости от версии opencart и установленных модификаций.

<Номер> формируется автоматически от 1 до <Количество>.


28. UploadAttributes / ВыгрузитьАтрибуты (КодТовара, СтрокаАтрибутов, РазделительПар, РазделительЗначений, ИмяГруппы)

Заносит в БД магазина информацию по атрибутам товара <КодТовара>.

Принимает на вход строку <СтрокаАтрибутов>, содержащую информацию обо всех атрибутах данного товара, относящихся к одной группе атрибутов с именем <ИмяГруппы>.

Внутри строки атрибуты записаны парами <Имя> и <Значение>, разделённые между собой последовательностью <РазделительЗначений>.

Одна пара отделяется от другой последоватиельностью <РазделительПар>.

ВАЖНО!

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

Например, мы хотим записать для некоторого товара в группу атрибутов с именем "Свойства" следующие параметры:

  • Страна происхождения - Китай;
  • Питание - 220 В~;
  • Потребление - 0,15 мА.

Для отделения имени атрибута от его значения будем использовать одиночный символ ':'.

Для разделения между собой пар будем использовать последовательность '#;'.

Тогда <СтрокаАтрибутов> примет значение "Страна происхождения:Китай#;Питание:220 В~#;Потребление:0,15 мА".


29. MoveCustomerToGroup / ПеревестиПокупателяВГруппу (ИНН, E-mail, ИмяГруппы)

Назначает покупателя с идентификаторами <ИНН> и <E-mail> в группу с именем <ИмяГруппы>.


30. SetOrderStatus / УстановитьСтатусЗаказа (КодЗаказа, Статус)

Устанавливает <Статус> заказу <КодЗаказа>.


31. UploadCustomUnits / ВыгрузитьЕдиницыЗаказа (КодТовара, ИмяЕдиницы, ПодписьЕдиницы, ПодписьЭлемента, Количество)

Позволяет назначать товару единицы оптового заказа в терминах модуля "Custom Unit".

При отсутствии указанного модуля метод игнорируется.


32. UploadFilterOptions / ВыгрузитьОпцииФильтра (КодТовара, КодЗначения, ИмяОпции, МинЗнач, МаксЗнач)

Позволяет задать опции фильтра в терминах модуля "OCFilter".

При отсутствии указанного модуля метод игнорируется.


33. DeleteProduct / УдалитьТовар (КодТовара)

Точечно удаляет из БД магазина всю информацию об одном товаре - <КодТовара>.


34. UploadOption / ВыгрузитьОпцию (

     КодТовара, ИмяОпции, ТипОпции, Значение, Обязательная,

     Количество, УчётНаСкладе, ДопЦена, ДопБаллы, ДопВес

    )

Выгружает одно <Значение> опции с именем <ИмяОпции> и привязывает это значение к товару <КодТовара>.

<ТипОпции> влияет на способ отображения опции на странице товара и может принимать одно из значений:

  • "radio" / "радио";
  • "checkbox" / "флажок";
  • "text" / "текст";
  • "select" / "список".

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

Параметры <ДопЦена>, <ДопБаллы> и <ДопВес> могут быть как положительными, так и отрицательными.

При этом для параметров <ДопЦена> и <ДопВес> допускается задание дробной величины.


Пример:

    oc1c.ВыгрузитьОпцию(12345, "Цвет", "Список", "Красный", 1, 0, 0, 1.5, 0, 0);
    oc1c.ВыгрузитьОпцию(12345, "Цвет", "Список", "Синий", 1, 0, 0, 0, 1, 0);


В этом примере для товара 12345 задаётся опция "Цвет", которая будет отображаться на странице товара в виде выпадающего списка.

Для этой опции последовательно выгружаются два значения "Красный" и "Синий".

Опция является обязательной (нельзя оформить заказ, не указав опцию), при этом учёт количества на складе в разрезе опций не задан.

Товар красного цвета стоит на 1.5 рубля дороже, но за товар синего цвета начисляется 1 дополнительный балл.


35. ClearCategory / ОчиститьКатегорию (КодКатегории, Режим)

Точечно очищает заданную категорию <КодКатегории>.

Параметр <Режим> позволяет задать режим очистки:

  • 0 - Очистка товарного содержимого только заданной категории с сохранением самой категории;
  • 1 - Рекурсивная очистка товарного содержимого заданной категории и всех вложенных подкатегорий с сохранением самих категорий;
  • 2 - Рекурсивное удаление заданной категории и всех подкатегорий с одновременной очисткой товарного содержимого.