Как создать файл Excel, который собирает данные клиента с помощью WooCommerce и Python

kak sozdat fajl excel kotoryj sobiraet dannye klienta s pomoshhyu

«Эй, не могли бы вы послать мне электронные письма наших клиентов? Мы собираемся запустить новую маркетинговую кампанию, и они нам нужны как можно быстрее».

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

Каков был запрос?

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

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

Я ожидал, что они попросят CSV файл для массовой загрузки контактов на свою маркетинговую платформу. Они сказали мне, что им нужен файл Excel, поскольку они должны были отредактировать его перед запуском кампании.

Как только они назначили мне проблему Jira, я был готов начать.

Анализируя проблему

WooCommerce предоставляет пользователям функцию экспорта для получения данных клиентов, но не создает файл Excel. Он создает файл CSV или XML.

Когда вы работаете с таким инструментом, как WordPress, первый вариант, о котором вы думаете – это использовать плагин и получить то, что вам нужно.

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

Я также рассмотрел второй вариант: загрузить CSV через пользовательский интерфейс и превратить его в файл Excel с помощью одного из тысячи сервисов, которые можно найти в Интернете.

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

В конце концов, я подумал, что разработка сценария является лучшим и быстрым вариантом решения этой задачи.

WordPress предоставляет разработчикам API. Многие другие плагины из системы WordPress также обеспечивают API, и WooCommerce не является исключением. Документация надежна и предлагает ссылки на библиотеки для наиболее используемых языков, таких как Node.js, Python, PHP и Ruby.

Я решил использовать Python и использовать эту технологию для разработки сценария, который генерирует файл Excel с такой структурой:

  • Два столбца: имя и электронный адрес
  • Одна строчка на клиента

Я выбрал Python по нескольким причинам: есть сотни библиотек, которые могут помочь вам выполнить работу, он гибок и очень полезен, когда дело доходит до работы с данными.

Я также решил использовать Pandas и Openpyxl для обработки данных и создания файла Excel.

Прежде чем кодировать, давайте получим то, что нам нужно

Чтобы работать с API WooCommerce, мне нужно сгенерировать ключи API для работы. Вы можете получить больше информации в официальной документации WooCommerce.

Сначала вам нужно войти в свой экземпляр WooCommerce, а затем перейти к WooCommerce > Настройки > Расширенные > REST API.

0-1

Затем я дам ему краткое описание, выберу пользователя, для которого я хочу создать API, выберу разрешения (чтение/запись или оба), а затем нажмите «Создать ключ API».

Далее я получу ключ потребителя и секрет потребителя:

screencapture-marcoventuritest-it-wooTest-wp-admin-admin-php-2021-10-06-17_19_38

Как подготовить окружающую среду

Первое, что я сделал, это добавил необходимые библиотеки для разработки моего сценария. Я начал с Python библиотеки для WooCommerce. Чтобы установить его, я выполнил эту команду:

pip install woocommerce

хорошо. Теперь я установлю Pandas, инструмент анализа и манипуляции данными для Python:

pip install pandas

После этого я установил Openpyxl, библиотеку Python для чтения и записи файлов Excel:

pip install openpyxl

Давайте кодировать

Я сделал вызов API с помощью функции API, предоставленной библиотекой WooCommerce Python, и сохранил ее в переменной. Затем я передал функции базового URL моего веб-сайта WooCommerce, ключ потребителя, секрет потребителя и версию.

wcdata = API(
    url="<BASE_URL>",
    consumer_key='ck_XXXXXXXXXXXXXXXXXXXX',
    consumer_secret="cs_XXXXXXXXXXXXXXXXXXXX",
    version='wc/v3'
)

Затем я воспользовался функцией GET для вызова конечной точки «клиенты» и создал локально файл JSON («contacts.json») с данными, которые я получил от конечной точки, которую я вызвал непосредственно раньше:

newJson = wcdata.get('customers').json()
with open('contacts.json', 'w') as f:
    json.dump(newJson, f, ensure_ascii=False, indent=4)

Я превратил его в объект Pandas и сохранил в переменной «df_json»:

df_json = pd.read_json('contacts.json')

Я использовал to_excel() функция преобразования объекта в файл Excel. Я передал функции три аргумента:

  • Имя файла, который я собирался создать
  • Индекса установлено значение «false», поскольку я не хотел, чтобы идентификатор записи печатался в моем файле
  • Столбцы, которые я хотел напечатать в своем файле (имя и адрес электронной почты)
df_json.to_excel('customers_contacts.xlsx', index=False, columns=('first_name', 'email'))

Я запустил сценарий и получил это:

6bis

Это оно. Вот как я создал файл Excel с электронной почтой и именами клиентов с помощью API WooCommerce и Python менее чем за 20 строк кода.

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

Последние мнения

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

Первое – это вопрос о переполнении стека. Это помогло мне оптимизировать мой код при создании файла JSON. Я очень оценил выбранный вопрос, особенно когда он подсказал, как можно написать более «приятный» файл JSON в современной системе.

Вторая – о панд. Если вы пишете код Python, в тот или иной день вам придется иметь дело с данными и ими. Эта статья Эрика Марся очень хорошо объясняет, как можно конвертировать файл JSON в Excel с помощью Pandas. Он дает читателям несколько советов по поводу того, как они могут использовать эту мощную библиотеку для эффективного и эффективного отображения нужных данных.

Не стесняйтесь поделиться этой публикацией, если вы обнаружили ее полезной! Вы также можете найти полный код в этой репозитории Github.

Добавить комментарий

Ваш адрес email не будет опубликован.