Coder Social home page Coder Social logo

woocommerce / woocommerce-order-source-attribution Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 0.0 305 KB

WooCommerce Order Source Attribution helps merchants understand which marketing activities, channels or campaigns are leading to orders in their stores.

Home Page: https://github.com/woocommerce/woocommerce-order-source-attribution

JavaScript 50.24% PHP 42.28% Shell 7.48%
javascript php woocommerce wordpress

woocommerce-order-source-attribution's Introduction

WooCommerce Monorepo

WooCommerce

Welcome to the WooCommerce Monorepo on GitHub. Here you can find all of the plugins, packages, and tools used in the development of the core WooCommerce plugin as well as WooCommerce extensions. You can browse the source, look at open issues, contribute code, and keep tracking of ongoing development.

We recommend all developers to follow the WooCommerce development blog to stay up to date about everything happening in the project. You can also follow @DevelopWC on Twitter for the latest development updates.

Getting Started

To get up and running within the WooCommerce Monorepo, you will need to make sure that you have installed all of the prerequisites.

Prerequisites

  • NVM: While you can always install Node through other means, we recommend using NVM to ensure you're aligned with the version used by our development teams. Our repository contains an .nvmrc file which helps ensure you are using the correct version of Node.
  • PNPM: Our repository utilizes PNPM to manage project dependencies and run various scripts involved in building and testing projects.
  • PHP 7.4+: WooCommerce Core currently features a minimum PHP version of 7.4. It is also needed to run Composer and various project build scripts. See troubleshooting for troubleshooting problems installing PHP.
  • Composer: We use Composer to manage all of the dependencies for PHP packages and plugins.

Once you've installed all of the prerequisites, you can run the following commands to get everything working.

# Ensure that you're using the correct version of Node
nvm use
# Install the PHP and Composer dependencies for all of the plugins, packages, and tools
pnpm install
# Build all of the plugins, packages, and tools in the monorepo
pnpm build

At this point you are now ready to begin developing and testing. All of the build outputs are cached running pnpm build again will only build the plugins, packages, and tools that have changed since the last time you ran the command.

Check out our development guide if you would like a more comprehensive look at working in our repository.

Repository Structure

  • Plugins: Our repository contains plugins that relate to or otherwise aid in the development of WooCommerce.
    • WooCommerce Core: The core WooCommerce plugin is available in the plugins directory.
  • Packages: Contained within the packages directory are all of the PHP and JavaScript provided for the community. Some of these are internal dependencies and are marked with an internal- prefix.
  • Tools: We also have a growing number of tools within our repository. Many of these are intended to be utilities and scripts for use in the monorepo, but, this directory may also contain external tools.

Reporting Security Issues

To disclose a security issue to our team, please submit a report via HackerOne here.

Support

This repository is not suitable for support. Please don't use our issue tracker for support requests, but for core WooCommerce issues only. Support can take place through the appropriate channels:

NOTE: Unfortunately, we are unable to honor support requests in issues on this repository; as a result, any requests submitted in this manner will be closed.

Community

For peer to peer support, real-time announcements, and office hours, please join our slack community!

Contributing to WooCommerce

If you have a patch or have stumbled upon an issue with WooCommerce core, you can contribute this back to the code. Please read our contributor guidelines for more information on how you can do this.

woocommerce-order-source-attribution's People

Contributors

jconroy avatar jpry avatar rawdreeg avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

woocommerce-order-source-attribution's Issues

Investigate storing multiple sources over time, to get a fuller picture of what sources lead to a customer purchasing on the store

Investigate the best way to record multiple order sources over time, to get a fuller picture of what sources lead to a customer purchasing the store. The initial version of this extension only shows the last-collected source data, which may not give a full picture of customer habits. To that end, it might be useful to allow merchants to see how their customers are referred to their store over time, and how often that leads to a purchase or registration.

Origin column in orders table repeats the same data for all subsequent orders in the column.

Describe the bug:

The origin column in the orders table repeats the same data for all subsequent orders in the row. If order A is of Origin: typein, and order B and C have no origin metadata, the origin column for B and C display typein instead of (none)

Expected behavior:

The origin data should reflect the value saved

Actual behavior:

Isolating the problem:

  • I have deactivated other plugins and confirmed this bug occurs when only the extension is active.
  • I can reproduce this bug consistently using the steps above.

Design i1.5 updates

Internal discussion: pe2C5g-HR-p2
Figma: zbcskVHHx3bqMjuFCEFEIN-fi-227-8716

Discussion Summary

As part of next steps before launching the Order Attribution feature in Woo, we are looking to make a few UI changes.

There is agreement to go the direction of adding a Customer History widget that will contain Total orders, Total spend, and Average order value. This info can be pulled from the Customers page.

The term Total orders is a slight change from the original term Orders. We think Total Orders does a better job conveying our meaning. A tooltip has been added for good measure, which will contain the text:

Total of completed orders by this customer, including the current one. Excludes cancelled or refunded.

If we make this change, the term should be the same in both places (orders widget and Customers page).

For the settings page, the following text will be used:

Enable this feature to track and credit channels and campaigns that contribute to orders on your site.

Proposed changes

Tasks

Investigate the WP Consent API

WP Consent API is a plugin that standardizes the communication of accepted consent categories between plugins. It requires a cookie banner plugin and, at least, one other plugin that supports the WP Consent API.

I will assess this API for usage in the woocommerce-order-source-attribution extension -- especially for markets that require explicit consent for tracking data.

Tasks

  • Download and install WP Consent API
  • Set up GDPR consent prompt.
  • Test implementation
  • Document findings

Ensure HPOS compatibility

This extension will need to write data to Order meta, so this needs to be fully compatible with HPOS.

Clean up before making the repo public

P2 discussion: pe2C5g-ur-p2#comment-554.

We've been thinking about opening up the repo. However, we'll need to do some cleanup before we can make the repo public.

@jconroy has suggested the following tasks:

  • Let's look to put some proper versioning / tagging stable versions in place – I think this will help with updating/maintaining versions on WCCOM while we are testing, etc.
  • Update GitHub About
  • Update Readme (Made by Woo, Support policy, Prerequisites)
  • Very basic user docs (will also help WCCOM people) – perhaps even work towards a Feature (pcTzPl-1co-p2) and Technical Overview (pcTzPl-1eb-p2)
  • No blank issues or PRs (example – there are a few)
  • Links to internal p2 discussions to use GitHub shorthand and relevant info pulled into the repo (so nothing is hidden)

Standardize naming across the plugin

Description

We're calling the extension ** WooCommerce Order Source Attribution**, but we're referring to the extension as Grow Order Attribute Prototype or ** Order Attribution/Source Prototype* in multiple instances.

It'd be good if we could standardize the naming across the plugin code base and documentation.

Thoughts? @jconroy, @JPry and @MatthiasReinholz

Move repo to Git Flow release model.

I suggest moving this repo to a Git Flow release model (pb0Spc-1FG-p2) to align with the rest of our repos. As part of this change, I would also rename the main branch to trunk.

Here's the proposed task list:

  • Rename main branch develop in a local clone.
  • Push new/renamed develop to GitHub.
  • Change the default branch in GitHub repo settings.
  • Advertise the change, so all team members and contributors know to switch their local clone to develop.
  • Ensure all open PRs are updated to the correct target branch - now develop for typical PRs.
  • Create a trunk branch at the same point as the latest release
  • Update release documentation
  • Fix any external references to main or links to source code. For example, integrations that refer to the main branch (e.g. GitHub Actions), or documentation links.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.