This module helps you intregrate metrc REST APIs to your node project.
const metrc = require("metrc");
metrc.config({
sandbox: true,
});
const merchant = new Merchant({
licenseNo: "licenseNo",
vendorkey: "vendor-key",
userkey:"user-key"
});
merchant.getIncomingTransfers(
{
lastModifiedEnd: "2020-08-18T06%3A30%3A00Z",
lastModifiedStart: "2020-08-18T17%3A30%3A00Z",
},
function response(data, error) {
if(error)
throw error
console.log(data);
}
);
merchant.getOutgoingTransfers(
{
lastModifiedEnd: "2020-08-18T06%3A30%3A00Z",
lastModifiedStart: "2020-08-18T17%3A30%3A00Z",
},
function response(data, error) {
if(error)
throw error
console.log(data);
}
);
merchant.getRejectedTransfers(
function response(data, error) {
if(error)
throw error
console.log(data);
}
);
let transfer = merchant.getTransfer(1234);
merchant.getDeliveries(transfer, function (data, error) {
if (error) {
console.log(error)
} else {
console.log(data);
}
});
//A merchant makes a transfer of Deliveries containing Packages to the customer
let delivery = merchant.getDelivery(34600);
merchant.getPackages(delivery, function (data, error) {
if (error) {
console.log(error)
} else {
console.log(data);
}
});
//A merchant makes a transfer of Deliveries containing wholesale Packages to the customer
const transfer = merchant.getTransfer(transferId);
const deliveries = transfer.getDelivery(deliveryId);
let wholesalePackages = delivery.getWholesalePackages();
//A merchant makes a transfer of Deliveries containing Packages to the customer
let package = merchant.getPackage(98202);
merchant.getRequiredLabTestBatches(package, function (data, error) {
if (error) {
console.log(error)
} else {
console.log(data);
}
});
//A merchant makes a transfer of Deliveries containing Packages to the customer
merchant.deleteIncomingTransfer(12344, function (data, error) {
if (error) {
console.log(error);
} else {
console.log(data);
}
});
//A merchant makes a transfer to a customer
merchant.getTemplates({
lastModifiedEnd: "2020-08-18T06%3A30%3A00Z",
lastModifiedStart: "2020-08-18T17%3A30%3A00Z",
}, function (data, error) {
if (error) {
console.log(error)
} else {
console.log(data);
}
});
//A merchant makes a transfer to a customer
let template = merchant.getTransferTemplate();
merchant.getTransferTemplateDeliveries(template, function (data, error) {
if (error) {
console.log(error);
} else {
console.log(data);
}
});
//A merchant makes a transfer to a customer
let delivery = merchant.getDelivery(34600);
merchant.getPackages(delivery, function (data, error) {
if (error) {
console.log(error)
} else {
console.log(data);
}
});
//A merchant makes a transfer to a customer
let transfetTypes = merchant.getTransferTypes();
/* set isActive flag to true for accessing active receipts and false for inactive*/
let isActive = true;
merchant.getIncomingTransfers(
{
lastModifiedEnd: "2020-08-18T06%3A30%3A00Z",
lastModifiedStart: "2020-08-18T17%3A30%3A00Z",
},
isActive,
function response(data, error) {
if(error)
throw error
console.log(data);
}
);
receiptId = 12345;
merchant.getSalesRecieptById(receiptId,
function response(data, error) {
if (error)
throw error
console.log(data);
}
);
const transactionOne = new metrc.PostTransaction({
PackageLabel: "ABCDEF012345670000010331",
Quantity: 1.0,
UnitOfMeasure: "Ounces",
TotalAmount: 9.99
});
const transactionTwo = new metrc.PostTransaction({
PackageLabel: "ABBBR012345670000010331",
Quantity: 2.0,
UnitOfMeasure: "Ounces",
TotalAmount: 18.99
});
let transactionArray = [
transactionOne,
transactionTwo
]
/*Post sales receipt data*/
merchant.postSalesReceipt({
SalesDateTime: "2016-10-04T16:44:53.000",
SalesCustomerType: "Consumer",
PatientLicenseNumber: null,
CaregiverLicenseNumber: null,
IdentificationMetho: null,
}, transactionArray, function (data, error) {
if (error)
throw error;
console.log(data);
});
/*Put sales receipt data*/
merchant.putSalesReceipt({
SalesDateTime: "2016-10-04T16:44:53.000",
SalesCustomerType: "Consumer",
PatientLicenseNumber: null,
CaregiverLicenseNumber: null,
IdentificationMetho: null,
}, transactionArray, function (data, error) {
if (error)
throw error;
console.log(data);
});
const plantId = 23245;
merchant.getPlant(plantId,
function response(data, error) {
if(error)
throw error
console.log(data);
});
const plantLabel = '';
merchant.getPlant(plantLabel,
function response(data, error) {
if(error)
throw error
console.log(data);
});
/** get vegetative plants => plantKey = 'vegetative'
* get flowering plants => plantKey = 'flowering'
* get plants that are on hold => plantKey = 'onhold'
* get plants that are inactive => plantKey = 'inactive'
* get additives plants => plantKey = 'additives'
*/
const plantKey = 'vegetative';
merchant.getPlants(
{
lastModifiedEnd: "2020-08-18T06%3A30%3A00Z",
lastModifiedStart: "2020-08-18T17%3A30%3A00Z",
},
plantKey,
function response(data, error) {
if(error)
throw error
console.log(data);
}
);
merchant.getPlantGrowthPhases(
function response(data, error) {
if(error)
throw error
console.log(data);
}
);
merchant.getPlantAdditiveTypes(
function response(data, error) {
if(error)
throw error
console.log(data);
}
);
merchant.getPlantWasteMethods(
function response(data, error) {
if(error)
throw error
console.log(data);
}
);
merchant.getPlantWasteReasons(
function response(data, error) {
if(error)
throw error
console.log(data);
}
);
const packageId = 41234;
merchant.getPackage(packageId,
function (data, error) {
if (error)
throw error;
console.log(data);
});
const packageLabel = "1AWFF011232022000002578";
merchant.getPackage(packageLabel,
function (data, error) {
if (error)
throw error;
console.log(data);
});
/**
* get active packages => plantKey = 'active'
* get packages that are on hold => plantKey = 'onhold'
* get inactive packages => plantKey = 'inactive'
*/
const packageKey = "";
merchant.getPackages(
{
lastModifiedEnd: "2020-08-18T06%3A30%3A00Z",
lastModifiedStart: "2020-08-18T17%3A30%3A00Z",
},
packageKey,
function (data, error) {
if (error)
throw error;
console.log(data);
});
merchant.getPackageAdjustmentReasons(
function (data, error) {
if (error)
throw error;
console.log(data);
});
merchant.getFacilities(function response(data, error) { if (error) throw error; console.log(data); });