複数のフルフィルメント ロケーション (倉庫) を追加できるように Broadleaf を拡張する方法を理解しようとしています。これがBroadleafの商用版で利用できることは知っていますが、それを買う余裕はありません... :-)
blc_ext_fulfilment_locations (location_id,location_name) や blc_ext_fulfilment_location_inventory (location_id,sku_id,quantity) などのテーブルをいくつか追加する予定です。
問題は、 http: //www.broadleafcommerce.com/docs/core/current/broadleaf-concepts/inventory に記載されているように、InventoryServiceImpl または InventoryServiceExtensionHandler または CheckAvailabilityActivity のどれを拡張するのが適切なオブジェクトかということです。
InventoryServiceImpl を拡張する必要があると想定していますが、この呼び出しextensionManager.getProxy().retrieveQuantitiesAvailableで DAO が実際にプロキシからどのように呼び出されているかを取得できません。
以下は関連するコードです。
@Service("blInventoryService")
public class InventoryServiceImpl implements ContextualInventoryService {
...
@Resource(name = "blInventoryServiceExtensionManager")
protected InventoryServiceExtensionManager extensionManager;
...
@Override
public Map<Sku, Integer> retrieveQuantitiesAvailable(Collection<Sku> skus, Map<String, Object> context) {
ExtensionResultHolder<Map<Sku, Integer>> holder = new ExtensionResultHolder<Map<Sku, Integer>>();
ExtensionResultStatusType res = extensionManager.getProxy().retrieveQuantitiesAvailable(skus, context, holder);
...
}
...
}