An open API service indexing awesome lists of open source software.

https://github.com/fostercommerce/shipments-veeqo


https://github.com/fostercommerce/shipments-veeqo

Last synced: about 2 months ago
JSON representation

Awesome Lists containing this project

README

          

# Shipments Veeqo

A **Veeqo provider** for the Foster Commerce Shipments plugin, plus product sync between Craft Commerce and Veeqo.

## What it does

- Adds Veeqo to the Shipments plugin's integration list, so shipments can be pushed to Veeqo from the control panel or queue.
- Pushes the completed order to Veeqo as a single Veeqo order, matched back by the order number (Veeqo auto-allocates it for fulfilment).
- Polls Veeqo on a schedule (Veeqo has no webhooks) and mirrors each Veeqo allocation back as a Craft shipment, writing that allocation's carrier and tracking. When Veeqo splits an order across warehouses, Craft reflects the split.
- Syncs Commerce products and variants to Veeqo as products and sellables when they are saved.
- Pulls stock from Veeqo into Commerce on a schedule, keeping inventory-tracked variants in step (Veeqo is the inventory source of truth).

## Requirements

- Craft CMS `^5.0`
- Craft Commerce `^5.0`
- [Foster Commerce Shipments](https://github.com/fostercommerce/shipments) `dev-main`
- PHP `^8.2`
- A Veeqo account and API key

## Install

```sh
composer require fostercommerce/shipments-veeqo
./craft plugin/install shipments-veeqo
```

See [`docs/installation.md`](./docs/installation.md) for the full guide, including Veeqo account setup and how to add the integration.

## Veeqo integration

Veeqo registers as a provider on the Shipments plugin. You add it under **Shipments -> Settings -> Integrations -> New**, choosing Veeqo as the provider and entering your API key and channel id. From there the Shipments plugin owns the shipment lifecycle (status, history, emails); this plugin only talks to the Veeqo API.

## Product sync

When a Commerce product is saved, the plugin queues a job that creates or updates the matching Veeqo product and its sellables, keyed by SKU. Variants without a SKU are skipped. You can mutate the outgoing payload from your own code before it is sent. See [custom product payloads](./docs/dev-guide/custom-product-payload.md).

## Polling

Veeqo does not offer webhooks, so inbound tracking arrives by polling. You run the pull command on a cron schedule. See [`docs/installation.md`](./docs/installation.md) for the commands and example crontab.

## Stock sync

Veeqo is built to own inventory and dictate stock to its sales channels. This plugin treats Commerce as one of those channels: `shipments-veeqo/stock/pull` reads Veeqo's available stock and writes it onto inventory-tracked Commerce variants. Non-tracked variants are left untouched. Turn it off with the "Let Veeqo adjust Commerce inventory" setting.

## License

Proprietary.