Интеграция 1С с сайтом (магазином) WordPress (WooCommerce) с помощью Rest API сайта. Часть 2. Категории постов/страниц WordPress.

21.10.19

Интеграция - Сайты и интернет-магазины

Интеграция 1С с сайтом (магазином) WordPress (WooCommerce) с помощью Rest API сайта. Часть 2. Категории постов/страниц WordPress. Интеграция 1С с сайтом (магазином) WordPress (WooCommerce) с помощью функционала Rest API предоставляемого платформой (CMS) WordPress (WooCommerce). Без дополнительных приложений на PHP/вставьте сюда любой другой язык программирования/.

Скачать исходный код

Наименование Файл Версия Размер
Интеграция 1С с сайтом (магазином) WordPress (WooCommerce) с помощью Rest API сайта. Часть 2. Категории постов/страниц WordPress.Конфигурация:
.cf 167,61Kb
4
.cf 0.1.1 167,61Kb 4 Скачать
Интеграция 1С с сайтом (магазином) WordPress (WooCommerce) с помощью Rest API сайта. Часть 2. Категории постов/страниц WordPress.Демо-обработка:
.epf 10,69Kb
4
.epf 0.1.1 10,69Kb 4 Скачать

Базовое руководство по REST API

*Расположенный ниже текст частью является моим вольным переводом документации разработчиков WordPress, расположенного по адресу «https://developer.wordpress.org/rest-api/». Весь перевод идет в контексте применимости к 1С. Надеюсь он вам поможет в понимании не только REST API Wordpress’а, но других CMS, плагинов и так далее. В основном использовался Yandex переводчик.

    REST API WordPress предоставляет конечные точки API для типов данных WordPress, которые позволяют разработчикам удаленно взаимодействовать с сайтами, отправляя и получая объекты JSON (JavaScript Object Notation). JSON-это открытый стандартный формат данных, который является легким и удобочитаемым для человека и выглядит как объекты в JavaScript; отсюда и название. Когда вы отправляете контент или делаете запрос к API, ответ будет возвращен в JSON. Это позволяет нам, как разработчикам, создавать, читать и обновлять контент WordPress из клиентского JavaScript или из внешних приложений, даже тех, которые написаны на языках за отличными от PHP.

Зачем использовать WordPress REST API

REST API WordPress делает работу с контентом проще, чем когда-либо, чтобы использовать WordPress в новых и интересных способах разработки. Вам даже не придется писать приложения на PHP: любой язык программирования, который может делать HTTP-запросы и интерпретировать JSON, может взаимодействовать с WordPress через REST API.

WordPress REST API также может служить надежной заменой API admin-ajax в ядре. Используя REST API, вы можете более легко структурировать способ, которым вы хотите получать данные в WordPress и из него. Вызовы AJAX можно значительно упростить с помощью REST API, что позволит вам тратить меньше времени на доступ к нужным данным и больше времени на создание лучшего пользовательского интерфейса.

Наше воображение - это единственный предел того, что можно сделать с помощью API REST WordPress. Суть в том, что, если вам нужен структурированный, расширяемый и простой способ получения данных в WordPress и из него через HTTP, вы, вероятно, захотите использовать REST API. При всей своей простоте REST API может показаться довольно сложным на первый взгляд, и мы попытаемся разбить его на более мелкие компоненты, чтобы мы могли легко собрать весь пазл воедино.

Ключевые принципы (Key Concepts)

Чтобы начать работу с использованием WordPress REST API, мы разберем некоторые ключевые понятия и термины, связанные с API:
•    Routes/Endpoints   / Маршруты / Конечные точки
•    Requests  / Запросы
•    Responses  / Ответы
•    Schema  / Схема 
•    Controller Classes  / Классы контроллеров

Каждая из этих концепций играет решающую роль в использовании и понимании REST API WordPress. Давайте вкратце разберем их, чтобы позже мы могли изучить каждый из них более глубоко.

Routes & Endpoints

    Маршрут (route), в контексте WordPress REST API, является URI, который может быть сопоставлен с различными методами HTTP. Сопоставление отдельного метода HTTP с маршрутом называется "конечной точкой" (endpoint). Чтобы быть точным: если мы сделаем запрос GET http://oursite.com/wp-json/, мы получим ответ JSON, показывающий нам, какие маршруты доступны, и в каждом маршруте, какие конечные точки доступны. /wp-json/ - это сам маршрут, и когда делается запрос GET, он соответствует конечной точке, которая отображает то, что известно, как индекс для WordPress REST API. 

    REST API предоставляет нам способ сопоставления URI с различными ресурсами в нашей WordPress. По умолчанию, если у вас есть и включены постоянные ссылки, WordPress REST API “живет” в /wp-json/. На нашем сайте WordPress https://ourawesomesite.com, мы можем получить доступ к индексу REST API, сделав запрос GET к https://ourawesomesite.com/wp-json/. Индекс предоставляет информацию о том, какие маршруты доступны для этой конкретной установки WordPress, а также о том, какие методы HTTP поддерживаются и какие конечные точки зарегистрированы.

В двух словах:

Маршрут (Route) — это «имя», которое отсылает работу API WordPress к определенным эндпоинтам. Если совсем просто, маршрут - это URL к которому можно обратиться разными HTTP методами. Маршрут может иметь несколько эндпоинтов.


рис.1.0. Демо Полный индекс маршрутов WordPress


Конечная точка (Endpoint) — это само обращение к маршруту отдельным HTTP методом. Эндпоинты выполняют конкретную задачу, принимают параметры и возвращают данные Клиенту.

Типовые (штатные) конечные точки WordPress:
GET — получает список (или отдельную позицию) и возвращает данные поста Клиенту.
PUT|PATCH|POST — обновляет данные и возвращает их Клиенту.
DELETE — удаляет что-либо и возвращает только что удаленные данные Клиенту.
Например,
•    GET /wp/v2/posts
•    POST /wp/v2/posts
•    POST /wp/v2/posts/<id>
•    DELETE /wp/v2/posts/<id>

Requests

Одним из основных классов в инфраструктуре REST API WordPress является класс WP_REST_Request. Этот класс используется для хранения и извлечения информации для текущего запроса; запросы могут быть отправлены удалённо через HTTP. WP_REST_Request объекты автоматически создаются для вас, когда вы делаете HTTP-запрос к зарегистрированному маршруту. Данные, указанные в запросе, определят, какой ответ вы получите обратно из API. Есть много изящных вещей, которые вы можете сделать с помощью класса запроса. 


рис.1.2. Демо список маршрутов для запроса

Здесь мы запросили всё, что касается только WordPress, маршруты, конечные точки, аргументы для запросов и т.д.
 

Responses 

    Ответы - это данные, которые вы получаете от API. Класс WP_REST_Response предоставляет способ взаимодействия с данными ответа, возвращаемыми конечными точками. Ответы могут возвращать нужные данные, а также могут использоваться для возврата ошибок. 
В качестве примера введите в строке браузера маршрут «http://oursite.com/wp-json/» и вы получите ответ как на рисунке ниже (при условии конечно, что WordPress REST API не отключен каким-нибудь плагином или иным способом).

рис.1.1. Демо сырой ответ в JSON

Здесь запросили вообще всё, что предоставляет WordPress, ответ получили в «сыром», необработанном виде. В удобочитаемом виде смотрите рисунки выше.
 

Schema

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

рис.1.3. Пример схемы в категории поста или страницы
 

Controller Classes

     Как вы можете видеть, WordPress REST API имеет много движущихся частей, которые должны работать все вместе. Классы контроллеров объединяют все эти элементы в одном месте. С помощью класса контроллера вы можете управлять регистрацией маршрутов и конечных точек, обрабатывать запросы, использовать схему и генерировать ответы API. *Полагаю, что данный пункт необходим для разработчиков на PHP и по крайней мере в ближайшее время на не понадобится. Во всяком случае, сколько работаю с Rest API WordPress, до сих пор мне это было не нужно.

На этом базовая вводная окончена, надеюсь у вас не возникнут сложности с пониманием описанного.

Категории постов/страниц WordPress

    А теперь настала пора перейти к более интересному, чем чтение. В этой части рассмотрим примеры работы с категориями постов/страниц WordPress, как самым простым и легким образцом для экспериментов (по моему скромному мнению).

*Небольшая ремарка с пояснениями: в самом начале работы с Rest API WordPress столкнулся с тем, что 1С и схемы свойств данных Rest API WordPress имеют одинаковые написания на латинице. Например «title», «description», «name» и т.д., в следствии чего не мог задать реквизиты в 1С с подобными именами. В результате чего ввел две структуры «переводчики»:

- ВП_СтруктураСоответствийСРусскогоНаАнг – перевод с имен реквизитов с «русского» на английский 
(например: ВП_СтруктураСоответствийСРусскогоНаАнг.Вставить(Врег("Наименование"),"name"))
- ВП_СтруктураСоответствийСАнгНаРусского – обратный переводчик.


рис.1.4. Перевод с имен реквизитов.png

Это позволяет быстро сопоставлять реквизиты 1С и Rest API WordPress. И заполнять данные через штатную функцию «ЗаполнитьЗначенияСвойств(<Приемник>, <Источник>)»
 

Схема категорий постов/страниц

Посмотреть полностью можно тут: https://developer.wordpress.org/rest-api/reference/categories/

Конечные точки. Сопоставление с 1С.

Ниже приведенный код выполняет действие на сайте согласно конечной точке WordPress.

Функция рс_ПослатьГотовыйЗапросНаСайт(ТипЗапроса, СтрокаПодключенияСервера, Запрос) Экспорт
	СоединениеССервером = онОбщегоНазначения_ПолучитьСоединениеHTTPS(СтрокаПодключенияСервера, , , , , ,);
	Если ВРег(ТипЗапроса) = "POST" Тогда
		Результат = СоединениеССервером.ОтправитьДляОбработки(Запрос);
	ИначеЕсли ВРег(ТипЗапроса) = "GET" Тогда
		Результат = СоединениеССервером.Получить(Запрос);
	ИначеЕсли ВРег(ТипЗапроса) = "PUT" Тогда
		////Результат = СоединениеССервером.Записать(Запрос);     /////Эта функция не работает
		Результат = СоединениеССервером.Изменить(Запрос);
	ИначеЕсли ВРег(ТипЗапроса) = "PATCH" Тогда
		Результат = СоединениеССервером.Изменить(Запрос);
	ИначеЕсли ВРег(ТипЗапроса) = "HEAD" Тогда
		Результат = СоединениеССервером.ПолучитьЗаголовки(Запрос);
	ИначеЕсли ВРег(ТипЗапроса) = "DELETE" Тогда
		Результат = СоединениеССервером.Удалить(Запрос);
	КонецЕсли;
	
	Возврат Результат;
КонецФункции // 
Получение всех категорий списком.

Запрос для сайта будет выглядеть так: «GET /wp/v2/categories»
Конечная точка «GET». Маршрут «/wp/v2/categories». На данном этапе какие-либо дополнительные аргументы для вызова списка категорий не нужны, WordPress отработает запрос своими аргументами по умолчанию.

В программе категории/рубрики WordPress заведены как справочник «Категории/рубрики постов/страниц сайта WordPress». 
рис.1.5. Справочник категорий с командами.png
 

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

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

рис.1.6. Создание в справочнике всех категорий сайта.png

А вот так они выглядят на сайте

рис.1.7. Категории на сайте.png

 

Возьмем для примера категорию «Тестовая категория1».

рис.1.8. Категория до изменения..png

Так выглядит на сайте до изменения

рис.1.9. Категории до изменения на сайте.png

 

И изменим наименование, описание и родителя и запишем. Запрос для сайта будет выглядеть так: «POST /wp/v2/categories/<id>»

рис.1.10. Категория после изменения справочник.png

 

Изменим на сайте выбрав «Обновить (текущий)» 

рис.1.11. Категория после изменения ответ с сайта.png

 

Так стало выглядеть на сайте

рис.1.12. Категория после изменения на сайте.png

 

    Чтобы создать категорию/рубрику на сайте создайте элемент справочника, запишите и закройте его, после чего выбрав в списке пошлите запрос на сайт выбрав «Создать (один)».

Запрос для сайта будет выглядеть так: «POST /wp/v2/categories»

рис.1.13. Создание новой категории.png

 

Так выглядит на сайте

рис.1.14. Создание новой категории на сайте.png

 

    Ну и соответственно удалим тестовые категории. Элемент справочника помечается на удаление и у него удаляется id.

Запрос для сайта будет выглядеть так: «DELETE /wp/v2/categories/<id>»

рис.1.15. Удаление категории из 1С.png

 

Соответственно с сайта они исчезли

рис.1.16. Удаленные категории на сайте.png

Ну и запрос данных по конкретной категории выглядит так «GET /wp/v2/categories/<id>». Здесь пример приводить не стал, попробуйте сами.

И напоследок:

В обновленную конфигурацию добавлены демо-запросы к сайту.
Обновлена демо-обработка для тестов с новыми запросами, 

рис.2.0 Обработка.png

добавлена возможность посылать запросы «GET» к сайту по своим маршрутам.

рис.2.1 Обработка свой маршрут.png

 

На этом всё, вторая часть окончена.

Желаю приятных экспериментов на ниве обмена из 1С с сайтом WordPress. 

Продолжение следует.

В следующей части будем публиковать/изменять/удалять сами посты/страницы.
 

Обработка тестировалась:

Тестировалось на моем сайте: перейти.

Версия WordPress: 5.2
MySQL Версия : 5.7.23-24
PHP Версия : 7.3.6
Платформа: 1С:Предприятие 8.3 (8.3.13.1644)


P.S. Если вам интересна описанная в публикации тема, вы готовы посвятить этому некоторое своё свободное время, есть желание, милости прошу присоединиться к моему проекту, пишите, не стесняйтесь.

 

WordPress WooCommerce RestAPI Интеграция сайтом Rest API обмен данными

См. также

API-интеграция 1С с маркетплейсами ОЗОН, WildBerries, Я.Маркет, СберМегаМаркет, Стройландия, Леруа Мерлен, Hoff, AliExpress для УТ11, КА2, ERP2, УНФ, БП3, Розница, УТ10, УПП1.3

Сайты и интернет-магазины Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Беларусь Россия Управленческий учет Платные (руб)

Модуль для интеграции с маркетплейсами ОЗОН, WildBerries, Я.Маркет, СберМегаМаркет, Стройландия, Леруа Мерлен, Hoff, AliExpress. При помощи расширения поддерживаются следующие методы: обмен остатками товаров, обмен ценами, обработка заказов, печать стикеров, загрузка отчетов комиссионеров по API (в том числе Я.Маркет). Подходит для конфигураций Беларуси. Поддержка искусственного интелекта GigaChat

59990 руб.

05.09.2023    8255    124    74    

78

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    15930    13    18    

13

Оплата покупок "Долями" в 1С:Розница 2.3 (для работы с сервисом dolyame.ru)

Сайты и интернет-магазины Платформа 1С v8.3 1С:Розница 2 Розничная и сетевая торговля (FMCG) Россия Платные (руб)

Готовое интеграционное решение для оплаты покупок Долями в 1C:Розница 2.3. Реализовано в виде расширения. Интеграция сервиса dolyame.ru для приема платежей в рассрочку.

18000 руб.

19.12.2023    1510    12    3    

8

Обмен данными с сайтом. БП 3.0

Оптовая торговля Розничная торговля Сайты и интернет-магазины Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Обмен данными с сайтом на платформе 1С:Битрикс (и подобными) для 1С: Бухгалтерия предприятия 3.0.

12000 руб.

18.03.2019    31507    111    100    

64

Интеграция 1С — Битрикс24. Обмен задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (8.3.18.1289). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    17880    6    15    

13

Универсальный парсер интернет-магазинов

Оптовая торговля Розничная торговля Сайты и интернет-магазины Платформа 1С v8.3 Управляемые формы 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Управленческий учет Платные (руб)

С того времени, как я начал парсить сайты, прошло много лет. За это время я спарсил более 100 сайтов и записал эти товары в 1С. В итоге на свет появился универсальный парсер, который поможет Вам спарсить интернет-магазин и при этом не написать ни строчки кода.

9600 руб.

19.10.2018    52176    220    99    

111
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. twilight_dream 18.04.20 14:48 Сейчас в теме
С одной стороны метод весьма интересный в том смысле, что программист 1С контроллирует весь процесс. А в данном случае даже пользователь.. Однако есть и свои недостатки. Как, например, выгрузить картинки из 1С, или загрузить картинку товара с локальной машины, используя REST API и только его. А если надо подключать другие методы, тогда и собственно почему бы и всё не загрузить другими методами, написав небольшой плагин, чтобы base64-закодированную картинку(например) перекодировать во временный файл на сервере и перебрасывать в нужную папку.

Попробовал написать пару строк обработки для добавления категории. Не понравилось, что картинки копируются каждый раз из указанного ресурса на сайт. Ну, вобщем как то всё подозрительно. Или вы знаете, как просто можно указать через REST API урл картинки, которая уже лежит на своём месте?
+
2. osivv 265 18.04.20 15:15 Сейчас в теме
(1) Простите, но ничего не понял.
REST API WordPress дает только одну возможность публиковать медиа, если знаете еще, поделитесь, буду признателен.
Если имеете в виду под "ресурсом" (-> из указанного ресурса на сайт), ресурсы в сети интернет, то здесь никак не проконтролируешь.
А если ведется учет картинок в 1С, то здесь все просто, есть ID картинки (или урл картинки), то значит уже опубликован.

Как, например, выгрузить картинки из 1С, или загрузить картинку товара с локальной машины, используя REST API и только его

Ну, наверное, картинки должны храниться на общем сетевом ресурсе. В этой и других моих разработках, используется чистый REST API, без всяких сторонних плагинов и т.д. и т.п., более того, этим я хочу показать, что 1С самодостаточная система чтобы общаться с сайтом напрямую. без сторонних объектов и разработок.
+
3. twilight_dream 18.04.20 23:32 Сейчас в теме
(2)Уникальный ответ:
(вопрос)
- Как пройти на набережную, подскажите, я не знаю.
(ваш ответ)
- Простите, но ничего не понял. Есть только одна дорога на набережную, если знаете ещё, поделитесь.

Удачи Вам!
+
4. osivv 265 19.04.20 11:53 Сейчас в теме
(3)(2)
REST API WordPress дает только одну возможность публиковать медиа

Если вы об этом, то пожалуйста: POST /wp/v2/media
Ссылка: https://developer.wordpress.org/rest-api/reference/media/
+
5. twilight_dream 19.04.20 22:40 Сейчас в теме
Спасибо. Наверно был сонный, когда смотрел, прямо вот там же смотрел, а пункт "media" не увидел.

Я там не совсем понял, как всё же передавать сами данные медиафайла. Ну то ладно, может быть разберусь. К примеру я разобрался, и загрузил все нужные картинки в магазин в нужные папки. Но вот в чем проблема, надо загрузить ещё и товары, и в них указать как нибудь путь к этим картинкам. Берем пример из страницы описания (это создание категории POST https://example.com/wp-json/wc/v3/products/categories):
'{
  "name": "Clothing",
  "image": {
    "src": "http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_2_front.jpg"
  }
}'


Ну, у меня, естественно, своё местоположение вместо того, что в примере. Так вот эти картинки зачем-то копируются. То есть создается копия картинки из указанного SRC. Но они ведь уже лежат на нужном месте. Но всё равно делаются дубликаты.
+
7. osivv 265 20.04.20 12:58 Сейчас в теме
(5)
"src": "http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_2_front.jpg"

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

(5)
Так вот эти картинки зачем-то копируются. То есть создается копия картинки из указанного SRC. Но они ведь уже лежат на нужном месте. Но всё равно делаются дубликаты.

Всё правильно, WordPress, "думает", что картинка находится на внешнем ресурсе, и копирует.
+
10. twilight_dream 20.04.20 16:31 Сейчас в теме
(7)
Всё правильно, WordPress, "думает", что картинка находится на внешнем ресурсе, и копирует.


А разве можно его заставить думать по-другому? Я просто за три дня пока этот вопрос изучаю, не много успел прочесть.Продукцию не пробовал грузить. Может там и по-другому.
Если там пытаешься указать локальный адрес, дает ошибку
code: woocommerce_rest_invalid_remote_image_url
code: message: Ошибка дистанционного получения изображения /home/мой.top/shop/wp-content/uploads/2020/04/50735555_c1e928327f1af2c1a04830f8c63­db868_800-2.jpg. Ошибка: Предоставлен неверный URL.
code: message: dat a: status: 400
+
6. twilight_dream 19.04.20 23:07 Сейчас в теме
То есть при выгрузке из 1С я предполагаю такую кривую схему: сначала картинки надо загрузить из 1С на отдельный ресурс, видимый с сайта. Затем надо при загрузке/обновлении категорий или товаров указывать url этих картинок, и сайт их будет снова скачивать в папку медиа. Уже двойная работа. А при следующей выгрузке создадутся дубликаты картинок, так как при обновлении так же создается копия. Пока что не верится, что разработчики rest API создали такую кривую систему загрузки медиа. Или нужно создавать какую-то процедуру, которая сначала загружает все картинки категорий и продуктов, затем при выгрузке проверяет, есть ли уже такая картинка у продукта. А для этого создавать какую-то систему именования картинок для связи с продуктом. Очень мрачная картина вырисовывается.
+
8. osivv 265 20.04.20 13:14 Сейчас в теме
(6)
То есть при выгрузке из 1С я предполагаю такую кривую схему

Вы не правильно полагаете, в моих разработках всё работает "как надо". Я также ошибался год назад, но потом понял, в чем была моя ошибка.

В данной разработке не рассматривается публикация категорий совместно с картинкой. Т.к. на то момент не было острой необходимости привязывать картинку к категории, полагал, что их не так много как товаров, и привязать можно вручную. Более насущная задача была в публикации товаров с картинками, и все силы я бросил на решение этой задачи. Которая была успешно решена. О чём вы можете почитать тут: https://infostart.ru/public/1222696/

Забегая чуть вперед скажу, что задача с привязкой картинки к категории тоже решена. Но это будет опубликовано в последующем.
+
11. twilight_dream 20.04.20 19:40 Сейчас в теме
(8)
Я также ошибался год назад

Я через год чтения и проб с этой системой тоже могу многое рассказать. Но пока что у меня 3-й день знакомства. Пока что пытаюсь выбрать что лучше - commerce ml, где вообще не нужно ничего программировать, но в случае нестандартных задач вероятно потребуется лезть и в код PHP тоже. Или же REST API, в котором запрограммировать придется всё, однако только со стороны 1С. Но ежели я выберу REST API, и затем придется лезть в код PHP чтобы поправить обмен - это фиаско.
Хотя всегда можно вернутся к старому доброму commerce ml :)
+
9. osivv 265 20.04.20 13:16 Сейчас в теме
(6)
Пока что не верится, что разработчики rest API создали такую кривую систему загрузки медиа.

Разработчики всё сделали как надо.

(6)
Или нужно создавать какую-то процедуру, которая сначала загружает все картинки категорий и продуктов, затем при выгрузке проверяет, есть ли уже такая картинка у продукта. А для этого создавать какую-то систему именования картинок для связи с продуктом.

Ничего выдумывать не надо, все решается элементарно просто тут: https://infostart.ru/public/1222696/
+
12. twilight_dream 20.04.20 19:41 Сейчас в теме
(9)
Разработчики всё сделали как надо

Уж и не ожидал встретить святую наивность в нашем то веке :)))
+
13. osivv 265 21.04.20 00:07 Сейчас в теме
(12)Рад что вам понравилось.
Если вы только 3 дня в теме, то вам "копать и копать".
CommerceML? Ну-ну, устаревшая технология от 1С, как обычно, у нас подбирают то, что на западе давно "никому не надь".
Мне смешно, честное слово, вы повторяете мой путь, 2-х летней давности. XML, PHP, внесение правок в код сайта.
Попробуйте REST API копнуть глубже, разобраться и вы поймете, что в 1С кода для обработки для REST API надо в несколько раз меньше, чем для обработки XML.
Поверьте на слово, REST API WordPress, достаточная система и доработок не требует. Во всяком случае с нашей стороны, я почему-то уверен, что там спецов достаточно, покруче нас с вами. С год назад списывался с программером разработчиком плагинов для WordPress, просил написать плагинчик. Он ответил, что ставка 100$ в час, написание плагина займет 2-3 часа.
Более того, уверен, что вы, как программист, никогда не догоните и не сможете даже трети функционала реализовать.
+
14. i.smirnova@aie 30.04.20 12:35 Сейчас в теме
Добрый день! Заинтересовала ваша часть про категории. А если нам не надо переносить категории из 1С вообще, потому что в 1С они - рабочие, удобные для сотрудников компании, а на сайте - немного другие, удобные для покупателей. Просто без категорий не переносится новый товар из 1С, а если переносим новый товар хотя бы с одной категорией из 1С, то все товары с сайты из своих категорий переносятся в корзину....
+
15. osivv 265 30.04.20 16:05 Сейчас в теме
(14)
Здравствуйте!
Во-первых эта статья про категории постов/страниц, категории товаров немного отличаются.
Переносить товары без категории можно. Если не указывать родительскую категорию товара, то товар по умолчанию попадет в категорию "без категории".
Думаю, что такой расклад вас тоже не устроит.
Как вариант могу предложить в где-нибудь в доп.свойствах товара хранить категорию товара сайта и при публикации в магазин использовать ее.
+
Оставьте свое сообщение