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

У меня есть дропшип-сайт по электронной коммерции в 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.

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

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

1 ответ1

1

Вам не нужен подход 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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .