:: Не фоксом единым
Синхронизация Woocommerce и FoxPro
Dwinskiy
Автор

Сообщений: 12
Дата регистрации: 07.03.2021
Доброго времени суток, foxclub.)

Описание задачи и тестовой площадки.

Магазин прод товаров использует FoxPro (9) в качестве рабочего инструмента для ведения учёта товаров, этой же базой пользуются кассовые аппараты и бухгалтерия.
Возникла необходимость создать сайт, решили делать на Woocommerce (кто не в курсе - магазинный движок для сайтов на WordPress).

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

Сначала копал в сторону экспорта из FoxPro в CSV/XLS, с последующим импортом в БД сайта, но позже понял, что это абсолютно колхозное и костыльное решение, и в дальнейшем это встанет в огромные проблемы.

Дальше вспомнил, что со стороны сайта есть отличная api-шка (https://woocommerce.github.io/woocommerce-rest-api-docs/), осталось понять, как подружить FP и WC.

База состоит из таблиц, некоторые их них нужно синхронизировать с БД сайта:

Артикул; Имя товара; Группа товара; Количество; Цена; Единицы измерения;

Импорт базы на сайт, и последующая синхронизация количества товаров - вот что предстоит сделать, и о чём я спрашиваю форум. С FoxPro вижусь в первый раз, единственное, что получилось сделать - установить её не только на winXP в виртуалке, но и завести на win10.)

Спасибо.
Ratings: 0 negative/0 positive
Re: Синхронизация Woocommerce и FoxPro
Taran

Сообщений: 13623
Откуда: Красноярск
Дата регистрации: 16.01.2008
Я пошёл бы со стороны Фокса.
Отдельное приложение с таймером.
Либо, если есть возможность модифицировать рабочую фокс программу, то в нее внедрить.
В каждой таблице, в каждой записи желательно поле: датавремя последнего изменения.
Чтобы выбирать и отсылать только изменённые записи.
Если такого поля нет, то понадобится доп.таблица, в которой будет храниться котр.сумма каждой записи на компе.
Анализировать и отправлять только изменённые. Соотв.сохранять слепок или контр.сумму отправленной записи.
Ну а далее изучать api и обращаться с вебом только через него. В принципе там должно быть все необходимое.



Исправлено 1 раз(а). Последнее : Taran, 13.03.21 13:36
Ratings: 0 negative/0 positive
Re: Синхронизация Woocommerce и FoxPro
PaulWist

Сообщений: 14601
Дата регистрации: 01.04.2004
Dwinskiy
Импорт базы на сайт, и последующая синхронизация количества товаров - вот что предстоит сделать, и о чём я спрашиваю форум. С FoxPro вижусь в первый раз, единственное, что получилось сделать - установить её не только на winXP в виртуалке, но и завести на win10.)


1. Где лежат таблички (dbf, взрослая СУБД)? от этого будет зависеть "горячая синхронизация".

2. Поиск по WinHttp

3. "Штатного" парсера JSON в фоксе нет.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Синхронизация Woocommerce и FoxPro
S-type

Сообщений: 2969
Дата регистрации: 24.04.2004
Dwinskiy
настроить синхронизацию количества товаров, чтобы изменение количества (после продажи/возврата) изменения происходили на обеих площадках.

Задача синхронизации - не самая сложная, но и не самая простая. А в данном случае - задача двусторонней синхронизации. Причём, связано это с деньгами. Конечно, если покупки производятся раз в месяц - проблем нет. Но, если покупки частые, то придётся очень тщательно продумывать механизмы синхронизации.

Удачи.



Исправлено 2 раз(а). Последнее : S-type, 13.03.21 22:53
Ratings: 0 negative/0 positive
Re: Синхронизация Woocommerce и FoxPro
Гулин Федор

Сообщений: 4633
Откуда: Минск
Дата регистрации: 24.10.2002
я слабо понял вообще
но я бы попробовал от простого
настроить какой то одбс (jdbc ) коннект к фокс. бд
с того тула на к-м вы собираететсь писать синхронизацию.

Если я правильно понимаю слово импорт в данном контексте
надо грузить из VFP во внешнюю систему.

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


ps промежуточные CSV вполне себе тоже вариант возможно НЕ лучший

ppps не увиде в начальном топике 2-стороннего обмена
если он есть (в реальном режиме)
- то да это сильно усложняет картину.
Если это надо скажем раз в день - тоже усложняет но не настолько.
Ratings: 0 negative/0 positive
Re: Синхронизация Woocommerce и FoxPro
Taran

Сообщений: 13623
Откуда: Красноярск
Дата регистрации: 16.01.2008
Гулин Федор
я слабо понял вообще
но я бы попробовал от простого
настроить какой то одбс (jdbc ) коннект к фокс. бд
с того тула на к-м вы собираететсь писать синхронизацию.

Если я правильно понимаю слово импорт в данном контексте
надо грузить из VFP во внешнюю систему.

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


ps промежуточные CSV вполне себе тоже вариант возможно НЕ лучший

ppps не увиде в начальном топике 2-стороннего обмена
если он есть (в реальном режиме)
- то да это сильно усложняет картину.
Если это надо скажем раз в день - тоже усложняет но не настолько.

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

Федор. Будь чуть поскромнее, ТС в фоксе новичек, про другое не указано, скорее тоже, а ты сразу терминами грузишь.



Исправлено 1 раз(а). Последнее : Taran, 15.03.21 20:38
Ratings: 0 negative/0 positive
Re: Синхронизация Woocommerce и FoxPro
Dwinskiy
Автор

Сообщений: 12
Дата регистрации: 07.03.2021
Ребята, спасибо за ответы.

Синхронизация будет не по определённому времени, а по событию с двух с торон - изменение поля остатка (читай - импортировать только товар, который куплен/забронирован).

Решил разбить задачу на 3 этапа.

Размещаю оплачиваемый таск.

Дано:
1) база в dbf
2) сайт с woocommerce

Задача: синхронизировать.

Условия:

при изменении в оффлайн базе - изменяется онлайн.
при изменении в онлайн базе - изменяется оффлайн.

Импортировать БД оффлайна в онлайн, и настроить синхронизацию.



Следующий этап - создание инвойсов, 3 состояния заказа "бронь/возврат/однозначно ушло".

Задачу могу оплатить через kwork/или в личке на карту.

Предоставляю доступы к сайту/ftp, и базу товаров.
!.



Исправлено 1 раз(а). Последнее : Dwinskiy, 17.03.21 18:50
Ratings: 0 negative/0 positive
Re: Синхронизация Woocommerce и FoxPro
PaulWist

Сообщений: 14601
Дата регистрации: 01.04.2004
Не взлетит, нужны распределенные транзакции, либо очередь.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/1 positive
Re: Синхронизация Woocommerce и FoxPro
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Знакомая задача. Но у меня все решается довольно просто, поскольку БД на MS SQL, и магазин ASP.NET
Никакой синхронизации. Просто на MS SQL создана БД, которая через View получает нужные данные из рабочей БД.
Ну и из нее же берутся данные, для прикладной системы.

Глянул что такое Woocommerce.
Вполне современная штука. Заинтересовала)
Она использует современные механизмы. REST API
Скрестить ее с очень старым фоксом, мне кажется нестоящая задача.
Если бы БД была на взрослом сервере, сколько угодно, но не через фокс.

А так. Верные по сути желания
Dwinskiy
Синхронизация будет не по определённому времени, а по событию с двух с торон - изменение поля остатка (читай - импортировать только товар, который куплен/забронирован).
Если со стороны Woocommerce наверняка можно настроить, на отлов события, то со стороны фокса это либо таймер, с проверкой на изменение всех нужных таблиц, либо лезть в прогу, и там создавать события, и их обрабатывать. И все равно, потом еще дописывать взаимодействие через JSON.

Если задача и выполнима на фоксе, то огромными усилиями.
Думаю легче, написать прослойку на нормальном языке, который умеет работать с dbf, и REST API
Ratings: 0 negative/0 positive
Re: Синхронизация Woocommerce и FoxPro
Гулин Федор

Сообщений: 4633
Откуда: Минск
Дата регистрации: 24.10.2002
PaulWist
Не взлетит, нужны распределенные транзакции, либо очередь.

а поясните плз и то и то.
с распред. транзакциями сталкивался но оч. мало
когда надо было на одном филиале (ms-sql) списать а на другой (тоже ms-sql) записать перемещение товаров
и то делал не я а сам я видел только код

а очередь - вообще интересно (что,Как и почему)

@Аспид -
Думаю легче, написать прослойку на нормальном языке, который умеет работать с dbf, и REST API
я тоже так думаю - вопрос на каком языке то писали б сами

и если допустим БД была бы в ms-sql - то 2 слова как бы ее скрестить было просто.
я считаю себея неплохим спецом в ms-sql - но даже близко не вижу решения
или решение это и есть
MS SQL создана БД, которая через View получает нужные данные из рабочей БД.
через линк-сервер как я поинмаю ??
Ratings: 0 negative/0 positive
Re: Синхронизация Woocommerce и FoxPro
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Гулин Федор
на каком языке то писали б сами
Ну это кому что ближе.
Я бы на шарпе.
Коллега, интенсивно питон изучает)))
Гулин Федор
через линк-сервер как я поинмаю ??
Даже проще. Все на 1 инстансе.
Он открыт для веба.
Конечно права и пр. не забывать)
Ratings: 0 negative/0 positive
Re: Синхронизация Woocommerce и FoxPro
tandem

Сообщений: 16
Дата регистрации: 25.05.2008
Dwinskiy

[b]Дано:
1) база в dbf
2) сайт с woocommerce

2) Правильно: Сайт c CMS "WordPres" c плагином электронной коvмерции "WooCommerce"
- WordPress использует MySQL в качестве системы управления базами данных...
www.wpbeginner.com

- плагин WooCommerce использует базу "WordPres" + добавляет свои таблицы
usersinsights.com.

т.е. можно работать на прямую с базами данных MySQL (или McirandaDB - более популярна) используя odbc32 драйвера.
MariaDB в сравнении с MySQL - mariadb.com
Ratings: 0 negative/0 positive
Re: Синхронизация Woocommerce и FoxPro
Dwinskiy
Автор

Сообщений: 12
Дата регистрации: 07.03.2021
Спасибо за ответ.
Но мне, как человеку, который в жизни VFP видит первый раз, намного сложнее справиться с поиском odbc чего-то там.
Я банально не знаю с чего начать. Именно поэтому зашёл на Ваш форум, и пытаюсь понять, куда двигаться.
Ratings: 0 negative/0 positive
Re: Синхронизация Woocommerce и FoxPro
Dwinskiy
Автор

Сообщений: 12
Дата регистрации: 07.03.2021
Ребята, кто может помочь?
Ratings: 0 negative/0 positive
Re: Синхронизация Woocommerce и FoxPro
PaulWist

Сообщений: 14601
Дата регистрации: 01.04.2004
Записать остатки и итп в MySQL можно из триггера фокса, тут проблем нет (за исключением поддержки распределенных транзакций).
Обновляем запись в табличке фокса, запускается триггер на Insert/Update/Delete, который в MySQL модифицирует данные.

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


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Синхронизация Woocommerce и FoxPro
S-type

Сообщений: 2969
Дата регистрации: 24.04.2004
Dwinskiy
Ребята, кто может помочь?
А чем тебе помочь? Взять и сделать?

Это на первый взгляд всем почему то кажется - да сделать, что бы данные отсюда перелетали сюда - раз плюнуть. А потом выясняется, что что то не пришло (почему то), что то прилетело дважды. Следующая задача - начинается логирование, выяснение "где же собака порылась". В твоём случае - двусторонний обмен и деньги. Это ведь будут потери, если один и тот же товар не продадут, либо продадут дважды. Что бы сделать - надо ставить тестовый стенд, выписывать варианты обмена, попытаться их реализовать и посмотреть - какие вылезут сложности. А они (всякие технические проблемы) обязательно вылезут. Например, драйвера odbc. Сунешься - вроде бы есть, даже несколько бесплатных. Начинаешь пробовать - один русские буквы корябаются, другой даты не пропускает, а третий вообще не работает. В итоге есть платный, который будет работать. Или тот же триггер. Вот кто может сказать, почему на триггере процедура висит, но не сработала? Предположим, ты реализуешь какую то схему, которая у тебя будет работать. Следующий этап - нагрузочное тестирование. Делаешь на стенде 100 операций и смотришь - а не свалился ли он... Потом делаешь 1000...

В общем, на мой взгляд, хорошая задача не на один месяц. Реально - где то на пол года.
Ratings: 0 negative/0 positive
Re: Синхронизация Woocommerce и FoxPro
Dwinskiy
Автор

Сообщений: 12
Дата регистрации: 07.03.2021
в сообщении выше (путём недолгого поиска его можно найти) - я писал про оплату.
Ratings: 1 negative/0 positive
Re: Синхронизация Woocommerce и FoxPro
Dwinskiy
Автор

Сообщений: 12
Дата регистрации: 07.03.2021
В woocommerce есть функционал, который по событию на сайте может обращаться по любому адресу и передавать любую информацию. То есть, резюмируя - инструменты есть.
Ratings: 0 negative/0 positive
Re: Синхронизация Woocommerce и FoxPro
Dwinskiy
Автор

Сообщений: 12
Дата регистрации: 07.03.2021
Цитата:
Это на первый взгляд всем почему то кажется - да сделать, что бы данные отсюда перелетали сюда - раз плюнуть.
Никто и не говорит, что это просто. Наоборот - я поднял вопрос реализации.

Цитата:
А потом выясняется, что что то не пришло (почему то), что то прилетело дважды. Следующая задача - начинается логирование, выяснение "где же собака порылась". В твоём случае - двусторонний обмен и деньги. Это ведь будут потери, если один и тот же товар не продадут, либо продадут дважды. Что бы сделать - надо ставить тестовый стенд, выписывать варианты обмена, попытаться их реализовать и посмотреть - какие вылезут сложности. А они (всякие технические проблемы) обязательно вылезут.
Про тестовую площадку - писал, она - есть, специально развёрнутая тестовая площадка для тестов. Площадка. Тестовая. Для тестов. Она развёрнута. Уже. Специально. Для тестов. Площадка.

То, что нужен не импорт, а синхронизация - тоже УЖЕ написано. Даже обсуждены механизмы, что именно нужно синхронизировать.

Цитата:
Сунешься - вроде бы есть, даже несколько бесплатных. Начинаешь пробовать - один русские буквы корябаются, другой даты не пропускает, а третий вообще не работает. В итоге есть платный, который будет работать.
НЕ ПОВЕРИТЕ, но и ПРО ЭТО тоже писал - пытался делать промежуточный csv/excell файл.

Цитата:
Следующий этап - нагрузочное тестирование. Делаешь на стенде 100 операций и смотришь - а не свалился ли он... Потом делаешь 1000...
- не может быть... Правда? А я думал, что просто лицом в клавиатуру упал, и - БАЦ - всё заработало... А оно вот оно как...
Цитата:
В общем, на мой взгляд, хорошая задача не на один месяц. Реально - где то на пол года.
Эх, а я думал - управимся в 15 минут...

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

Ваш пост - простой высер. Понимая, что VFP пользуется в основном старшее поколение, делаю вывод - Вам просто нехрен делать, и Вы решили накатать абсолютно очевидно пустое сообщение, которое не несёт никакой смысловой нагрузки впринципе. Небо - голубое, трава - зелёная, солнце - светит. Да неужели?
Ratings: 1 negative/0 positive
Re: Синхронизация Woocommerce и FoxPro
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
Dwinskiy
в сообщении выше (путём недолгого поиска его можно найти) - я писал про оплату.

Если речь идёт об оплате, то есть раздел форума "Доска объявлений". В этом разделе есть правила, и следует там разместить предложение об оплате.

forum.foxclub.ru
Ratings: 0 negative/1 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 3 (Гостей: 3)

© 2000-2024 Fox Club 
Яндекс.Метрика