forked frommeertensm/amazon-mws
- Notifications
You must be signed in to change notification settings - Fork15
forecho/amazon-mws
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Interaction with the Amazon Api for vendors called MWS
"require": { // ... "mcs/amazon-mws": "*", // ...},"repositories": [ { "name": "mcs/amazon-mws", "type": "git", "url": "git@github.com:forecho/amazon-mws.git" }]
$ composer require mcs/amazon-mws
require_once'vendor/autoload.php';$client =newMCS\MWSClient(['Marketplace_Id' =>'','Seller_Id' =>'','Access_Key_ID' =>'','Secret_Access_Key' =>'','MWSAuthToken' =>''// Optional. Only use this key if you are a third party user/developer]);// Optionally check if the supplied credentials are validif ($client->validateCredentials()) {// Credentials are valid}else {// Credentials are not valid}
$fromDate =newDateTime('2016-01-01');$orders =$client->ListOrders($fromDate);foreach ($ordersas$order) {$items =$client->ListOrderItems($order['AmazonOrderId']);print_r($order);print_r($items);}
$searchField ='ASIN';// Can be GCID, SellerSKU, UPC, EAN, ISBN, or JAN$result =$client->GetMatchingProductForId(['<ASIN1>','<ASIN2>','<ASIN3>'],$searchField);print_r($result);
publicfunctionuploadAmazon(string$productType,Product$product,int$productNode,$otherAttributes = []) {$client =newMCS\MWSClient(['Marketplace_Id' =>'','Seller_Id' =>'','Access_Key_ID' =>'','Secret_Access_Key' =>'','MWSAuthToken' =>''// Optional. Only use this key if you are a third party user/developer ]);$amazonProducts = [];$postItems = [];$amazonProduct =newAmazonMarketPlaceProduct();if ($product->productSku) {$amazonProduct->setSku($product->parent_sku) ->setFeedProductType($productType) ->setBrand($product->brand) ->setTitle($product->title) ->setManufacturer($product->manufacturer) ->setRecommendedBrowseNodes($productNode) ->setParentChild('Parent') ->setOtherAttributes(\app\core\helpers\ArrayHelper::clearValue($otherAttributes)) ->setVariationTheme($product->variation_theme);array_push($amazonProducts,$amazonProduct);array_push($postItems,$amazonProduct->toArray(false));foreach ($product->productSkuas$productSku) {$retailPrice =$productSku->retail_price ?:0;$salePrice =$productSku->sale_price ?:0;$saleDate =$salePrice ?explode('~',$productSku->sale_date) : [];$_amazonProduct =clone$amazonProduct;$_amazonProduct->setSku($productSku->product_sku) ->setFeedProductType($productType) ->setBrand($product->brand) ->setTitle($product->title) ->setManufacturer($product->manufacturer) ->setPrice($retailPrice >0 ? CurrencyConverter::CNYConverter($currency,$retailPrice) :'') ->setSalePrice($salePrice >0 ? CurrencyConverter::CNYConverter($currency,$salePrice) :'') ->setProductId($amazonProductId) ->setSizeName($productSku->size ?:'') ->setColorName($productSku->color ?:'') ->setProductIdType('EAN') ->setCurrency($currency) ->setConditionType('New') ->setWeight($product->weight) ->setQuantity($product->quantity) ->setParentChild('Child') ->setParentSku($parentSku) ->setSaleFromDate(count($saleDate) ==2 ?$saleDate[0] :'') ->setSaleEndDate(count($saleDate) ==2 ?$saleDate[1] :'') ->setVariationTheme($product->variation_theme) ->setKeywords($product->search_keyword) ->setRecommendedBrowseNodes($productNode) ->setBulletPoint($features) ->setDescription($product->description) ->setOtherAttributes($otherAttributes) ->setImage($productSku->images);array_push($amazonProducts,$_amazonProduct);array_push($postItems,$_amazonProduct->toArray(false)); } }else {$retailPrice =$product->price ?:0;$salePrice =$product->sale_price ?:0;$saleDate =$salePrice ?explode('~',$product->sale_date) : [];$amazonProduct->setSku($parentSku) ->setFeedProductType($productType) ->setBrand($product->brand) ->setTitle($product->{$titleAttribute}) ->setManufacturer($product->manufacturer) ->setPrice($retailPrice >0 ? CurrencyConverter::CNYConverter($currency,$retailPrice) :'') ->setSalePrice($salePrice >0 ? CurrencyConverter::CNYConverter($currency,$salePrice) :'') ->setProductId($amazonProductId) ->setProductIdType('EAN') ->setCurrency($currency) ->setConditionType('New') ->setWeight($product->weight) ->setQuantity($product->quantity) ->setSaleFromDate(count($saleDate) ==2 ?$saleDate[0] :'') ->setSaleEndDate(count($saleDate) ==2 ?$saleDate[1] :'') ->setKeywords($product->search_keyword) ->setRecommendedBrowseNodes($productNode) ->setBulletPoint($features) ->setDescription($product->description) ->setOtherAttributes($otherAttributes) ->setImage($product->images);array_push($amazonProducts,$amazonProduct);array_push($postItems,$amazonProduct->toArray(false)); }// You can also submit an array of MWSProduct objects$feed =$client->postProduct($amazonProducts,'fptcustomcustom','2019.0501','SE9NRV9MSUdIVElOR19BTkRfTEFNUFM=' );return$feed;}
$result =$client->updateStock(['sku1' =>20,'sku2' =>9,]);print_r($result);$info =$client->GetFeedSubmissionResult($result['FeedSubmissionId']);print_r($info);
$result =$client->updateStockWithFulfillmentLatency([ ['sku' =>'sku1','quantity' =>20,'latency' =>1], ['sku' =>'sku2','quantity' =>20,'latency' =>1],]);print_r($result);$info =$client->GetFeedSubmissionResult($result['FeedSubmissionId']);print_r($info);
$result =$client->updatePrice(['sku1' =>'20.99','sku2' =>'100.00',]);print_r($result);$info =$client->GetFeedSubmissionResult($result['FeedSubmissionId']);print_r($info);
For all report types, visit:http://docs.developer.amazonservices.com
$reportId =$client->RequestReport('_GET_MERCHANT_LISTINGS_DATA_');// Wait a couple of minutes and get it's content$report_content =$client->GetReport($reportId);print_r($report_content);
View source for detailed argument description.All methods starting with an uppercase character are also documented in theAmazon MWS documentation
// Returns the current competitive price of a product, based on ASIN.$client->GetCompetitivePricingForASIN($asin_array = []);// Returns the feed processing report and the Content-MD5 header.$client->GetFeedSubmissionResult($FeedSubmissionId);// Returns pricing information for the lowest-price active offer listings for up to 20 products, based on ASIN.$client->GetLowestOfferListingsForASIN($asin_array = [],$ItemCondition =null);// Returns lowest priced offers for a single product, based on ASIN.$client->GetLowestPricedOffersForASIN($asin,$ItemCondition ='New');// Returns a list of products and their attributes, based on a list of ASIN, GCID, SellerSKU, UPC, EAN, ISBN, and JAN values.$client->GetMatchingProductForId($asin_array,$type ='ASIN');// Returns a list of products and their attributes, based on an open text based query$client->ListMatchingProducts($query,$query_context_id =null);// Returns pricing information for your own offer listings, based on ASIN.$client->GetMyPriceForASIN($asin_array = [],$ItemCondition =null);// Returns pricing information for your own offer listings, based on SKU.$client->GetMyPriceForSKU($sku_array = [],$ItemCondition =null);// Returns an order based on the AmazonOrderId values that you specify.$client->GetOrder($AmazonOrderId);// Returns the parent product categories that a product belongs to, based on ASIN.$client->GetProductCategoriesForASIN($ASIN);// Returns the parent product categories that a product belongs to, based on SellerSKU.$client->GetProductCategoriesForSKU($SellerSKU);// Get a report's content$client->GetReport($ReportId);// Returns a list of reports that were created in the previous 90 days.$client->GetReportList($ReportTypeList = []);// Get a report's processing status$client->GetReportRequestStatus($ReportId);// Get a list's inventory for Amazon's fulfillment$client->ListInventorySupply($sku_array = []);// Returns a list of marketplaces that the seller submitting the request can sell in, and a list of participations that include seller-specific information in that marketplace$client->ListMarketplaceParticipations();// Returns order items based on the AmazonOrderId that you specify.$client->ListOrderItems($AmazonOrderId);// Returns orders created or updated during a time frame that you specify.$client->ListOrders($from,$allMarketplaces =false,$states = ['Unshipped','PartiallyShipped'],$FulfillmentChannel ='MFN');// Returns your active recommendations for a specific category or for all categories for a specific marketplace.$client->ListRecommendations($RecommendationCategory =null);// Creates a report request and submits the request to Amazon MWS.$client->RequestReport($report,$StartDate =null,$EndDate =null);// Uploads a feed for processing by Amazon MWS.$client->SubmitFeed($FeedType,$feedContent,$debug =false);// Call this method to get the raw feed instead of sending it$client->debugNextFeed();// Post to create or update a product (_POST_FLAT_FILE_LISTINGS_DATA_)$client->postProduct($MWSProduct);// Update a product's price$client->updatePrice($array);// Update a product's stock quantity$client->updateStock($array);// A method to quickly check if the supplied credentials are valid$client->validateCredentials();
About
Interaction with the Amazon api for vendors called MWS
Topics
Resources
Stars
Watchers
Forks
Packages0
No packages published
Languages
- PHP100.0%