Service - Delivery Method Pickup Table: Difference between revisions

From Izara Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 13: Line 13:
= Object Schemas =
= Object Schemas =


; Additional Information: [[Per Service Schemas]]
=== deliveryMethodPickupTable ===


== objType ==
<syntaxhighlight lang="JavaScript">
{
  "objectType": "deliveryMethodPickupTable",
  "canDelete": false,
  "storageResources": {
    "graph": {
      "storageType": "graph",
      "graphServerTag": "GraphHandler"
    }
  },
  "fieldNames": {
    "pickupTableId": {
      "type": "string",
      "randomOnCreate": true,
      "optionalOnCreate": false,
      "requiredOnCreate": false,
      "canUpdate": false,
      "validation": {
        "pattern": {
          "type": "string",
          "pattern": "^[a-zA-Z0-9_-]+$",
          "minLength": 1
        }
      },
      "storageResourceTags": [
        "graph"
      ]
    }
  },
  "identifiers": [
    {
      "type": "identifier",
      "fieldName": "pickupTableId"
    }
  ],
  "generatedBy": "userGenerated",
  "compositeKeyDeliminator": "_"
}
</syntaxhighlight>


=== deliveryMethodPickupTable ===
; Additional Information: [[Per Service Schemas]]


* has ladder of prices same as rateTable


== Object Relationships ==
== Object Relationships ==

Revision as of 09:24, 6 January 2026

Overview

Handler service for pickup location tables, works similar to rateTable, the same values can be used to calculate value for price ladder, each pickupTable instance has a list of locationIds which is where the order can be picked up from.

This allows a seller with multiple branches to charge delivery fee depending on which branch the order gets picked up from.

When doing deepPath search for matching locationIds use the buyer supplied locationIds to find all children locationIds to find matching pickupLocation tables.

Repository

https://bitbucket.org/izara-market-services/izara-market-products-delivery-method-pickup-table

Object Schemas

deliveryMethodPickupTable

{
  "objectType": "deliveryMethodPickupTable",
  "canDelete": false,
  "storageResources": {
    "graph": {
      "storageType": "graph",
      "graphServerTag": "GraphHandler"
    }
  },
  "fieldNames": {
    "pickupTableId": {
      "type": "string",
      "randomOnCreate": true,
      "optionalOnCreate": false,
      "requiredOnCreate": false,
      "canUpdate": false,
      "validation": {
        "pattern": {
          "type": "string",
          "pattern": "^[a-zA-Z0-9_-]+$",
          "minLength": 1
        }
      },
      "storageResourceTags": [
        "graph"
      ]
    }
  },
  "identifiers": [
    {
      "type": "identifier",
      "fieldName": "pickupTableId"
    }
  ],
  "generatedBy": "userGenerated",
  "compositeKeyDeliminator": "_"
}
Additional Information
Per Service Schemas


Object Relationships

atLocation

{
	"atLocation": {
		canChangeToRelTypes: [
			{
				serviceTag:"deliveryMethodPickupTable",
				relationshipTag: "disabledAtLocation"
			},
		],
		storageResources: {
			myGraph: {
				storageType: "graph",
				graphServerTag: "graphHandler"
			}
		},
		links: [
			{
				storageResourceTags: ["myGraph"],
				from: {
					objType: {
						serviceTag: "deliveryMethodPickupTable",
						objectType: "deliveryMethodPickupTable"
					},
					linkType: "many",
				},
				to: {
					objType: {
						serviceTag: "locations",
						objectType: "location"
					},
					linkType: "many",
					handler: true
				}
			},
		]
	}
}

disabledAtLocation

{
	"disabledAtLocation": {
		canChangeToRelTypes: [
			{
				serviceTag:"deliveryMethodPickupTable",
				relationshipTag: "atLocation"
			},
		],
		storageResources: {
			myGraph: {
				storageType: "graph",
				graphServerTag: "graphHandler"
			}
		},
		links: [
			{
				storageResourceTags: ["myGraph"],
				from: {
					objType: {
						serviceTag: "deliveryMethodPickupTable",
						objectType: "deliveryMethodPickupTable"	
					},
					linkType: "many",
				},
				to: {
					objType: {
						serviceTag: "locations",
						objectType: "location"
					},
					linkType: "many",
					handler: true
				}
			},
		]
	}
}

Working documents

Delivery Method Pickup Table