Commit d484df15 by tdgiang

Add SobanleClient.createAutoOrder orchestration

Orchestrates product selection via productComboPicker and sale creation,
failing gracefully if no product combo matches the target amount.
Co-Authored-By: 's avatarClaude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017KPzWwuTEeX2vXGXvyGn4q
parent 8f457989
"use strict"; "use strict";
var config = require(__config_path + "/config"); var config = require(__config_path + "/config");
var ApiRequest = require("./ApiRequest"); var ApiRequest = require("./ApiRequest");
var pickProductCombo = require("./productComboPicker").pickProductCombo;
var tokenCache = { token: null, expiresAt: 0 }; var tokenCache = { token: null, expiresAt: 0 };
...@@ -125,3 +126,17 @@ function changeSaleStatus(orderId, callback) { ...@@ -125,3 +126,17 @@ function changeSaleStatus(orderId, callback) {
}); });
} }
exports.changeSaleStatus = changeSaleStatus; exports.changeSaleStatus = changeSaleStatus;
function createAutoOrder(customerData, targetAmount, callback) {
exports.getProducts(function (err, products) {
if (err) {
return callback(err);
}
var combo = pickProductCombo(products, targetAmount, {});
if (!combo) {
return callback(new Error("NO_PRODUCT_COMBO_MATCH"));
}
exports.createSale(combo.lines, customerData, callback);
});
}
exports.createAutoOrder = createAutoOrder;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment