Direct Management

Direct management of menu items is exactly what you're used to. You send a POST request to create a menu item, store its identifier on your side, and then use that identifier to make later changes to that item. This also includes associating things like categories, strains, and tags.

This is the best option if you prefer to have fine-grain control of how items appear on Weedmaps. Just remember to store the id that's returned in the POST (create) request so that you can continue to update that item as time goes on, removing it when its no longer needed.

curl --request POST \
--url 'https://api-g.weedmaps.com/wm/2024-01/menus/[MENU ID HERE]/items' \
--header 'accept: application/json' \
--header 'authorization: Bearer [ACCESS TOKEN HERE]' \
--header 'content-type: application/json' \
--data   '{
    "external_id": "710",
    "external_product_id: "23",
    "name": "Wake and Bake",
    "description": "Our \"Wake and Bake\" cannabis flower boasts a well-balanced cannabinoid profile, carefully cultivated to offer both newcomers and seasoned enthusiasts an enjoyable experience",
    "image_url": "https://images.weedmaps.com/static/placeholders/weedmaps-logo.jpg",
    "cart_quantity_multiplier": 1,
    "inventory_quantity": 9,
    "items_per_pack": 1,
    "published": true,
    "online_orderable": true,
    "license_type": "recreational",
    "genetics": "sativa",
    "brand_name": "WM Cannabis",
    "strain_name": "OG Kush",
    "category_ids": [420, 710],
    "cannabinoids": [
      {
        "slug": "cbd",
        "percent": {
          "min": 1.2,
          "max": 1.2
        }
      },
      {
        "slug": "thca",
        "milligrams": {
          "min": 997,
          "max": 1000
        },
        "percent": {
          "min": 87.4,
          "max": 87.4
        }
      }
    ],
    "terpenes": [
      {
        "slug": "limonene",
        "percent": {
          "min": 2,
          "max": 2.5
        }
      }
    ],
    "tag_names": ["uplifted"],
    "variants": [
      {
        "external_id": "710",
        "inventory_quantity": 9,
        "cart_quantity_multiplier": 1,
        "compliance": {
          "precalculated": true,
          "weight": {
            "value": 3.5,
            "unit": "g"
          }
        },
        "price": {
          "amount": "35.00",
          "currency": "USD"
        },
        "weight": {
          "value": 3.5,
          "unit": "g"
        }
      }
    ],
    "sale": {
      "type": "percentage",
      "amount": 15
    }
  }'
{
  "data": {
    "id": 420,
    "external_id": "710",
    "external_product_id": "23",
    "name": "Wake and Bake",
    "description": "Our \"Wake and Bake\" cannabis flower boasts a well-balanced cannabinoid profile, carefully cultivated to offer both newcomers and seasoned enthusiasts an enjoyable experience",
    "image_url": "https://images.weedmaps.com/static/placeholders/weedmaps-logo.jpg",
    "cart_quantity_multiplier": 1,
    "inventory_quantity": 9,
    "items_per_pack": 1,
    "published": true,
    "online_orderable": true,
    "license_type": "recreational",
    "genetics": "sativa",
    "brand_name": "string",
    "brand": {
      "id": 420,
      "name": "WM Cannabis",
      "published": true,
      "updated_at": "2023-04-20T16:20:00Z"
    },
    "product": {
      "id": 420,
      "name": "Wake and Bake",
      "published": true,
      "updated_at": "2023-04-20T16:20:00Z"
    },
    "strain": {
      "id": 420,
      "name": "Duban Poison",
      "updated_at": "2023-04-20T16:20:00Z"
    },
    "categories": [
      {
        "id": 710,
        "parent_id": 420,
        "slug": "live-resin",
        "name": "Live Resin",
        "published": true,
        "updated_at": "2023-04-20T16:20:00Z"
      }
    ],
    "cannabinoids": [
      {
        "id": 420,
        "slug": "thca",
        "symbol": "THCA",
        "name": "Tetrahydrocannabinolic Acid",
        "updated_at": "2023-04-20T16:20:00Z",
        "milligrams": {
          "min": 23,
          "max": 24.5
        },
        "percent": {
          "min": 23,
          "max": 24.5
        }
      }
    ],
    "terpenes": [
      {
        "id": 420,
        "slug": "limonene",
        "symbol": "LIM",
        "name": "Limonene",
        "updated_at": "2023-04-20T16:20:00Z",
        "milligrams": {
          "min": 23,
          "max": 24.5
        },
        "percent": {
          "min": 23,
          "max": 24.5
        }
      }
    ],
    "tags": [
      {
        "id": 420,
        "slug": "uplifted",
        "name": "Uplifted",
        "published": true,
        "updated_at": "2023-04-20T16:20:00Z",
        "group": {
          "id": 420,
          "name": "Effects",
          "updated_at": "2023-04-20T16:20:00Z"
        }
      }
    ],
    "compliance": {
      "precalculated": true,
      "weight": {
        "value": 3.5,
        "unit": "g"
      }
    },
    "price": {
      "amount": "35.00",
      "currency": "USD"
    },
    "variants": [
      {
        "id": 420,
        "external_id": "710",
        "inventory_quantity": 9,
        "cart_quantity_multiplier": 1,
        "compliance": {
          "precalculated": true,
          "weight": {
            "value": 3.5,
            "unit": "g"
          }
        },
        "price": {
          "amount": "35.00",
          "currency": "USD"
        },
        "weight": {
          "value": 3.5,
          "unit": "g"
        },
        "updated_at": "2023-04-20T16:20:00Z"
      }
    ],
    "price_rules": [
      {
        "id": 420,
        "adjustment_type": "percentage",
        "adjustment_value": 15,
        "active": false,
        "expired": true,
        "expires_at": "2023-07-10T19:10:00Z",
        "updated_at": "2023-04-20T16:20:00Z"
      }
    ],
    "updated_at": "2023-04-20T16:20:00Z"
  }
}