π¦ A series of plugins for Vendure to add features to shipping using boxes and shipping based on product dimensions.
- CRUD of packages/boxes. (Both admin UI / GQL)
- Ability to add dimensions in Product (Using Custom Fields)
- A table in the database to register all packages of an order.
- A
ShippingPackages
service helper to calculate which box to use in Order and update the order in the database
Here you can find out how to install
npm install @vendure-advanced-shipping/core --save
You can find the list of available packages compatible with this repo in the list PACKAGES above.
import { AdvancedShippingCorePlugin } from '@vendure-advanced-shipping/core';
const config: VendureConfig = {
...
plugins: [
AdvancedShippingCorePlugin
]
}
You need to extend the UI adding the uiExtensions
in the compileUiExtensions
of the AdminUiPlugin
. You can read more about how to config here
import { AdvancedShippingCorePlugin } from '@vendure-advanced-shipping/core';
const config: VendureConfig = {
...
plugins: [
...
AdminUiPlugin.init({
...
app: compileUiExtensions({
...
extensions: [AdvancedShippingCorePlugin.uiExtensions],
})
})
]
}
It's done!
This package contains the core features of Advanced Shipping.
A plugin using the Advanced Shipping for calculate shipping using Melhor Envio as provider
A plugin using the Advanced Shipping for calculate shipping using Rodonaves as provider
A plugin using the Advanced Shipping for calculate shipping using UPS Brazil as provider
A plugin to pickup order in store.
- A
ShippingCalculator
to create multiple stores to customer pickup the order based on Postal Code. - A
PickupInStoreCronService
that adds a cronjob that checks every day at mid night orders that its in the state ofPacked
in the interval of 7 days and that the shipping method itspickup-in-store
(the same from theShippingCalculator
) after get, the service will cancel all of then. - A
PickupInStoreCancelOrder
event that fired whenever an Order is cancelled by Cron Job
It's really easy to create a ShippingCalculator
in Vendure and this project takes advantage of it. You just need to create a new ShippingCalculator
class that will inject in his init function, your ShippingPackagesService
so that you can get which packages boxes to use in this order. You can get here an example to how to do it.
This project is a monorepo managed with Lerna. Several npm packages are published from this repo, which can be found in the packages/
directory.
The core and several other packages have unit tests which are can be run all together by running npm test
from the root directory, or individually by running it from the package directory.
Unit tests are co-located with the files which they test, and have the suffix .spec.ts
.
Certain packages have e2e tests, which are located at /packages/<name>/e2e/
. All e2e tests can be run by running yarn e2e
from the root directory, or individually by running it from the package directory.
e2e tests use the @vendure/testing
package. For details of how the setup works, see the Testing docs
This project localization its hosted in Crowdin.
MIT