示例#1
0
        /// <summary>
        /// Converts your internal Product object into a Ventata Product.
        /// </summary>
        /// <param name="product">An instance of your internal Product object</param>
        /// <param name="strategy">What Pricing Strategy would you like to use?</param>
        /// <param name="DateAvailable">[Limited Supply Only] When will the sale start?</param>
        /// <param name="DateExpires">[Limited Supply Only] When will the sale end?</param>
        /// <returns></returns>
        public static VentataProduct ConvertProduct(Product product, string strategy, DateTime? DateAvailable = null, DateTime? DateExpires = null)
        {
            VentataProduct productToReturn = new VentataProduct();

            //This is where we keep your PK in our system for easy lookup
            productToReturn.StoreCode = product.Id.ToString();

            //Map internal Product to VentataProduct
            productToReturn.Cost = product.Cost;
            productToReturn.CurrentSupply = product.Supply;
            productToReturn.DateCreated = product.DateCreated;
            productToReturn.Description = product.DescrLong;
            productToReturn.MANUCODE = product.ManufacturerNo;
            productToReturn.MaxPrice = product.Price * 1.5m;
            productToReturn.MinPrice = product.MAP;
            productToReturn.Name = product.Name;
            productToReturn.Price = product.Price;
            productToReturn.SKU = product.SKU;

            //Set Strategy
            productToReturn.Strategy = strategy.ToString();

            //Limited Supply Mappings
            if (DateAvailable.HasValue && DateExpires.HasValue)
            {
                productToReturn.DateAvailable = DateAvailable.Value;
                productToReturn.DateExpires = DateExpires.Value;
            }

            return productToReturn;
        }
示例#2
0
文件: Program.cs 项目: Ventata/API
        static void Main(string[] args)
        {
            //1.  Create a store
            VentataStore vStore = new VentataStore()
            {
                Name = "My Awesome First Store",
                CurrencyCode = "USD",
                ExternalId = "1",
                URL = "http://kateCoolToyStore.com/",
                StoreType = new StoreType()
                {
                    Id = 1006,
                    Name = "Custom"
                }
            };

            Stores ventataStoreAPI = new Stores(CompanyAPIKey);

            VentataStore newlyCreatedStore = ventataStoreAPI.Create(vStore);

            //You might want to store this Id and the API Key in your database so you can make GET/PUT calls to it
            Guid newStoreId = newlyCreatedStore.Id;
            Guid storeApiKey = newlyCreatedStore.ApiKey;

            //such as getting the store back out..
            newlyCreatedStore = ventataStoreAPI.Get(newStoreId);

            //or updating the store...
            newlyCreatedStore.Name = "My (Still Very) Awesome Second Store";
            newlyCreatedStore = ventataStoreAPI.Update(newlyCreatedStore);

            //2.  Now that we've created a store we can add our internal products to that store

            //We'll first start by creating a Product API with that store's security API Key
            Products ventataProductAPI = new Products(storeApiKey);

            //"Product" object is an internal product object, you'll need to edit this class
            //so that it looks like your Product object and also update the Mapper function in Domain
            //but for an example...

            Product prod = new Product()
            {
                Id = 12345,
                Name = "New test product",
                Cost = 4.5m,
                Supply = 100,
                MAP = 5,
                DescrLong = "The most amazing Nirvana t-shirt anyone will ever own",
                DescrShort = "A Nirvana Shirt",
                ManufacturerNo = "TSHIRT120",
                DateCreated = DateTime.UtcNow,
                SKU = "SHIRT-1",
                Price = 10
            };

            //Use the mapper and pick your pricing strategy:
            //UnlimitedSupply
            //LimitedSupply
            //CapacityControl
            //Appointments
            //RazorPrice
            //Off

            VentataProduct vProduct = VentataMapper.ConvertProduct(prod, "UnlimitedSupply");

            //Send product to Ventata
            vProduct = ventataProductAPI.Create(vProduct);

            //Store this Id in your database so you can make other calls to it
            Guid newlyCreatedProductId = vProduct.Id;

            //such as updating the product information...
            vProduct.MaxPrice = 50;
            vProduct.Cost = 4.0m;
            vProduct = ventataProductAPI.Update(vProduct);

            //3.  Now that we've created a product let's make 10 fake orders to associate with that product
            //We first create a ventata order api with the store api key
            Orders ventataOrderAPI = new Orders(storeApiKey);

            for (int i = 0; i < 10; i++)
            {
                //"Order" object is an internal order object, you'll need to edit this class
                //so that it looks like your Order object and also update the Mapper function in Domain
                //but for an example...

                Order o = new Order()
                {
                    Id = i,
                    DateOrdered = DateTime.UtcNow,
                    PaymentMethod = "CC",
                    Shipping = 7,
                    SubTotal = 80,
                    Taxes = 0,
                    Total = 87,
                    OrderDetails = new List<OrderDetail>()
                };

                //add line items to your internal order object
                o.OrderDetails.Add(new OrderDetail()
                {
                    Cost = 4,
                    Price = 10,
                    OrderId = o.Id,
                    ProductId = prod.Id,
                    Quantity = 4
                });

                //Convert to a VentataOrder
                VentataOrder vOrder = VentataMapper.ConvertOrder(o);

                //Convert VentataOrderDetails (line items)
                foreach (OrderDetail detail in o.OrderDetails)
                {
                    VentataOrderDetail vDetail = VentataMapper.ConvertOrderDetails(detail);

                    //set the product id to the ventata product id
                    //You could do this more elegantly in your own system
                    //but you can use our API to reconcile the two products Id's with the following call:
                    vDetail.ProductId = ventataProductAPI.GetProductByStoreCode(detail.ProductId.ToString()).Id;

                    //add it to the order
                    vOrder.OrderDetails.Add(vDetail);
                }

                //send it off to Ventata
                vOrder = ventataOrderAPI.Create(vOrder);

                //You can store this Id in your system to make future calls to this resources
                Guid newlyCreatedOrderId = vOrder.Id;
            }

            //4. Call for a new price!
            decimal newPrice = ventataProductAPI.GetNewPrice(newlyCreatedProductId).Price;
        }