Add support for package payment methods and basic checkout proccess

This commit is contained in:
Almira Krdzic
2018-08-29 07:56:37 +02:00
parent 5ac3bfff36
commit 438d92e16e
35 changed files with 1600 additions and 309 deletions

View File

@@ -16,6 +16,7 @@ import {
} from '../../constants/coMarketConstants';
import {updateMessages} from '../notification/notificationActions';
import {fetchCartCount} from '../cart/cartActions';
import { fromWCPackage } from '../../helpers/PackageHelper';
const client = new HtmlClient();
const priceHelper = new PriceHelper();
@@ -41,28 +42,27 @@ export const fetchPackageDetails = (params) => {
return dispatch => {
dispatch(requestPackageDetails());
return client.fetch({
url: `${API_SERVER}/coMarket/api/getShopPackageDetails`,
method: 'post',
data: params
url: `${API_SERVER}/wp-json/wc/v2/products/${params.idPackage}`,
method: 'get'
})
.then(response => {
if(response.data){
const jsonData = response.data;
const packageData = fromWCPackage(response.data);
dispatch(clearSelections());
if(jsonData.prices && jsonData.prices.length){
dispatch(selectAgreement(jsonData.prices[0]));
if(packageData.prices && packageData.prices.length){
dispatch(selectAgreement(packageData.prices[0]));
}
if(jsonData.groups){
Object.keys(jsonData.groups).forEach((idGroup) => {
const defaultOption = jsonData.groups[idGroup].options.find((option) => {return parseInt(option.isDefault, 10) === 1});
if(packageData.groups){
Object.keys(packageData.groups).forEach((idGroup) => {
const defaultOption = packageData.groups[idGroup].options.find((option) => {return parseInt(option.isDefault, 10) === 1});
if(defaultOption){
dispatch(selectOption(idGroup, defaultOption));
}
});
}
dispatch(recievePackageDetails(jsonData));
dispatch(recievePackageDetails(packageData));
}
})
.catch(error => {
@@ -104,25 +104,25 @@ const requestAddToCart = () => ({
});
export const addToCart = (addParams) => {
const options = generateOptions(addParams.selectedOptions, addParams.selectedAdditionals, addParams.selectedAgreement);
// const options = generateOptions(addParams.selectedOptions, addParams.selectedAdditionals, addParams.selectedAgreement);
const params = {
idPackage: addParams.selectedPackage.packageInfo.idPackage,
idPrice: addParams.selectedAgreement.idPrice,
options: options.extraPackages
'package_id': addParams.selectedPackage.id,
'price_id': addParams.selectedAgreement.idPrice,
//options: options.extraPackages
};
if(options.unavailablePackages.length){
const unavailable = options.unavailablePackages.map((unavailable) =>{return unavailable.optionName || unavailable.packageName;});
const message = coMarketMessages.UNAVAILABLE_PACKAGES + ' ' + unavailable.join();
return dispatch => {dispatch(updateMessages([{code: 'warning', message}], coMarketMessages))};
}
// if(options.unavailablePackages.length){
// const unavailable = options.unavailablePackages.map((unavailable) =>{return unavailable.optionName || unavailable.packageName;});
// const message = coMarketMessages.UNAVAILABLE_PACKAGES + ' ' + unavailable.join();
//
// return dispatch => {dispatch(updateMessages([{code: 'warning', message}], coMarketMessages))};
// }
return dispatch => {
dispatch(requestAddToCart());
return client.fetch({
url: `${API_SERVER}/coMarket/api/addToCart`,
url: `${API_SERVER}/wp-json/wiaas/cart/add`,
method: 'post',
data: params
})