Синхронизация листов в Libreoffice

490
PaulMcF87

Надеюсь, кто-то может помочь.

У меня есть дропшип-сайт по электронной коммерции в Woocommerce, который я обновляю через CSV с помощью WPAllImport. В настоящее время я загружаю таблицу CSV от моего поставщика, которая содержит информацию о текущих ценах на товары и количестве товара на складе. В настоящее время мне необходимо пройти через эту таблицу, чтобы найти продукты, которые я продаю, и перенести данные из таблицы поставщиков в мою собственную таблицу, которая занимает очень много времени. Я обязан это сделать, потому что идентификаторы продуктов, которые использует мой поставщик, отличаются от идентификаторов продуктов, которые Woocommerce дает для моих продуктов, и не могут напрямую загружать их CSV.

Когда я загружаю CSV-файл от поставщика, я всегда сохраняю его как sourcestock.csv, чтобы каждое новое обновление заменяло / заменяло любые предыдущие версии.

Могу ли я в любом случае связать свою электронную таблицу / базу данных с sourcestock.csv, чтобы при поступлении новых данных моя электронная таблица / база данных автоматически обновлялась и заполнялась самыми последними значениями?

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

Могу ли я связать свой идентификатор продукта с их идентификатором продукта, а затем связать соответствующий

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

Пример данных:

Моя форма

ID Parent ID Title Stock Price 00001 0 Product 1
00002 00001 Product 1 - Variant 1 10 £1.99 00003 0 Product 2
00004 00003 Product 2 - Variant 1 10 £1.99 00005 00003 Product 2 - Variant 2 10 £1.99

Форма поставщика

ID Title Stock Price PROD1 Product 1 - Variant 1 20 £2.99
PROD2 Product 2 - Variant 1 20 £2.99 PROD3 Product 2 - Variant 2 20 £2.99

Так что в идеале я хотел бы связать:

00002 -> PROD1 00004 -> PROD2 00005 -> PROD3

И свяжите цену и ячейки акций, связанные с идентификатором поставщика, с собственными ячейками, которые связаны с моими связанными идентификаторами,
чтобы при изменении запасов или цены PROD1,2 или 3 менялись соответствующие ячейки для акций или цены на моем листе. поэтому акции на моем листе должны обновлять акции до 20, а цены до £ 2.99.

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

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

0
Короткий ответ: вы, вероятно, можете сделать что-то подобное. Более длинный ответ заключается в том, что, AFAIK, Excel не имеет возможности смотреть на понятные человеку данные и понимать их. Для еще лучшего ответа опубликуйте примеры своих данных, включая несколько версий той, которая изменяется. Пожалуйста, не отвечайте в комментариях; [отредактируйте] ваш вопрос, чтобы сделать его более понятным и полным. Размещайте свои данные в виде текста, а не в виде изображений. G-Man 6 лет назад 0
@ G-Man я добавил как мог пример того, что я ищу PaulMcF87 6 лет назад 0

1 ответ на вопрос

1
Adrien

Вам не нужен подход Libreoffice, если вы используете WP All Import. Этот плагин позволяет напрямую отображать поля, а также устанавливать триггеры автообновления.

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

Вам может значительно помочь добавление идентификатора поставщика в качестве вашего SKU варианта или в качестве альтернативного SKU с использованием атрибутов. Это даст вам отображение вариаций между таблицами 1: 1, и это все, что вы обновляете в любом случае. Таким образом, вы можете иметь разные названия продуктов, и, как правило, это плохое поле для исключения, если поставщик изменит его.

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

  1. Загрузите файл sourcestock.csv в виде собственной таблицы в базе данных WP с помощью phpMyAdmin. (будьте осторожны, конечно)

  2. Настройте запрос UPDATE, используя JOIN между таблицей wp_postmeta, которая содержит информацию об акциях и ценах для ваших вариантов, и новой таблицей поставщиков. См. Эту тему для простого обзора: https://dba.stackexchange.com/questions/21152/how-to-update-one-table-based-on-another-tables-values-on-the-fly

Если вы хотите автоматизировать это, вы можете настроить один или несколько триггеров на срабатывание каждый раз, когда вы повторно импортируете suppliertock.csv в эту таблицу. (обязательно импортируйте как обновление, а не как отдельную новую таблицу) Вам понадобится как минимум триггер UPDATE, чтобы установить акции и цену, как вы упомянули (а также любые другие изменяемые поля), но вы также можете захотеть вставить триггер для автоматического добавления новых продуктов, когда это делает поставщик, и, возможно, триггер DELETE, чтобы либо удалить прекращенные товары, либо использовать в качестве способа добавления «прекращенный» тег / атрибут, который также обнуляет запас / отмечает продукт на складе, но не удаляет его из вашей базы данных.

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

Если вы используете встроенный импортер Woocommerce, я бы все равно пошел по пути phpMyAdmin с триггерами или без них. Попытка использовать LO для обработки специального CSV-файла импорта - это просто дополнительная работа. Конечно, вы не можете использовать Base для двух разных CSV-файлов или электронных таблиц, так как вы не можете выполнять запросы более чем к одной таблице с этим типом источника данных в LO. Вы застряли бы с чем-то вроде VLOOKUP и / или какими-то сложными операторами MATCH с вложенными IF. Также VLOOKUP требует смежных столбцов. Если поставщик решит добавить столбец между двумя нужными вам, все сломается. Подход SQL не сломается в этом случае.

По сути, любой из инструментов импорта выполняет какую-то функцию UPDATE JOIN, поэтому зачем сначала делать это в LO только для того, чтобы повторить все заново с помощью Wordpress? Я бы просто ОБНОВИЛ СОЕДИНЕНИЕ один раз напрямую, используя supplier.csv и мою таблицу wp_postmeta.

большое спасибо за ответ. Отличная детализация и надеюсь будет очень полезна. Я собираюсь провести много исследований с моей стороны, так как базы данных очень новы для меня. Есть ли у вас литература, на которую вы можете указать мне направление, чтобы помочь мне достичь этого? PaulMcF87 6 лет назад 0
Моя главная проблема в том, что, хотя я должен использовать цену поставщика в качестве ориентира, моя цена продажи не зависит напрямую от цены моих поставщиков, например, если цена моего поставщика увеличивается на 0,10 фунта, я не обязательно буду увеличивать свою цену на £ 0,10 или даже вообще, у меня есть диапазон маржи, который я стараюсь придерживаться, который может быть разным в зависимости от продукта, я обновляю свою цену, как только моя прибыль падает или начинает приближаться к установленному уровню маржи PaulMcF87 6 лет назад 0

Похожие вопросы